p5js fxhash
Becoming an fx(hash) Generative Artist

Becoming an fx(hash) Generative Artist

written by Margarine O'Leo

12 Feb 20231000 EDITIONS
2 TEZ

Setting up to Create, Promote, and Sell your NFTs

Introduction

I’ve been playing with p5js for about 5 months now, along with hanging out in the fx(hash) Discord server and with artists on Twitter, and I've been collecting editions of NFT generative art minted on fx(hash). I'm a performance artist, and I'm intrigued by the potential of the NFT ecosystem to be part of my artwork. It's time to buckle down and start publishing. Along the way, I want to share some useful information with other fx(hash) ecosystem noobies.

I am an old time coder, having coded hardware systems as a hobby, but never professionally. There are a lot of areas of fx(hash) where other artists seem to be at ease with the platform interface and with browser interactions. I don't have any of that ease.

Although I’m active on social media, I haven’t made any efforts to build a following for my artwork. I have some SEO (Search Engine Optimization) and online marketing training, but I haven’t applied it.


Joining the ecosystem

NFT artists are 1) creating art, 2) selling art, and 3) buying art.

This is not a stale trad (traditional) art marketplace designed to keep out newcomers until some rich gallery owner anoints them at Art Basel. If you're an artist and you don't want to become a part of the extended ecosystem, which includes Twitter engagement and supporting other artists, then NFTs may not currently be for you. (Go ahead and prove me wrong.) I'm not thrilled with this. It's a huge time sink for artists to put so much into a frontier without guarantees (not like trad art has any surefire paths to success). Nonetheless, here we are.


Google everything you don't know, and use reliable sources such as PCMag, Wired, and This Week in Tech podcasts as starting points for absolute beginners.

These are Windows instructions. I use the Mozilla Firefox browser for creating my art in the online p5js code editor and for browsing for NFT artworks to buy, and I use Google Chrome while making NFT purchases.


  1. Get a VPN (Virtual Private Network)
  2. Get a Tezos wallet that is compatible with fx(hash)
  3. Join Twitter
  4. Create a Tezos Profile
  5. Join the fx(hash) ecosystem
  6. Join the fx(hash) Discord Server
  7. Get a GitHub account
  8. Set up a coding environment (PC Windows version only)
  9. Make a p5js Editor fx(hash) template
  10. Download a code editor
  11. Mint / collect / buy a token
  12. Understand copyright
  13. Don't copymint ; don't even think of it

1. Get a VPN (Virtual Private Network)

Use it every time you conduct crypto transactions

Figure 1 A Virtual Private Network can protect access to your private information while you are online. Use one every time. The computers were made in p5js and altered in Photoshop; the various images are my artwork, toy horses shot on a dissecting microscope, a micrograph shot on a field microscope, a couple of photograms, a scanning electron micrograph, a scan of a toy soldier, a mobile image, and digital SLR images. Alt Text: halftone dots background in grayscale with 5 pastel 1980s desktop computers with various drawings on their screens, horses, a horror face, and a bride and soldier, a VPN Tunnel sign under toy soldiers.
Figure 1 A Virtual Private Network can protect access to your private information while you are online. Use one every time. The computers were made in p5js and altered in Photoshop; the various images are my artwork, toy horses shot on a dissecting microscope, a micrograph shot on a field microscope, a couple of photograms, a scanning electron micrograph, a scan of a toy soldier, a mobile image, and digital SLR images. Alt Text: halftone dots background in grayscale with 5 pastel 1980s desktop computers with various drawings on their screens, horses, a horror face, and a bride and soldier, a VPN Tunnel sign under toy soldiers.

2. Get a Tezos wallet that is compatible with fx(hash)

Use Chrome; use your VPN.

Research what a cryptocurrency wallet is and how to keep it secure, including learning what a seed phrase is, and how to keep your passwords secure.

After you’ve brushed up on wallet security, get a Tezos currency wallet that is compatible with the fx(hash) minting/publishing platform, such as Temple or Kukai.

Load 1-2 Tezos onto the wallet.

NO ONE WHO ISN'T A CROOK WILL EVER ASK YOU FOR YOUR WALLET SEED PHRASE OR PASSWORDS OR ASK YOU TO CONNECT YOUR WALLET TO ANYTHING. YOU MUST NEVER RESPOND TO A CONNECTION REQUEST IN ANY WAY. YOU WILL INIITIATE ALL WALLET CONNECTION DECISIONS.


3. Join Twitter

Use your VPN when creating social media accounts with secure passwords.

Make an artist Twitter account and use your artist name as your handle.

Upload a profile picture you can live with long term, your own art or your mugshot.

Pop up some original cover art.

