ERC-721A : Comment Azuki a optimisé le minting par lots et l'efficacité du gaz

Points clés
• ERC-721A permet de frapper plusieurs NFT à un coût similaire à celui d'un seul jeton.
• La structure de données regroupée réduit les écritures de stockage et améliore l'efficacité.
• ERC-721A reste compatible avec les portefeuilles et marketplaces existants.
• L'implémentation est cruciale pour les projets NFT sur le réseau principal et les L2.
Le boom des NFT de 2021-2022 a révélé une vérité douloureuse pour les créateurs comme pour les collectionneurs : frapper de nombreux jetons ERC-721 coûte cher. Chaque jeton frappé selon la norme originale nécessite des écritures de stockage répétitives et des événements par jeton, faisant grimper les coûts du gaz lors des "drops" très attendus. L'équipe d'Azuki chez Chiru Labs a abordé ce problème de front avec ERC-721A, une implémentation "drop-in" conçue pour rendre le minting par lots considérablement moins cher tout en conservant la compatibilité ERC-721. Voici comment cela fonctionne, ce que cela change et comment l'utiliser en toute sécurité en 2025.
La base : le coût par jeton de l'ERC-721
La spécification originale des jetons non fongibles, l'ERC-721, définit les interfaces et les événements pour les NFT, mais laisse l'économie du gaz aux implémentations. Une implémentation standard fait généralement :
- Une écriture de stockage pour la propriété de chaque jeton
- Émet un événement
Transferpour chaque jeton frappé - Met à jour les soldes individuellement
Les écritures de stockage (SSTORE) étant parmi les opérations les plus coûteuses de l'EVM, le minting par lots de dizaines ou de centaines de jetons multiplie les frais. Vous pouvez vérifier le coût relatif des opérations EVM et des écritures de stockage via la référence des opcodes sur evm.codes, ce qui explique clairement pourquoi les mints ERC-721 naïfs sont coûteux référence. Pour la spécification elle-même, consultez la norme canonique ERC-721.
ERC-721A en bref
ERC-721A de Chiru Labs est une implémentation de contrat qui conserve l'interface ERC-721, mais redessine la disposition des données et la logique de minting pour que les mints par lots coûtent quasiment le même prix que le minting d'un seul jeton. Le code et la documentation officiels se trouvent dans le dépôt Chiru Labs ERC721A sur GitHub.
Idées clés :
- Identifiants de jetons séquentiels : Les jetons sont frappés avec des identifiants consécutifs. Cette structure permet de déduire la propriété d'une plage de jetons sans avoir à stocker la propriété de chacun d'eux.
- Données de propriété groupées ("packed") : Au lieu de plusieurs mappings, ERC-721A regroupe les champs (adresse du propriétaire, horodatages, indicateurs de "burn", données supplémentaires) dans une seule slot de stockage compacte. Cela réduit les opérations
SSTOREet améliore la localité du cache ; consultez les notes sur la disposition du stockage Solidity pour comprendre le regroupement Disposition du stockage Solidity. - Initialisation différée ("lazy") : Lors d'un mint par lots, l'implémentation n'écrit la propriété qu'une seule fois au début de la plage ; les jetons suivants en déduisent la propriété jusqu'à ce qu'elle change, ce qui réduit considérablement les écritures de stockage.
- Événements compatibles : ERC-721A émet un événement
Transferstandard pour chaque jeton lors des mints réguliers afin de rester compatible avec les marketplaces. Pour les "mega-mints" au moment de la création du contrat, il peut utiliser l'événementConsecutiveTransferERC-2309 pour réduire davantage les frais d'événements, comme le permet la norme ERC-2309.
En pratique, frapper N jetons en une seule transaction avec ERC-721A coûte seulement légèrement plus cher que d'en frapper un, au lieu de N fois plus cher. C'est l'essence de son efficacité en gaz.
Ce qui reste identique vs ce qui change
Ce qui reste identique :
- Il implémente la même interface externe que l'ERC-721, donc les portefeuilles, les marketplaces et les indexeurs continuent de fonctionner.
- Les flux de minting sécurisés, les approbations et les transferts se comportent comme prévu selon la norme Référence ERC-721 d'OpenZeppelin.
Ce qui change en interne :
- Les recherches de propriété peuvent remonter jusqu'à la slot de propriété initialisée la plus proche (temps constant amorti en usage typique).
- Les transferts aux "limites de plage" peuvent initialiser la propriété du jeton suivant pour maintenir la précision des déductions.
- La structure de données utilise un regroupement agressif de bits et, par endroits, des calculs non vérifiés (
unchecked) pour économiser du gaz. Les développeurs qui étendent ERC-721A doivent comprendre les blocsuncheckedet les invariants de Solidity pour éviter les dépassements (overflowsouunderflows) unchecked dans Solidity.
Pourquoi cela reste important en 2025
La mise à niveau Dencun d'Ethereum en 2024 a introduit l'espace de "blob" (EIP-4844) qui a considérablement réduit les coûts de disponibilité des données sur les rollups, diminuant les frais sur les L2. Par conséquent, de nombreux projets NFT frappent désormais sur L2 et transfèrent ou règlent plus tard. Néanmoins, lorsque la demande explose ou lorsque le minting sur le réseau principal reste désirable pour la provenance, l'efficacité du gaz est importante. ERC-721A reste pertinent car il réduit la composante on-chain, quelle que soit la chaîne sur laquelle vous déployez. Pour plus de contexte sur Dencun et son impact, consultez la présentation de la Fondation Ethereum Dencun sur le réseau principal.
Comparaison d'ERC-721A avec les alternatives
- ERC-1155 : Si votre collection est semi-fongible (plusieurs copies par identifiant) ou si vous dépendez de vrais transferts par lots, l'ERC-1155 peut être plus adapté car il prend en charge nativement les opérations par lots avec une interface différente ERC-1155. Pour les NFT 1/1 classiques avec des métadonnées par jeton et des flux de marketplace établis, ERC-721A conserve l'interface ERC-721 tout en optimisant le gaz.
- Redevances : ERC-721A peut intégrer la signalisation de redevances on-chain via l'EIP-2981 sans affecter ses optimisations de minting EIP-2981.
- Listes blanches hors chaîne et signatures : Associer ERC-721A à des mints basés sur des bons de souscription signés EIP-712 ou à des preuves de Merkle permet de maintenir l'efficacité et la flexibilité de votre vente primaire EIP-712.
Checklist développeur : construire en toute sécurité avec ERC-721A
- Utilisez la dernière version auditée de Chiru Labs et lisez les notes de sécurité du dépôt avant de déployer en production ERC721A sur GitHub.
- Gardez les identifiants de jetons séquentiels pour maximiser les économies de gaz ; évitez les schémas d'identifiants personnalisés qui brisent l'inférence de propriété consécutive.
- Si vous devez "minter" en très grande quantité lors de la création du contrat, envisagez l'option
ConsecutiveTransferERC-2309, et vérifiez que votre pile d'indexation la comprend ERC-2309. - Soyez prudent lorsque vous ajoutez du stockage personnalisé à la structure de propriété groupée ("packed") ; un désalignement ou des types trop larges peuvent annuler les économies. Examinez les règles de groupement de stockage de Solidity Disposition du stockage Solidity.
- Testez les conditions limites : transferts et "burns" près des bords des plages, extensions d'énumération et interactions avec les marketplaces qui dépendent de l'énumération des jetons.
- Profiler avec des tailles de lots réalistes sur votre réseau cible. L'économie du gaz varie entre le réseau principal et les L2 post-Dencun, alors référencez les flux de minting et de transfert avec vos "hooks" de métadonnées activés.
Pour les collectionneurs et les "minters" : ce que vous remarquerez
- Frais de minting primaire réduits : Le minting par lots de plusieurs NFT en une seule transaction devient beaucoup moins cher que de les "minter" un par un.
- "Drops" plus rapides sous charge : Moins d'écritures de stockage intensives signifie que les mints sont moins susceptibles d'échouer lorsque le mempool est encombré.
- Expérience utilisateur de portefeuille standard : Comme ERC-721A préserve l'interface ERC-721, votre portefeuille, les listes de votre marketplace et les indexeurs continueront à reconnaître correctement les jetons.
Pièges et mythes courants
- "C'est une nouvelle norme." Pas tout à fait. ERC-721A est une implémentation d'ERC-721 avec une disposition interne redessinée ; elle ne modifie pas l'interface publique ERC-721.
- "Les événements sont compressés, donc les indexeurs plantent." Les mints par lots réguliers émettent toujours des événements
Transferpar jeton. Seul le chemin optionnel ERC-2309 compresse les événements, et il est destiné aux mints au moment de la création du contrat ERC-2309. - "L'énumération est gratuite." Elle ne l'est pas. L'énumération de tous les jetons ou de tous les jetons par propriétaire n'est intentionnellement pas intégrée pour économiser du gaz ; si vous en avez besoin, ajoutez une extension interrogeable et envisagez l'indexation hors chaîne.
Perspectives d'avenir
Avec la réduction des frais sur les L2 grâce à l'espace de blob et la maturation de l'infrastructure NFT, les créateurs choisissent désormais entre la provenance sur le réseau principal et la scalabilité des L2 sur une base par "drop". ERC-721A continue d'être un choix pragmatique par défaut pour les PFP à forte demande, les ensembles d'art génératif avec des mints par lots sur liste blanche, et les actifs de jeu qui souhaitent la compatibilité ERC-721 sans le coût du minting par lots de l'ERC-721. Si vous dépassez les sémantiques de l'ERC-721, déterminez si votre cas d'utilisation correspond naturellement au modèle multi-jetons de l'ERC-1155 ERC-1155.
La gestion sécurisée des clés reste importante
Des frais de gaz réduits ne modifient pas la règle la plus importante : protégez vos clés. Les mints ERC-721A impliquent souvent la signature de messages EIP-712 ou l'exécution rapide de transactions de grande valeur lors d'un "drop" intense. Un portefeuille matériel qui prend en charge la signature hors ligne sécurisée, les réseaux multi-chaînes et des aperçus clairs des transactions vous aide à "minter" en toute confiance. Les portefeuilles matériels OneKey sont open-source, s'intègrent aux principaux outils Web3 et offrent des flux de signature EVM et EIP-712 simples, utiles lorsque vous "mintez" par lots efficacement tout en souhaitant minimiser le risque de signature.
Ressources rapides
- Spécification ERC-721 ERC-721
- Implémentation et documentation de Chiru Labs ERC721A sur GitHub
- Événement
ConsecutiveTransferpour les mints au moment de la création du contrat ERC-2309 - OpenZeppelin Contracts (référence aux API ERC-721) Documentation ERC-721 d'OpenZeppelin
- Référence des coûts du gaz EVM Opcodes EVM et gaz
- Dynamique des frais Dencun et L2 en 2024-2025 Ethereum Foundation : Dencun
- Norme alternative pour les jetons semi-fongibles/par lots ERC-1155
- Signalisation des redevances EIP-2981
- Signatures de données typées pour les listes blanches EIP-712
ERC-721A n'a pas changé ce que sont les NFT, il a changé l'efficacité avec laquelle nous pouvons les créer. Dans un monde où l'espace de bloc est limité et l'attention fugace, c'est une amélioration significative.






