ERC-1155 est un hybrid : un seul contrat peut gérer plusieurs tokens, fongibles ou non. Contrairement à ERC-721 (un token = un ID unique) ou ERC-20 (tous les tokens identiques), ERC-1155 dit : « un ID = une classe de tokens, avec une quantité par adresse ». Par exemple, ID 1 = 1000 potions, ID 2 = 1 épée unique. C’est parfait pour le gaming, la billetterie et les systèmes mixtes.
Le modèle : ID + Quantité
En ERC-1155 :
— Chaque ID représente un « type » (potion, épée, ticket catégorie A)
— Chaque adresse a une balance pour chaque ID
— Une même personne peut posséder 100 potions (ID 1, balance 100) et 1 épée (ID 2, balance 1)
Exemple sur un jeu :
`balanceOf[player1][1] = 100 // 100 potions
balanceOf[player1][2] = 1 // 1 épée unique`
Cela rend possible des inventaires complets dans un seul contrat, au lieu de déployer 100 contrats différents.
Batch transfers : efficacité maximale
Un grand avantage d’ERC-1155 : tu peux transférer plusieurs items en une seule transaction.
En ERC-721, pour envoyer 5 NFTs, tu dois appeler transfer() 5 fois = 5 transactions = 5 frais de gaz.
En ERC-1155, tu appelles `safeBatchTransferFrom()` une fois et tu envoies 5 items = 1 transaction = coût réduit.
Économiquement, c’est énorme pour les jeux où les joueurs échangent beaucoup d’items.
Quand utiliser ERC-1155 vs ERC-721
Utilise ERC-721 si :
— Chaque item est complètement unique (collectibles rares)
— Tu veux une simplicité maximale
— L’unicité est le point central
Utilise ERC-1155 si :
— Tu as des items en série (100 tickets type A)
— Tu mixes items uniques et items communs
— Tu veux optimiser les coûts de transfer (gaming, collectibles massifs)
Métadonnées en ERC-1155
Chaque ID a un URI de métadonnées :
`https://game.com/metadata/{id}.json`
Le serveur remplace {id} par le numéro. Donc ID 1 → metadata/1.json, ID 2 → metadata/2.json.
Ou tu peux faire dynamique (les métadonnées changent selon le contexte du jeu).
Cas d’usage réels
Gaming : World of Warcraft en blockchain. Un contrat gère armures, armes, potions, montures. Les joueurs échangent massivement.
Ticketing : Un événement émet 1000 tickets catégorie A (ID 1), 500 catégorie B (ID 2). Les vendeurs secondaires les revendent.
Coupon/Loyalty : Un commerce émet des bons d’achat (ID 1, fongibles) et un NFT d’adhésion (ID 2, unique par personne).
Sécurité et pièges
Batch = risque amplifié : une seule signature peut envoyer 10 items. L’utilisateur doit vérifier exactement quoi il envoie.
Metadata complexe : si les metadata sont dynamiques (niveau d’item change), le protocole doit mettre à jour correctement sinon les items deviennent invalides.
Comptabilité : un bug dans la logique d’émission peut créer des items infiniment.
Conclusion
ERC-1155 est puissant pour les systèmes complexes où tu as des quantités et de la variété. C’est le standard favori des jeux Ethereum et des collectibles massifs. La clé est de bien documenter ce que chaque ID représente, sinon l’UX devient confuse. Bien utilisé, ERC-1155 réduit drastiquement les coûts et améliore l’expérience utilisateur.
—
