Solana Developer Docs: https://docs.solana.com/
SPL Token: https://spl.solana.com/token
Metaplex Docs: https://docs.metaplex.com/
Metaplex Github: https://github.com/metaplex-foundation/metaplex
These are not official resources. Due your own due diligence before using them.
Levi Cook's Candy Machine Guide
Fair Launch Protocol Tutorial
Some Thoughts to Consider Before You Start Your SOL NFT Launch
Solana NFTs: Everything You Need
Levi Cook's Candy Machine Mint
Maxwell Fortney's "Next Candy Machine" Frontend
CryptoOutcasts Candy Machine Mint Frontend w/ Whitelist
CryptoOutcasts Whitelist API
Airdogs Candy Machine Mint Fork
WrathionTBP's Python NFT Generator
Benyamin Ahmed's NFT Image Generator
Nova Launch
"Nova Launch the Premier Launchpad for Solana NFT projects - trusted partner in high volume, best-in-class NFT live minting on the Solana network."
Crayon Creed
"CrayonCreed is an End-to-End NFT Launcher Platform.
Your preferred launchpad partner for your Internet of Assets."
Look up Mint Addresses
List Candy Machines Script (Levi Cook, again)
CrisitnaSolana Solana Developer Resources
Paul Schaaf Awesome Solana
Get NFT Holder Snapshot
Metaplex Store Installer
Metaboss - Metadata 'Swiss Army Knife'
Arweave Uploader CLI
Tools for Finding PDAs and Metadata
Q: What is the difference between devnet
and testnet
?
A: devnet
is targeted at developers to let them test their smart contracts and applications before deploying to mainnet. testnet
is used primarily to test new Solana releases. See the Solana docs for more details.
โ
Q: What free RPC endpoints are available?
A: For devnet:
For mainnet:
See the Solana docs for more details such as rate limits.
For your mint app you should always use a custom RPC provider. The people running the public RPCs are aggressively monitoring NFT mint requests and blocking people who abuse the service, so your launch may fail if you use one of the public providers for your mint site.
โ
Q: What custom RPC endpoints are out there?
A: You can consider running your own (very hard) or use one of the following:
The latest candy machine cli code supports using a custom RPC node with the --rpc
option.
Q: How do I airdrop SOL/SPL token to X number of wallets?
A: Use one of these tools:
Or you can write code yourself: you could write bash code that uses the Solana CLI, write a TypeScript program that uses the @solana/web3js library, or you could the Rust libs to write it. There are various other unofficial community SDKs and clients as well.
Here's an very simple example bash script. Always test on devnet
before running it on mainnet
.
#!/bin/bash
airdrop_accounts=(
"AB..."
"6X..."
)
nft_mint_accounts=(
"Nk..."
"6r..."
)
LEN=2
for i in $(seq 0 $LEN);
do
spl-token transfer ${nft_mint_accounts[i]} 1 ${airdrop_accounts[i]} --fund-recipient
done
Here's a step-by-step guide.
โ
Q: How much does it cost to deploy X NFTs using Candy Machine?
A: MaxS#6970 built us a calculator.
โ
Q: What are the sources of fees for using the candy machine cli program?
A: The fees are 1) on-chain storage of config data and 2) Arweave file upload costs.
โ
The following apply to min and max sizes for using the Metaplex candy machine cli program for uploading to Arweave. If you upload yourself by using one of the community tools such as Enrico's Arweave uploader or Sol NFT tools, the same upload limits do not necessarily apply. The creator of Sol NFT tools has stated that they support upload sizes up to 200 MB.
Q: Is there a minimum size for my images?
A: Seems to be ~20kb per image. Smaller than that may fail.
Q: Is there a maximum size for my images?
A: 10 MB is the maximum size due to the Google Cloud function used by the upload
command. Uploading links to Arweave independently using one of the third party tools can get around this limitation.
โ
Q: What is the candy machine PDA for mainnet and is it the same for devnet?
A: It's cndyAnrLdpjq1Ssp1z8xxDsB8dxe7u4HL5Nxi2K5WXZ for mainnet-beta
, devnet
and testnet
.
โ
Q: What is NFT creator signing/verifying?
A: Creators have a a bool
value in the on-chain struct that indicates whether or not the creator has signed the metadata verifying that they are the actual creator of the NFT. This defaults to false
for all creators except for the candy machine but can be set to true
after minting by using candy-machine-cli.ts
sign
and sign_all
commands. Some NFT exchanges require all creators to be verified for listing and the Metaplex store front requires it. Each creator must sign the metadata individually with its own keypair.
โ
Q: How do I upload MP4s instead of PNGs?
A: (Answer contributed by Monty#7490 from Discord.)
constants.ts
change EXTENSION_PNG = '.png' to EXTENSION_PNG = '.mp4 (or any other format)arweave.ts
on lines 55 and 56 change filename and contentType to the appropriate types (image.png โ> video.mp4 and contentType โ> video/mp4 but these can be any correct MIME type AFAIK)upload.ts
on lines 87 and 88 change the imageName replace to be the name of the file specified in the arweave file above (was image.png change to video.mp4Q: How do I update meatdata for a minted NFT?
A:
OR
โ
Q: When can I update metadata?
A: As long as you have the keypair for update_authority
and the NFT's is_mutable
field is set to true
, you can update the NFT's metadata. Be aware, there may be social consequences for updating your NFT metadata without communicating with your users.
โ
Q: What data can I update?
A: Solana Metaplex NFTs are made up of two sets of data: the on-chain data stored on Solana and the JSON data stored on an external provider, usually Arweave or IPFS. Arweave data is immutable but you can change the on-chain URI to point to a new Arweave file or to any file you wish.
โ
Q: I have exiled-apes/MintUI/other frontend repo working on localhost, how do I deploy?
A: Look up Vercel and Netlify for deploying frontends directly from Github repos. They have plenty of tutorials for how to get setup.
Q: How do I get a snapshot of all the holders of my NFT collection?
A: Try these tools:
โ
Q: How do I create a whitelist for my candy machine?
A: You can now use Gumdrop to create a whitelist. Mark Sackerberg made a guide.
For larger whitelists you can also use Doorman.
โ
Q: Why doesn't my candy machine cli command work?
A: Things to check:
Are you on the latest version of the main branch?
Are you in the same directory as your .cache file?
Are you running the command on the correct network?
(Commands default to devnet
. Use --env mainnet-beta
for mainnet
.)
Your JSON files don't exceed these following limits:
Your JSON files are properly formatted following this standard
For the update_candy_machine
command, when updating the date make sure to use double quotes around the date string: -d "8 Oct 23:57:00 UTC"
.
Here's a list of all the Metaplex Metadata Program Errors.
Or if you're a developer you can use this CLI to look them up.
From Discord user alfongj#7638
:
"If anyone gets any of the following errors
When uploading
panicked at 'range end index โฆ
Custom program error: 0x12f
'Index greater than length!'
When creating a candy machine
0x130
ConfigMustHaveAtleastOneEntry
The issue may be that your png and json files do not start with 0.json / 0.png
If you did a partial upload, you can still save the sol you've burnt.
Take all the NFTs that didn't get uploaded and rename them all from 0.json โฆ the last number prior to the one you started with and then run upload
again"
0x139 - "ConfigLineMismatch - Number of config lines must be at least number of items available"
Try running verify
again and fix any errors that crop up, let verify run all the way through successfully and upload
again.
0x8f - treasury address must have non-zero SOL balance
Fund your treasury wallet.
Q: How do I get started with the fair launch protocol?
A: Here's Jordan's recommendations:
Comprehensive sources for #FairLaunchProtocol:
Zoom meeting where I hook it all up in one go:
https://solanalabs.zoom.us/rec/share/j_FT_ROcVkdePDnejdczl-3R34knoCk4T-UAWdbI7ZCG3vNnqX7oSUiDHjkKAnc.XU6PtfuCW_7OFksj / ep?a38$F
@artelaflame takes meeting minutes into nice guide: https://hackmd.io/FxCiD20ETZeMbfA8on9WMg?view#Fair-Launch-Protocol
Lay man's intro to FLP by @RogueSharkTank: https://youtu.be/Ucfl_vbdYQI
Have items to add? Leave a comment or contact me on Discord @archaeopteryx#7615!
Solana
Metaplex
Candy Machine