Algorand NFT generator
(Note: this interface is not designed for smart phones.) Tutorial

Questions/bugs/feedback: runvnc on Discord Server Also check #announcements for updates.

Destroy Assets

💀 DANGER 💀 DANGER 💀 DANGER

This will permanently destroy assets!

After deleting assets from the collection wallet, YOU MAY NEED TO ENTER THE STARTING # MANUALLY FROM NOW ON IN THE GENERATE TAB! This is the "Starting generating at #".

The cost is 0.05 per asset destroyed.

Enter asset ids to destroy, separated by spaces.

Enter password:

Overview

Note: there are additional instructions at the top of the Images/Code tab, and a tutorial video in the upper right hand corner of the page.

1. Create or import a wallet.

2. The Images/Code, Generate and Pin/Mint tabs will appear.

3. If you created a new wallet, go to the Pin & Mint tab and click [Toggle Mnemonic]. Then import the mnemonic into another wallet system like My Algo Wallet or Pera Wallet.

4. Enter collection name, unit name, description etc. on the Setup tab.

5. On the Images/Code tab, add your traits. Then click the folder icon next to the trait names to upload your variant images.

6. If you need a specific (random) distribution, enter numbers into the occurrence % column

7. When you press the Generate button this page will create random combinations of the images according to your Occurrence % (approximately, its random).

8. Go to the Pin & Mint tab, enter your password, and press the button. It will create the ARC69 metadata, Pin on Filbase and web3.storage, and mint the NFTs.

9. If you have questions, please talk to runvnc on the Discord server.

Questions/bugs/feedback: runvnc on Discord Server Also check #announcements for updates.

NFTGEN API

API Documentation

Password:

Warning: backup your API Token after generating! This is stored in your browser only, and browsers will delete data with no warning (such as if disk space gets evenly slightly low).

API Token:

Collection address:

Wallet QR code, Delete, legal disclaimer and instructions    

NOTE: Wallet key is stored in your browser using the encrypted-local-storage module by Rand Labs. Transactions are signed in the browser and your private key is never transmitted.

As a legal disclaimer, it is recommended that you

  1. Do not store any more ALGOs or ASAs in the wallet than are necessary, or at any time that you are not minting, and
  2. Immediately after creating a wallet, back up and import the mnemonic phrase (which you can toggle on the Pin & Mint tab) into another wallet system. After minting and importing the address into another system, use the [Delete Wallet] button.

    Import the wallet into another system BEFORE deleting from this web page, because if there is any typo or other problem recovering the account with the mnemonic, you will lose access to all ALGOs and NFTs minted with this address.

  3. NOTE: images are stored in a directory named after this wallet address. You will need to re-upload images.

Other wallets in this collection (separate with space or enter):


Note: use this button so you won't have to reupload images and so the generator won't have to run the image combine commands again.

Collection Name:
   

Unit Name:
   

Supply per NFT:
   

ARC-19 (mutable):
   

Note: please be careful with all of the fields. Unfortunately we are not going to be able to change them after minting. I advise you to use TESTNET first, and then also do another small test on MAINNET if possible so you can look on NFT Explorer etc.

External URL:
   

Description:
   

Clawback address (leave blank unless you are sure!):
   


UI Settings

Show offset drag area

Help -- READ ME (REQUIRED)!!

Note: in the new version, data rows start in the collapsed state when you refresh the page.

Note: uploaded images are now converted to WEBP. Do not reupload after you have started minting, this will cause duplicates if they change or were used (e.g. as PNG) prior to the new version.

1. Click on Add Trait and type in a trait name. Typing spaces in variant names not allowed, but underscores are converted to spaces in the output.

2. Click the folder icon to the right of the trait name to select and upload variant images.

3. Specify the approximate Occurrence % or blank/0 for an equal chance. Note: make sure your total % adds up to exactly 100%, or less than 100% and leave one or more rows as 0 which will divide the remainder evenly.

4. You can ignore the Data column, Definition Order, and code editor unless you are a programmer doing procedural generation.

5. To offset images, drag the square in the preview area to the right of the table. Pay attention to the orange dots position. Note: to use this feature you will need to close the Help section first. You can also use the x and y input boxes in the data table.

Note: the preview area now only shows the last few variant images that you have clicked rather than the entire stack.

6. To scale images, use the w and h input boxes in the table.

7. To collapse/expand trait rows (hide/show variants) click the [-] symbol.

Warning: images automatically resized to max 2048 pixels.

