Create An ENTIRE NFT Collection (10,000+) & MINT
Table of Contents
RESOURCES
Original Video:
π΄ How To Create An ENTIRE NFT Collection (10,000+) & MINT In Under 1 Hour Without Coding Knowledge
(WATCH THIS ONE!) Updated video for v2.0.0 release:
π How To Create An ENTIRE NFT Collection (10,000+) & MINT with ZERO Coding Knowledge v2.0
How to automate listing for sale on OpenSea:
π° How To List & Reveal An ENTIRE NFT Collection (10,000+) Without Coding Knowledge on OpenSea
Original video code: v0.1.0-alpha
Base code is from hashlips_art_engine
Minting uses NFTPort
Join the Discord server for more help from the community: codeSTACKr Discord
The macro script from the "listing for sale" video: macro1.mmmacro
UPDATE: Added rarity calculator. See this video for the walkthrough.
COMMANDS
Generate:
$ npm run generate
- Generates unique images based on the layers in the
layers
folder. - WARNING: This command deletes the
build
folder if it exists!
Rarity (Hashlips):
$ npm run rarity
- Calculates the rarity of NFT properties based on layer files.
Rarity (codeSTACKr):
$ npm run rarity_md
- Calculates the rarity of NFT properties based on metadata.
Rarity Rank (codeSTACKr):
$ npm run rarity_rank
- Provides ranking details through a user interface after calculating using the codeSTACKr Rarity command.
Update Info:
$ npm run update_info
- Allows you to update
namePrefix
,description
, and/orbaseUri
for metadata after it was already generated.
Create Generic Metadata:
$ npm run create_generic
- Creates generic metadata using the settings from the
src/config.js
file.
Upload Files/Images:
$ npm run upload_files
- Uploads all files in the
build/images
folder.
Upload Metadata:
$ npm run upload_metadata
- Uploads all
.json
files in both thebuild/json
folder and, if it exists, thebuild/genericJson
folder as well.
Deploy Contract:
$ npm run deploy_contract
- Deploys a contract to the blockchain using the settings from the
src/config.js
file.
Get Contract:
$ npm run get_contract
- Gets the deployed contract details using the transactions hash from the Deploy Contract command.
Mint:
$ npm run mint
- Running this command with no flags will mint all NFTs
--start=1
- The start flag indicates the edition number to start minting from.
--end=100
- The end flag indicates the edition number to stop at.
- To start at a number and continue minting all, do not include the end flag.
- Make both flags the same number to only mint a single NFT.
- NOTE: The start and end numbers are inclusive.
Reveal:
$ npm run reveal
- Checks the contract owners wallet to see which NFTs have sold and reveals all sold NFTs.
- Including the
--start=1
and/or--end=100
flags will reveal only the specified edition or range of editions. - Make both flags the same number to only reveal a single NFT.
Check Transactions:
$ npm run check_txns --dir=minted
- Verifies the success of mint or reveal transactions.
- The
--dir
flag is required. Accepted values areminted
orrevealed
.
Refresh OpenSea:
$ npm run refresh_os --start=1 --end=100
- Refreshes the listing for the specified editions on OpenSea.
- Both the
--start
and--end
flags are required.
UPDATES & FIXES
npm not recognized
You have not installed node.js properly (* and or if you're using a M1 on macs you'll need to downgrade your current version of node.js to v14 for it to work*). Be sure to follow the installation instructions from their download page for your specific operating system. And restart your computer after installation.
For Mac M1 users, see this issue for more details: Hashlips Art Engine - Issue 812
Images not lining up
Be sure that every layer is the same size. If you want the resulting image to be 512x512, then each layer needs to be 512x512. This will ensure that everything lines up properly.
Only the last image shows up
This is because you are not using .png
images. .jpg
or any other type will not work. .png
has transparency which means there is no background and things behind it will show through.
ES Module Error [ERR_REQUIRE_ESM]
If you are following along with the tutorial you will run into this issue unfortunately.
When the tutorial was created, node-fetch
was at version 2. It was recently updated to version 3 and no longer supports the require
syntax.
Fortunately, it's an easy fix. Just type these commands into the terminal:
npm uninstall node-fetch
npm install node-fetch@2
Any sort of "path" error
Ensure that your layer names in the config.js
file match exactly to your layer folder names. Also, remove any -
(hyphens) from your file names.
"Quota Limit Reached" or "Too many requests" errors
There have been some changes made to the code from the original video resulting from some errors when uploading files, metadata, and minting using NFTPort. Depending on your plan, Free vs Community, there are rate limits.
To fix these issues, I've updated the code to include a timeout that will allow the files to be uploaded at a slower rate, instead of all at once, eliminating these errors.
If you've reached your quota limit, contact NFTPort to upgrade your plan to get more.
To use this code:
- Clone this repo or download the latest release zip file.
- Unzip, if needed, and open the folder in VS Code.
- From the terminal type:
npm install
- Copy your image layers into the
layers
folder. - Use the
src/config.js
file to set up your layers and NFT information.