Un jeton est conçu pour représenter un objet de valeur et s’échanger (être acheté, vendu ou tradé) entre différents partis en vertu d’un « smart contract ». Dans l’écosystème Ethereum, le plus caractéristique d’entre eux est bien évidement le jeton ether. Des biens aussi divers que les chèques, pièces de monnaie, objets d’art, points de fidélité, certificats d’or, droits de vote et plus largement, tout bien échangeable fongible peuvent être attachés à un jeton dans la blockchain Ethereum aux fins d’authenticité et de validité d’une transaction entre deux parties.

Au cours des derniers mois, nous avons vu une multitude de jetons émis sur le blockchain Ethereum pour differents Dapps et projets sans faire appel ni nécessairement adhérer à aucun standard ou norme particulière. Les Dapps sont simplement des applications distribuées sur la blockchain permettant à son utilisateur d’exécuter des tâches en utilisant une interface standard web ou mobile. Il s’agit essentiellement d’un ensemble de “smart contract” (instructions ou programmes informatiques devant s’exécuter à des échéances et conditions précises sans aucune autre forme d’intervention). Cependant, un jeton standardisé signifie que tout jeton, qu’il soit nouvellement émis ou déjà existant, sera instantanément compatible avec n’importe quel projet et n’importe quel “smart contract” qui utilise les mêmes normes. C’est tout le mérite d’un standard commun tel que celui de ERC20 qui rend ces actifs plus facilement interchangeables, compatibles et réutilisables d’un projet à l’autre, d’un « smart contract » à l’autre, avec la capacité entre autre de déclarer des variables ou des fonctions globales qui pourront être utilisées par les uns et les autres sur la blockchain.

La norme ECR20 développée en 2015 spécifie six fonctions ou méthodes et deux événements qui assurent que les jetons Ethereum de différentes sources fonctionnent globalement de la même manière partout dans le système Ethereum.  Cela permet aux développeurs de prédéterminer avec exactitude le comportement des nouveaux jetons dans le système Ethereum sans avoir besoin de re-concevoir chaque projet à chaque fois. Avec la norme ERC20, un émetteur peut garder une trace de qui (ou plus exactement l’adresse de qui) possède un nombre de jetons à un moment donné. Puisque chaque jeton est une monnaie secondaire du réseau Ethereum, cette solution est facile à implémenter et toutes les attributions sont effectuées à travers les méthodes propres au jeton en question.

En langage informatique, un jeton est avant tout un objet c’est à dire un petit ensemble de données encapsulées dans une structure ou un format spécifique. A l’instar de tout objet (ou concept) du monde réel, un objet, qu’il soit un jeton ou autre élément devant être programmé, a des instructions ou méthodes qui lui sont propres et qui indiquent la manière dont l’objet peut être utilisé ou accédé. Il a également des états ou attributs le qualifiant. A titre d’exemple, une peinture a une couleur (attribut le qualifiant) et différentes méthodes soit de dosage de différents composants, soit d’utilisation. En outre, une personne peintre ou non, peut à un moment donné, désirer payer pour déclencher une de ses méthodes qui l’affiche ou le rend visible sur un mur. Nous avons ainsi un jeton. En d’autres termes, un objet ou jeton est une structure modulaire d’informations qui peuvent être combinés et recombinés en fonction d’un objectif précis. La seule différence ici est le rôle de l’informatique en tant qu’utilisateur qui stocke ces informations de façon, qu’il est facile pour le programme et le programmeur d’échanger les attributs sans avoir besoin de changer le code à chaque utilisation. Ainsi le jeton ECR-20 va avoir des attributs et des méthodes standards interprétables et réutilisables par d’autres “smart contract”.

En bref, le standard ECR20 c’est six méthodes et deux événements / états :

méthodes:

totalSupply() Indique le nombre total de jetons offerts dans le « smart contract »
balanceOf retourne le solde de compte
transfer Transfert  un montant donné vers un autre compte destinataire qui lui sont indiqués
transferFrom Envoyer une quantité de jetons de l’émetteur au récepteur
approve Permet  au récepteur de se retirer du compte émetteur et possiblement en  plusieurs échéances un montant total indiqué
allowance Affiche le montant que le récepteur est encore autorisé à retirer
évènements:
Transfer Déclenché lorsque les jetons sont transférés.
Approval

Déclenché chaque fois que la méthode « approve » est appelée.