Follow @fx_hash_ on Twitter and find a few fx(hash) artists to follow.

Do not buy followers. Don't even think of it. It's not necessary, and it raises suspicions about you and your artwork.

EVERY SINGLE TIME YOU MENTION YOUR WALLET ON TWITTER YOU WILL GET SPAMMED BY BOTS TELLING YOU HOW TO GET A REFUND OR GET HELP WITH YOUR WALLET. DO NOT INERACT WITH BOTS. BLOCK IMMEDIATELY.

People are going to send you DMs on Twitter and tell you that they love your art and want to commission you to do a sketch for their daughter’s 10th birthday and if you click on the file they send you, ostensibly containing information about the sketch they want, they'll steal all of your money and your NFTs and corrupt your artistic identity; NO ONE MYSTERIOUSLY DISCOVERED YOU ON TWITTER AND HEADED TO YOUR DMs TO OFFER YOU MONEY; it's a bot and a scam.

TWITTER ETIQUETTE: Stay on topic when you answer another artist’s post, and don’t hijack their thread. Don’t buy followers. Don’t follow someone and then unfollow when they follow you back just to up your followers/following ratio. Don’t engage with trolls, just mute or block and move on. If you get followed by bots, you can block them to get them to unfollow you.

Figure 2. My Twitter profile showing my profile image, my cover image, the number of followers I have, and my pinned Tweet.
Figure 2. My Twitter profile showing my profile image, my cover image, the number of followers I have, and my pinned Tweet.

4. Create a Tezos Profile

Use Chrome; use your VPN.

Tezos Profiles is a third party web application and is unaffiliated with Tezos or with fx(hash); it is used to associate your Twitter account with your Tezos wallet address. It is not necessary, but it will make it easier for collectors, other artists, and admirers to find you on the different platforms you are using. It can also be a useful part of the fx(hash) verification process.

The Tezos Profiles platform is sluggish in updating, and the verification folks on fx(hash) know this, so be patient, and ask your questions in the Tezos Profiles Discord, not on fx(hash).

Go to https://tzprofiles.com/ --> Connect Wallet and Sync your wallet.

Click "Twitter Account Verification".

Follow the prompts to continue creating your Tezos Profiles account.


5. Join the fx(hash) ecosystem

Use Chrome; use your VPN.

Go to https://www.fxhash.xyz/ --> Select Sync and then Sync your wallet.

Follow the prompts for creating your account.


Figure 3. The fx(hash) platform where you will  sync your Tezos wallet (see right and middle) in order to both publish tokens  for collectors to buy and collect tokens created by other artists.
Figure 3. The fx(hash) platform where you will sync your Tezos wallet (see right and middle) in order to both publish tokens for collectors to buy and collect tokens created by other artists.

6. Join the fx(hash) Discord Server

See the fx(hash) Twitter account for an invite.

Assign yourself the role of artist, say hi in the INTRODUCTIONS channel, check out FEEDBACK, WIPs, ART DISCUSSION, and the CREATORS and VERIFICATION channels.

Introductions are just to say hi; say your name and include a link to your Twitter if it isn’t in your fx(hash) profile. Say something about your art.

Feedback is for critiques of your unfinished work; good or bad, if you ask, we’ll let you know how you’re doing with your artwork ideas, your palettes, your token size, your price, and so much else. This is mostly an artists' channel. Try to give honest feedback and consider the feedback you’ve been given if you want to participate. If you're not used to getting direct feedback, just skip it.

WIP is for just posting Works In Progress, sketches, ideas, where you don’t necessarily need feedback. Collectors check this channel out for art to buy.

Art Discussion is for general discussion about generative art and the art world.

Creator channels are for technical questions, you’ll mostly use Noobies, Creators, and P5JS. Search first, your question is probably already answered. Post a question only in one channel, and then be patient. Check for pinned posts and FAQs.

Verification channels are for verification; and you do want to get verified, but please be patient and read and follow the instructions.

Assign yourself the role of collector, check out price discussion and glance through the sales channels. Price discussion can be a little sharp; spent time lurking before posting.

DISCORD ETIQUETTE:

Don’t SPAM the Discord. Post only fx(hash) topics. Don’t post the same question in two channels. Don’t tag team members and moderators when you haven’t read the verification FAQs.


7. Get a GitHub account

Use Firefox; use your VPN.

You can back up your artwork code on GitHub; do it when you publish a token at the least.

If you’re a coder turned artist, you can use your professional GitHub or a new personal GitHub, and, yes, download the desktop or use Git without a remote. For experienced coders you already know how you want to handle version control and backing up your programs.

Artists can generally get by with just a GitHub account and browser access. I'll show you how you can use it later.


8. Set up a coding environment (PC Windows version only)

