I have to mint 10000 NFTs. But calling mint function 10000 times is not a good idea I guess. Even I created a batchMint function that is calling mint function in loop and it is able to mint multiple NFTs at once (it is saving default gas of 21000 for each mint call). But I just want to know is there any standard or better approach to mint these 10000 NFTs at once.
Please see answer below, did that help?– William EntrikenNov 6, 2021 at 23:47
I want to make sure you are required to mint this. It sounds like a "push" pattern, which might be better replaced with a "pull" pattern: Let users/buyers/to-be-owners mint them instead. I know you mention you "have to," but not sure if that is due to thinking the push pattern is the only way or not. Just making sure :-)– Jesper - jtk.ethAug 27, 2022 at 4:09
Please see the smart contract for https://tenthousandsu.com. This includes:
- Mints 10,000 NFTs
- All at once
- And supports ERC-721 Enumerable
Su Squares is the first ERC-721 contract, it is mentioned in the ERC-721 specification as a demo, and it was recently re-released as fully open source so you can copy away!
You can also look at the ERC721A contract. The contract supports minting of multiple NFTs at gas cost of one.
There are some limitations, though:
- Token IDs must be subsequent
- Reducing the gas costs of minting NFTs is more important than optimizing any other ERC721 call. This means, for example, that read operations like
ownerOfis no longer O(1).