Exploring the Features and Benefits of Azuki’s ERC-721A NFT Standard
--
NFT minting on Ethereum can be expensive due to the high gas fees associated with executing intelligent contract transactions on the blockchain. Previously we learned how to use the ERC-721 standard, but there is an improved standard, ERC-721A, by Azuki. It gives enormous gas savings when minting multiple NFTs in one transaction. Minting five NFTs can save 7.2 times gas compared to the original ERC-721 standard. Let’s check it out in this article.
ERC-721A vs ERC-721
The ERC-721A standard, compared to the original ERC-721 standard, has some distinctive differences:
The most significant difference between the ERC-721A and the original ERC-721 standards is that ERC-721A includes additional features and functionality not present in ERC-721. For example, ERC-721A allows for dynamic minting of NFTs, meaning they can be minted on-demand rather than having to pre-mint them all at once. This feature can be more cost-effective and efficient for users who don’t need to mint a large number of NFTs upfront.
To gain such gas savings Azuki team has implemented an approach. It keeps an address in the records and how many NFTs are in a sequence. For instance, Mary mints five NFTs starting from number 100. Essentially it will hold data that the owner of the #100 is Mary, and the next five will be without an owner. Using this approach, the ERC-721A standard can achieve significant gas savings because there is no need to mint every five NFTs. Azuki team has calculated that minting one NFT with the ERC-721 is 154,814 gas; with the ERC-721A, it is 76,690. Minting five NFTs, respectively, it is 616,914 and 85,206. It is 7.2 times more gas!
Using the ERC-721A
Using the ERC-721A is very straightforward and similar to the original ERC-721 standard.
After we install the erc721a
package in our project, we can import it into the smart contract.
import "erc721a/contracts/ERC721A.sol";
After that, we must extend our NFT smart contract from the ERC721A
and create a constructor like we would use the OpenZeppelin implementation.
contract GasSaverNFT is ERC721A {
constructor(
string…