Use Firefox; use your VPN.

Go to the p5js website, https://p5js.org/ --> Editor --> Sign Up --> LogIn with GitHub, enter your GitHub username or email associated with your GitHub account. You code will be saved for you on the p5js platform.

On p5js --> Editor --> Hello, Username --> Drop down arrow --> Settings, change your User Name to your artist name on the Discord so if you share code via a p5js editor link when you have questions, your artist name is connected to it (both for privacy and to prove it’s you).

The Editor will open with a file with a few lines of code, to the left is a sidebar Sketch Files, and a list of three files, index.html, sketch.js, and style.css; in the middle is the file you have open (starting with sketch.js), and below that is a Console window; and, finally, to the right is a Preview window where your actual sketch will show after you run it, and you can right click to save the image or to open the image in a new tab.

Figure 4. The p5js editor opens to a file with some existing code, and is given a two word randomly generated name: Pollen place.
Figure 4. The p5js editor opens to a file with some existing code, and is given a two word randomly generated name: Pollen place.

9. Make a p5js Editor fx(hash) template

Use Firefox; use your VPN.

Select the index.html file in the p5js editor by clicking on it.

Open a new tab or a new Firefox window and go to https://www.fxhash.xyz --> Doc --> Publish a Generative Token --> How to build a GT, and then scroll down to --> fxhash code snippet; select and copy the entire code snippet and nothing else.

In your p5js --> Editor --> index.html file, in the <head></head>, find the line that says <meta charset="utf-8" /> and paste the snippet below this line.

Use Ctrl-S or select Save from the File dropdown arrow in the p5js editor to save your altered index.html file.

Select the sketch.js file by clicking on it.

In function setup(), above createCanvas(400, 400);, paste the following code:

  noLoop();
  colorMode(HSB, 360, 100, 100, 255);

  let seed = 10000 +  fxrand() * 9999999;  
  console.log(fxhash, seed);
  noiseSeed(seed);

noLoop(); P5js loops continuously at a frame rate of about 50 frames per second while you are using it to create art on the HTML canvas, which is great for animations, but we're initially just drawing to a static canvas, so use noLoop().

colorMode(HSB, 360, 100, 100, 255); HSB color mode is a great starting space for artists; here’s s a brief YouTube video by an fx(hash) generative artist, Eric Davidson, about HSB.

let seed = 10000 + fxrand() * 9999999; fx(hash) requires that art on the platform be deterministic, or that the (pseudo) randomness within the program be determined by the transaction hash. This means that each edition of a token will have a unique transaction hash, and that transaction hash will be used to create the same random numbers each time you load that edition, and every other transaction hash will yield different random numbers throughout your program. You add 10,000 because there are issues with very low value seeds; more on this problem later. You’ll replace the p5js random() with fxrand() throughout your program. This seed is also used for the other main random function in p5js, noise().

console.log(fxhash, seed); This line prints out the transaction hash in the console, and you can save it and generate the same art. This is developer time code, not for the final token.

noiseSeed(seed); This function, noiseSeed() seeds the p5js Perlin noise() function to make your Perlin noise also deterministic.

Add a note taking file to your files, Sketch Files --> Create file --> ToDo.txt Use this to take notes while you’re working on your project.

Change the name of your p5js program to fxhash-template.

Figure 5. Your fxhash-template program with the ToDo.txt file, and the index.html file contains the fx(hash) snippet.
Figure 5. Your fxhash-template program with the ToDo.txt file, and the index.html file contains the fx(hash) snippet.

10. Download a code editor

I use Visual Studio Code, Notepad++, and Notepad for a few things, and, although I'll be coding my token in the p5js text editor throughout, I recommend noobie coders have Visual Studio Code installed for making their code easier to read and for cleaning up their code. I’ll demonstrate this later.


11. Mint / collect / buy a token

Use Firefox to explore to find a token; use your VPN.

I prefer exploring for tokens with Firefox.

Go to https://www.fxhash.xyz and click Explore.

"To mint" means 2 things, to publish a token on the platform, as in you’ve created a work of art and collectors can purchase editions, and it also means the purchase of a single edition of a generative token.

Click on the funnel to the left of the search bar and filter first by price, say 0 – 0.5 Tezos, and then click apply filter; select Mint progress On Going; and finally, Artist Verified. You will later collect from more diverse artists, but for your first purchase, stick with verified artists.

Pick a generative token that you like, and then click on the token; if the purple Mint Iteration bar appears, then you can mint a single edition of this token; if no purple bar is there, and it only says Open Marketplace, skip it, and pick your next favorite token from the results.

