The nft_create instruction creates an NFT with the provided information and it sets the creator to the wallet that created the NFT. This is useful if you are creating NFTs into your wallet first and then sending them to people.
NFT projects often want to let other people mint (create) the NFTs of the project. That means the NFT account isn't stored until someone mints it. For that, we will need to store the mint information on chain but not in the actual NFT accounts.
New Instructions
mintlist_create Create MintListAccount which will have the following fields:
Collection (optional, will require signer)
Creator (will be set as the creator on the NFT)
Mint Infos
Minted
~Name~
~Image~
Metadata
Price
Num Mints (inferred from Mint Infos)
Num NFTs Remaining
Go Live Date
Randomness Mode — Should it be sequential / random / something else?
mintlist_mint_nft which will give you an NFT will be called with
mintlist
Questions
Can one account be written to multiple times in a block in different transactions?
Should we prevent minting multiple NFTs into one wallet?
Should we prevent minting multiple NFTs in one transaction (via multiple mint IXs)?
How do we properly do randomness? Should we do what Candy Machine v2 does?
Thoughts for the Future
Support paying with SPL Token / Whitelist Token
Support whitelisting addresses
Security
Penalize bots who call this program
Ensure that you can't call other instructions while doing a mint
The
nft_create
instruction creates an NFT with the provided information and it sets thecreator
to the wallet that created the NFT. This is useful if you are creating NFTs into your wallet first and then sending them to people.NFT projects often want to let other people mint (create) the NFTs of the project. That means the NFT account isn't stored until someone mints it. For that, we will need to store the mint information on chain but not in the actual NFT accounts.
New Instructions
mintlist_create
CreateMintListAccount
which will have the following fields:mintlist_mint_nft
which will give you an NFT will be called withmintlist
Questions
Thoughts for the Future
Security