Passer au contenu principal
Change page

Norme de jeton non fongible ERC-721

Introduction

Qu'est-ce qu'un jeton non fongible ?

Un jeton non fongible (NFT) est utilisé pour identifier quelque chose ou quelqu'un de manière unique. Ce type de jeton est parfait pour être utilisé sur des plateformes qui proposent des objets de collection, des clés d'accès, des billets de loterie, des places numérotées pour des concerts et des matchs de sport, etc. Ce type spécial de jeton offre des possibilités incroyables, il mérite donc une norme appropriée, et l'ERC-721 est venu résoudre ce problème !

Qu'est-ce que l'ERC-721 ?

L'ERC-721 introduit une norme pour les NFT, en d'autres termes, ce type de jeton est unique et peut avoir une valeur différente d'un autre jeton issu du même contrat intelligent, peut-être en raison de son âge, de sa rareté ou même d'autre chose comme son aspect visuel. Attendez, visuel ?

Oui ! Tous les NFT ont une variable uint256 appelée tokenId, donc pour tout contrat ERC-721, la paire contract address, uint256 tokenId doit être globalement unique. Cela dit, une application décentralisée (dapp) peut avoir un « convertisseur » qui utilise le tokenId comme entrée et produit une image de quelque chose de cool, comme des zombies, des armes, des compétences ou d'incroyables chatons !

Prérequis

Corps

L'ERC-721 (Ethereum Request for Comments 721), proposé par William Entriken, Dieter Shirley, Jacob Evans et Nastassia Sachs en janvier 2018, est une norme de jeton non fongible qui implémente une API pour les jetons au sein des contrats intelligents.

Il fournit des fonctionnalités telles que le transfert de jetons d'un compte à un autre, l'obtention du solde actuel de jetons d'un compte, l'obtention du propriétaire d'un jeton spécifique et également l'offre totale du jeton disponible sur le réseau. En plus de celles-ci, il possède également d'autres fonctionnalités comme approuver qu'une quantité de jetons d'un compte puisse être déplacée par un compte tiers.

Si un contrat intelligent implémente les méthodes et événements suivants, il peut être appelé contrat de jeton non fongible ERC-721 et, une fois déployé, il sera responsable du suivi des jetons créés sur Ethereum.

D'après l'EIP-721 (s'ouvre dans un nouvel onglet) :

Méthodes

Événements

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

Exemples

Voyons à quel point une norme est importante pour nous simplifier l'inspection de tout contrat de jeton ERC-721 sur Ethereum. Nous avons juste besoin de l'interface binaire-programme (ABI) du contrat pour créer une interface vers n'importe quel jeton ERC-721. Comme vous pouvez le voir ci-dessous, nous utiliserons une ABI simplifiée, pour en faire un exemple facile à aborder.

Exemple avec Web3.py

Tout d'abord, assurez-vous d'avoir installé la bibliothèque Python Web3.py (s'ouvre dans un nouvel onglet) :

pip install web3

Le contrat CryptoKitties possède des événements intéressants autres que ceux de la norme.

Vérifions deux d'entre eux, Pregnant et Birth.

Lectures complémentaires

Tutoriels : Construire avec des jetons non fongibles (ERC-721) sur Ethereum