ARC-19 Information

To mint modifiable NFTs using ARC-19, check the box on the Setup tab.

To modify an existing NFT:

1. Enter the asset ID on the Images/Code tab in the upper right and press Load ASA. The existing variants should be selected with the Force checkboxes.

2. Make any desired changes to traits with the Force checkboxes or by clearing them to allow random generation.

3. Press Generate. Note that you should not generate more than 1. Check the generated item carefully.

4. Go to the Pin & Mint tab. Enter your password. The asset ID to modify should be in the Reconfigure input box above the Pin & Mint button. This will default to the one you loaded.

5. Press the Pin & Mint button.

Help with Procedural Generation/Code (for Programmers)
Click the [->] icon to the right of Definition Order to enter p5.js code in LiveScript for generating images.

Here is a video showing some ways to use code generation.

Note: to generate graphics using code, the trait must still have at least one variant defined with an image attached (it can be a transparent image).

Examples

Avoid conflicting variants

# traitdef tab of Glasses trait if char.Eyes.n.includes(\Laser) and kind.n != 'None' then return \retry

Random image color

# traitdef tab kind.n = colors[round (random! * colors.length)] # predraw tab tint kind.n

Text

# draw tab textSize 64 fill \white text kind.n, 400, 120

Procedural shapes

# draw tab x = round (random! * 600)+300 y = round (random! * 400)+200 translate x, y for i from 0 to 10 fill \magenta ellipse 0, 30, 20, 80 rotate PI/5

The following variables/functions are pre-defined:

kind # this is the variant that has been randomly preselected # it contains the offset (.x, .y), (width/height .w, .h) data (.d) and name (.n) of the trait variant # .w and .h are only available in predraw and draw defs # has all of the data from the table in the UI. The keys are the trait names # under each trait key is another object indexed by variant names # containing 'kind' (as described above) char # this is the randomly preselected "character" or collection of trait variants, indexed by # the trait names rel (x,y) # Adds x and y to the kind.x and kind.y
Asset ID:
Images are minted as .webp files. You can generate and mint in multiple megabatches if you need more than 5000.

READ THIS: about duplicate prevention, lossless mode and generator startup time.

Lossless mode images can be 5-10 times larger and take 5-10 times as long to generate. This is not ideal for mint-on-demand. Do some tests, and don't use it unless you are doing pixel art or sure you need it. If you do use lossless mode, consider a somewhat smaller image.

Warning: you cannot change the lossless setting OR variant images after you start minting. Duplicate prevention uses the content hashes of the image files (IPFS CIDs).

Warning: always double check the numbering has updated fully after minting before generating again. This now only updates when you switch to this tab rather than every time you press the Generate button.

Please note that generation can take some time to start up because the sysbox container has to be started, then images loaded. Especially for large images, they can take time to load. But once you have generated a fair number and most of the images have been loaded, generation should generally be around less than 1 second per image. You can decrease the warm-up time by using smaller images which will load faster.

Number to generate:   Lossless (best for pixel art)
Start generating at # (optional)            Items generated at end of page.
  Sound effects

Image display size:

Generated

Already minted NFTs:
Minted in this wallet:
Recently Generated NFTs:
Total ASA holding requirement (Algorand):
Total pinning & minting fees:
Total transaction fees:
Balance required:
Current balance:
Note: the balance required should be correct before you press the "pin & mint" button, but during the minting process it will sometimes not be 100% accurate until transactions are confirmed by the network and show up in the query result to add to the total.

Note: Record and verify the mnemonic phrase! You will not be able to access the account in another wallet without it!
Enter your password here to retrieve your key and authorize transactions.
  Media will be pinned to IPFS on Filebase.com and web3.storage, signed using the account above, and sent to the Algorand TESTNET. NFTs. Can take some time.

If button is disabled, make sure the balance is adequate and you have entered your password above.

Warning: always double-check the generated numbering and other details carefully first.

Reconfigure asset (ARC19 only):

 TESTNET

 

Already Minted

VRF Shuffle

Pricing & information

This will create a shuffle that uses the (v)erifiable (r)andom (f)unctions feature of Algorand via the vrf_verify and block opcodes to ensure trustworthy and fair distribution. More info on VRF.

You may optionally require a custom token (ASA) as part of the payment (amount specified).

Fee per NFT: 1% of shuffle ALGO price, or minimum 0.5 ALGO.

Enter wallet password here:

Existing Shuffles (this wallet)