I’m thrilled to announce the availability of our enhanced ERC721 implementation, the ERC721A, on behalf of the Launchifi team. Since gas costs have been high on Ethereum for months, the developer community needs to adjust. Gas prices rise when well-liked NFT initiatives start making money, costing the ecosystem as a whole millions of dollars in gas fees. Our main goal has been to make our contract as efficient as possible so that our community can mint with the least amount of gas fees feasible.
We’re happy to report that the Launchifi contract will allow minting numerous NFTs at essentially the same gas cost as minting a single NFT with our low gas NFT contract type, which we’ll refer to as ERC721A in this article.
What is ERC721A?
According to our measurements, minting several NFTs in a single transaction with ERC721A results in significant gas savings. The sole difference between our ERC721A implementation and OpenZeppelin’s ERC721Enumerable implementation—which uses the same application-level logic—is the call to the _safeMint function. According to the findings, minting five NFTs with the ERC721Enumerable implementation costs upwards of $200, whereas doing the same thing with the ERC721A implementation costs about $20. This results in a savings of more than $180 for the identical procedure.
The three key improvements we made to our ERC721A implementation are described in more detail below. The first optimization is the removal of redundant storage from the ERC721Enumerable in OpenZeppelin. The metadata for each token is redundantly stored in the popular OZ implementation of IERC721Enumerable. Given that consumers are significantly less likely to pay for read functions, this denormalized technique optimizes for read functions at a large cost to write functions, which is not desirable. Also, we can save some unnecessary storage from the base solution because our tokens are serially numbered beginning with 0. If you want to increase your chances of winning big, we strongly advise all new launches to carefully review this material.
The owner’s balance is updated once per batch mint request as opposed to once for each newly minted NFT in the second optimization. The vast majority of bulk mints in the NFT space have not yet adopted this idea, despite the fact that it is a fairly straightforward one. This is because the OZ default implementation does not include a batch mint API, and it is alluring to simply pick an existing solution off the shelf without making any modifications. If they allow batch mints, we strongly advise all projects to take this method into account.
The owner data is updated once per batch mint request as opposed to once for each newly minted NFT in the third optimization. In essence, this is comparable to optimization 2. We can save the owner value just once in a way that indicates semantically that Alice owns all three of those tokens rather than saving Alice as the owner three times, each of which would cost us gas.
We encourage the larger community to use this implementation in order to reduce gas costs for their consumers. ERC721A is a considerable upgrade over OpenZeppelin’s well-liked default implementations of IERC721 and IERC721Enumerable.
We at Launchifi are dedicated to giving our community the greatest tools so they can thrive in web3 and we believe NFTs have powerful real world utility and are the future of digital assets. Our community may now build more effectively in the developing web3 space thanks to ERC721A, which allows them to mint several NFTs for the same price as minting a single NFT. We anticipate that this development will open up new opportunities for both makers and collectors by making NFT works more widely available and reasonably priced.
Get Started with Launchifi
Launch your Smart Contract projects at speed with our no code tools.