Figure 6. A token that shows it can be collected; the mint iteration button is available and purple. This token is by fx(hash) artist, doogyhatts, https://www.fxhash.xyz/u/doogyhatts.
Figure 6. A token that shows it can be collected; the mint iteration button is available and purple. This token is by fx(hash) artist, doogyhatts, https://www.fxhash.xyz/u/doogyhatts.

Use Chrome to mint the token you want; use your VPN.

Copy and paste the URL of the token you want to mint from Firefox into Chrome.

Sign into your Tezos wallet which is synced to the fx(hash) platform; beginners should really only have a few Tezos in the wallet until they understand how the ecosystem works and how many ways you can be cheated.

When you're signed into your wallet, click the Mint iteration button, and when your wallet opens, check that the price of the transaction is what you expect to pay, and verify that that gas and minting fee are very low (well under a tez).

Figure 7. Read what is going on in your wallet before you hit Confirm. fx(hash) token by artist punk, https://www.fxhash.xyz/u/punk.
Figure 7. Read what is going on in your wallet before you hit Confirm. fx(hash) token by artist punk, https://www.fxhash.xyz/u/punk.

It takes a while, but when you’ve successfully minted the token, hit Reveal and see what your unique edition looks like.

Figure 8. The token has been successfully minted or purchased, and I can hit reveal to see what my unique iteration of the token looks like.
Figure 8. The token has been successfully minted or purchased, and I can hit reveal to see what my unique iteration of the token looks like.

12. Understand copyright

If you didn't create it, it's not yours to sell on fx(hash).

Don't bother with the exceptions.

Write your own code, create your own art, publish your own words as descriptions. Failure to do so will result in moderation of your token.

Figure 9. A couple of fx(hash) artists, and a token that was moderated.
Figure 9. A couple of fx(hash) artists, and a token that was moderated.

13. Don't copymint; don't even think of it

Copyminting is stealing another artist-coder’s code or artwork or description or palettes or even ideas at times.

If you have to steal to mint on fx(hash), you’re probably not clever enough in the coding to hide the fact that you copyminted.

Having permission to use another person’s code is insufficient; you must include this information in the token, and you may have to prove it, also, to prevent moderation of your token on the fx(hash) platform. Even with all that, if it is decided that your derivative artwork is not sufficiently unique from the original, then the fx(hash) platform team members may moderate your token. They don’t have to allow publication of anything, and the platform is for original art. That's what collectors come for.

Even if you have permission, or if you’re copying a public domain artwork, guess what? fx(hash), the platform, is under no obligation to allow you to mint a token on their platform that uses someone else’s art or code.

Why? fx(hash) is a platform designed around collectors spending money on original artworks by artist-coders, and this requires that fx(hash) do preventative work to stop copyminters from presenting another artist’s work as their own.

If you are suspected of copyminting on the platform, just show that you created this code on your own. It’s really that simple. You created it, you can prove it.

If you don’t know how to prove that the code is your own, you probably didn’t create the code.

I'm going to make a series of tokens and mint them on fx(hash). I’ve already done most of this, and I have a couple of artistic tokens, but nothing I truly love, so I haven’t launched my genesis or initial work. This series of pieces is an exercise in learning to create art with code and learning to sell the art as NFTs. Join me for the ride!

My first piece will be a figurative piece. The second will be layered work using one or both of the popular templates, and then for the third, a grid with geometric figures, the fourth will include flow fields, and the fifth will be a curvy abstract algorithm, the sixth will include cellular automata, and the last one in this series will be a tessellation. I'll use these tokens to learn p5js and how to mint NFT generative artworks on fx(hash).

Warning, this isn’t an introduction for complete non-coders, but it’s for artists with at least low levels of background into JavaScript programming. There are plenty of "learn to code in p5js" websites for absolute beginners, so if you are a beginner, you can start with one of them.


Assignments:

1. Get a VPN

2. Get a Tezos wallet

3. Join Twitter

4. Create a Tezos profile

5. Join the fx(hash) ecosystem

**6. **Join the fx(hash) Discord Server

7. Get a GitHub account

8. Set up a coding environment (PC Windows version only)

9. Make a p5js Editor fx(hash) template

10. Download a code editor

11. Mint a token

12. Understand copyright

13. Don’t copymint


LICENSE

All rights reserved. Please DM me on fx(hash) or Twitter if you would like to translate the text into your native language.

This information is freely available everywhere, and everything I learned here came from fx(hash) artists and other NFT artists on Twitter, YouTube, and in the fx(hash) Discord. Special thanks to all of you, every single one of you who answered a question, corrected a mistake, or just shared your knowledge and experience in every possible way. Some editing done by Liam Egan and by Rachel F.

stay ahead with our newsletter

receive news on exclusive drops, releases, product updates, and more

feedback