Qu'est-ce qu'un jeton ERC-20 : guide complet de la norme de jeton d'Ethereum (2026)
— By Tony Rabbit in Tutorials

Qu'est-ce qu'un jeton ERC-20 ? Guide complet du standard de token d'Ethereum : 6 fonctions obligatoires, les principaux tokens, l'importation MetaMask, la sécurité (approuver/révoquer) et les différences BEP-20 (2026).
Si vous avez déjà détenu un token sur Ethereum, négocié sur un échange décentralisé, utilisé un pièce stable comme USDC, ou interagi avec un protocole DeFi, vous avez utilisé un token ERC-20. Cette norme unique alimente la grande majorité de tous les actifs cryptographiques qui ne sont pas des pièces blockchain natives. De Tether et Chainlink à Uniswap et Shiba Inu, presque tous les jetons que vous pouvez nommer sur Ethereum suivent le même ensemble de règles : la spécification ERC-20.
ERC-20 est une norme technique qui définit comment un jeton fongible doit se comporter à l'intérieur d'un Contrat intelligent sur Ethereum. Il indique à chaque portefeuille, échange et protocole DeFi exactement quelles fonctions un jeton doit exposer, quels événements il doit émettre et comment les transferts doivent fonctionner. Cette prévisibilité est la raison pour laquelle MetaMask peut vous montrer n'importe quel solde de jeton, pourquoi Uniswap peut répertorier un nouveau jeton en quelques minutes et pourquoi les développeurs peuvent créer des primitives financières complexes au-dessus de n'importe quel actif conforme sans écrire de code d'intégration personnalisé.
Dans ce guide, vous apprendrez ce qu'est réellement l'ERC-20 au niveau technique, la différence entre les fonctions obligatoires et facultatives, le fameux modèle d'approbation et de transfert qui alimente DeFi, comment identifier un contrat ERC-20 sur Etherscan, comment le comparer avec d'autres normes de jetons comme ERC-721 et ERC-1155, comment ajouter des jetons personnalisés à MetaMask et quels risques vous devez être conscient lors de l'octroi des approbations. À la fin, vous comprendrez suffisamment bien la norme pour lire un contrat de jeton, évaluer sa sécurité et l'utiliser en toute confiance dans l'ensemble de l'écosystème Ethereum en 2026.

Qu'est-ce qu'un jeton ERC-20
ERC-20 signifie Ethereum Request for Comments, numéro 20. Il a été proposé par le développeur Fabian Vogelsteller en novembre 2015 comme moyen de standardiser le comportement des jetons sur Ethereum. Avant l'existence de l'ERC-20, chaque jeton sur Ethereum était implémenté différemment, ce qui signifiait que les portefeuilles, les échanges et autres contrats devaient écrire du code personnalisé pour interagir avec chacun. Le résultat était une fragmentation, des bugs et un obstacle majeur à l’interopérabilité.
La proposition de Vogelsteller est finalement devenue EIP-20 (Ethereum Improvement Proposal 20) et a été finalisée en septembre 2017. Le nom « ERC » est resté même si la désignation officielle est EIP-20. La norme est volontairement minimale. Il définit un ensemble de fonctions et d'événements que tout contrat de jeton fongible doit implémenter, mais laisse la logique sous-jacente au développeur. Cela signifie qu'un jeton ERC-20 peut avoir un approvisionnement fixe, un approvisionnement monnayable, des mécanismes de gravure, des taxes sur les transferts ou tout autre comportement personnalisé, à condition qu'il expose l'interface standard.
À la base, un contrat ERC-20 est essentiellement un contrat intelligent qui maintient un grand livre de soldes. À l'intérieur du contrat, il existe un mappage (une table clé-valeur) qui stocke le nombre de jetons que possède chaque adresse. Lorsque vous « envoyez » un jeton ERC-20 à quelqu’un, vous ne transférez aucun objet. Vous appelez une fonction sur le contrat de jeton qui diminue votre solde d'un certain montant et augmente le solde du destinataire du même montant. Le jeton ne quitte jamais le contrat. Le contrat met simplement à jour son grand livre interne.
C'est un concept fondamental à comprendre. Contrairement à pièces comme ETH ou BTC, les jetons ERC-20 ne sont pas stockés dans votre portefeuille de manière significative. Votre portefeuille suit simplement les contrats de jetons qui ont enregistré votre adresse comme ayant un solde. Si un contrat de token était détruit (ce qui est possible avec certaines fonctions d'administration), vos tokens disparaîtraient effectivement, même si votre clé privée reste valide.
Pourquoi une norme de jeton est importante
La raison pour laquelle ERC-20 est devenu l'une des normes les plus importantes de l'histoire de la cryptographie est l'interopérabilité. Étant donné que chaque jeton conforme expose les mêmes six fonctions et émet les deux mêmes événements, tout portefeuille, échange, oracle, indexeur ou protocole DeFi peut interagir avec n'importe quel jeton ERC-20 sans avoir besoin de connaissance préalable de ce jeton. Uniswap n'a pas besoin de savoir ce que fait un jeton spécifique en interne. Il lui suffit de connaître l'adresse du contrat et il peut immédiatement appeler transferFrom() pour déplacer des jetons lors d'un échange.
Cette standardisation est ce qui a permis l'explosion de la finance décentralisée à partir de 2020. Les protocoles de prêt comme Aave et Compound fonctionnent avec des milliers de tokens différents car ils se comportent tous de la même manière au niveau de l'interface. Tokenomique et les expériences économiques sont devenues peu coûteuses à réaliser, car le déploiement d'un nouveau jeton nécessite uniquement de copier du code testé au combat. Les explorateurs de blocs, les trackers de portefeuille, les logiciels fiscaux et les tableaux de bord d'analyse peuvent tous indexer automatiquement n'importe quel jeton ERC-20 en écoutant les mêmes événements standardisés.
Sans une norme de jeton, l'écosystème Ethereum tel que nous le connaissons n'existerait pas. Chaque jeton nécessiterait des intégrations de portefeuille sur mesure, chaque DEX aurait besoin d'un code personnalisé par actif et la friction liée au lancement d'un nouveau projet serait énorme. ERC-20 a résolu ce problème avec une interface remarquablement simple : six fonctions requises et deux événements requis.
Les 6 fonctions ERC-20 obligatoires
La spécification ERC-20 définit six fonctions que tout contrat de token conforme doit implémenter. Ces fonctions constituent l'interface publique avec laquelle tout le code externe interagit. Si un contrat manque ne serait-ce qu'un de ces éléments, il n'est techniquement pas conforme à l'ERC-20, et de nombreux portefeuilles ou protocoles peuvent refuser de fonctionner avec lui.
Renvoie le nombre total de jetons actuellement existants. Utilisé par les explorateurs, les calculateurs de capitalisation boursière et les outils d'audit.
Renvoie le solde du jeton pour une adresse Ethereum spécifique. C’est ainsi que votre portefeuille sait combien de jetons vous détenez.
Déplace une quantité spécifique de jetons de l'adresse de l'appelant directement vers une autre adresse. L'opération d'envoi la plus simple.
Autorise une autre adresse (souvent un contrat intelligent) à dépenser jusqu'à un montant spécifique de vos tokens en votre nom.
Renvoie le montant restant qu'un dépensier est encore autorisé à retirer du solde d'un propriétaire. Crucial pour suivre les approbations actives.
Déplace les jetons d'une adresse à une autre en utilisant une allocation préalablement approuvée. La base de tous les swaps DEX et dépôts DeFi.
Les trois premières fonctions, totalSupply(), balanceOf(), et transfer(), sont les bases de la comptabilité des jetons. Ils permettent à n'importe qui de lire l'offre, de vérifier les soldes et d'envoyer des jetons directement. Si l’ERC-20 n’avait que ces trois éléments, cela serait déjà utile, mais DeFi tel que nous le connaissons serait impossible.
Les trois fonctions suivantes, approve(), allowance(), et transferFrom(), forme le modèle de dépenses déléguées. Ils permettent à un utilisateur d'autoriser un contrat intelligent à extraire des jetons de son portefeuille jusqu'à une limite définie. C’est ce qui permet aux DEX, aux protocoles de prêt, aux contrats de jalonnement et aux ponts de fonctionner sans conserver vos jetons à l’avance. Nous reviendrons sur ce modèle en détail plus tard, car il est également à l'origine de la plupart des incidents de sécurité liés à l'ERC-20.
Les 3 Fonctions Optionnelles : name(), symbol(), decimals()
En plus des six fonctions obligatoires, la spécification ERC-20 en définit trois facultatives. Ils ne sont pas techniquement requis pour la conformité, mais dans la pratique, chaque jeton moderne les implémente car les portefeuilles et les échanges en dépendent à des fins d'affichage.
nom() renvoie le nom lisible du jeton, tel que « USD Coin » ou « Chainlink Token ». C'est la chaîne que vous voyez dans MetaMask et d'autres portefeuilles. symbole() renvoie le ticker court, comme « USDC » ou « LINK », généralement de trois à cinq caractères. décimales() renvoie le nombre de décimales utilisées par le jeton, c'est ainsi que le contrat convertit entre les valeurs entières qu'il stocke en interne et les montants lisibles par l'homme que vous voyez sur le front-end.
La fonction décimales mérite une explication plus approfondie car elle est source de confusions fréquentes. Les contrats intelligents Ethereum ne peuvent pas gérer nativement les nombres fractionnaires. Tous les soldes sont stockés sous forme de nombres entiers. Pour représenter des fractions, les jetons ERC-20 utilisent un multiplicateur défini par la valeur décimale. La convention Ethereum est de 18 décimales, la même que celle utilisée par ETH lui-même avec wei. Ainsi, lorsque vous voyez un solde de 1 LINK, le contrat stocke en fait le nombre entier de 1 000 000 000 000 000 000. Votre portefeuille se divise par 10 à la puissance 18 avant de l'afficher.
Tous les jetons n'utilisent pas 18 décimales. L'USDC et l'USDT, par exemple, n'utilisent que 6 décimales car ils sont rattachés au dollar américain et ne nécessitent pas une extrême précision. WBTC utilise 8 décimales pour correspondre à la précision satoshi de Bitcoin. Certains jetons expérimentaux utilisent 0 décimales pour les rendre non divisibles. C'est pourquoi il est essentiel de toujours vérifier la valeur décimale avant de faire des calculs sur les soldes bruts de jetons. Un bug courant au début de DeFi supposait 18 décimales alors que le jeton réel en utilisait 6 ou 8, ce qui entraînait des transferts d'un facteur 100 milliards ou plus.
Événements ERC-20 : transfert et approbation
Les fonctions sont la manière dont le code externe appelle un contrat. Les événements sont la façon dont un contrat informe le monde extérieur que quelque chose s'est produit. La norme ERC-20 définit deux événements obligatoires que chaque token doit émettre. Ces événements constituent le fondement de la manière dont les explorateurs de blocs, les indexeurs et les outils d’analyse suivent l’activité des jetons.
Le premier est event Transfer, émis chaque fois que des jetons se déplacent entre deux adresses, y compris la frappe (à partir de l'adresse zéro) et la gravure (vers l'adresse zéro). Chaque transfert dans l'historique complet d'un jeton est capturé par ces journaux, et c'est exactement ainsi qu'Etherscan et DexTools peuvent vous montrer un historique complet des transferts pour n'importe quel jeton ERC-20, sans avoir à explorer l'intégralité de la blockchain. Ils s'abonnent simplement aux événements de transfert de chaque contrat de jeton et les stockent dans une base de données indexable.
La seconde est event Approval, émis chaque fois qu'un propriétaire autorise un dépensier via la fonction d'approbation. Des outils tels que Revoke.cash, le vérificateur d'approbation de jetons d'Etherscan et diverses extensions de sécurité de portefeuille s'appuient tous sur ces événements pour vous montrer la liste complète des contrats qui ont actuellement l'autorisation de dépenser vos jetons. Sans événements standardisés, ce type de surveillance inter-protocoles serait impossible.
Cette architecture événementielle a un bel effet secondaire. Étant donné que les événements sont émis en chaîne et stockés dans les reçus de transaction, ils sont permanents, transparents et vérifiables cryptographiquement. Tout outil d'analyse peut reconstruire indépendamment l'historique complet de n'importe quel jeton en rejouant ses événements à partir du bloc de déploiement du contrat. Il s’agit de l’un des superpouvoirs sous-estimés des blockchains publiques et des normes construites sur celles-ci.

Le modèle apply() / transferFrom()
Si vous n'apprenez qu'une chose en profondeur sur l'ERC-20, faites-en ce modèle. Le flux d'approbation et de transfertFrom est ce qui permet à DeFi d'exister, et c'est également ce qui provoque la majorité des fuites de portefeuille et des exploits d'approbation lorsqu'ils sont utilisés avec négligence.
Le problème que le modèle résout est le suivant. Les contrats intelligents ne peuvent pas accéder à votre portefeuille et accepter des jetons. Ils ont besoin d'une autorisation. Mais vous ne pouvez pas non plus envoyer des jetons à un contrat et vous attendre à ce qu'il sache quoi en faire, car le simple
La fonction transfer() ne déclenche aucun rappel et n'informe pas le destinataire de l'arrivée des fonds. La solution est un modèle d’autorisation déléguée en deux étapes.
Lors de la première étape, l'utilisateur appelle approve() sur le contrat de jetons, accordant à un dépensier spécifique (souvent un routeur DEX ou un pool de prêt) le droit de dépenser jusqu'à un montant défini de ses jetons. C'est ce que vous signez lorsque MetaMask vous demande d'approuver un nouveau jeton avant votre premier échange. À la deuxième étape, lorsque vous déclenchez réellement le swap, le contrat DEX appelle transferFrom() sur le contrat de jetons, qui vérifie l'allocation et déplace les jetons de votre adresse là où le DEX en a besoin, le tout en une seule transaction atomique. Pour plus de contexte sur cette étape de signature, lisez notre analyse approfondie sur le transaction d'approbation.
Ce modèle est élégant car il sépare l'autorisation de l'exécution. Vous autorisez une fois, puis n'importe quel nombre d'opérations peuvent avoir lieu sur cette allocation jusqu'à ce qu'elle soit entièrement consommée ou révoquée. Il est également réutilisable, ce qui signifie que la même approbation fonctionne pour le prochain swap, le prochain dépôt de prêt, etc., jusqu'à ce que vous l'annuliez. L’inconvénient, comme l’indique l’avertissement ci-dessus, est que les approbations sont des autorisations qui persistent jusqu’à ce que vous les révoquiez explicitement, même si vous arrêtez complètement d’utiliser le protocole.
Comment identifier un jeton ERC-20 sur Etherscan
Etherscan est l'explorateur de blocs le plus largement utilisé pour Ethereum et offre des outils puissants pour inspecter les contrats ERC-20. Savoir comment lire la page Etherscan d'un jeton est l'une des compétences les plus précieuses pour quiconque interagit avec de nouveaux jetons, que vous achetiez des pièces mèmes, recherchiez de nouveaux lancements DeFi ou auditiez un portefeuille.
Lorsque vous collez une adresse de contrat de jeton dans Etherscan, vous arrivez sur la page de suivi des jetons. Cette page affiche automatiquement le nom du jeton, le symbole, l'offre totale, le nombre de détenteurs et le total des transferts, qu'Etherscan dérive des fonctions et événements standard ERC-20 dont nous avons discuté ci-dessus. La page est générée automatiquement pour tout contrat conforme ERC-20, sans intervention manuelle de l'équipe projet. C'est le pouvoir d'une norme.
L'onglet Contrat est l'endroit où se trouvent les informations les plus utiles. Si les développeurs ont vérifié leur code source, vous pouvez lire le véritable Solidity code qui définit le comportement du token. Ceci est essentiel car la norme n’applique que l’interface, et non ce qui se passe à l’intérieur de chaque fonction. Un jeton peut implémenter transfer() d'une manière qui prend une taxe de 10 %, met certaines adresses sur liste noire, suspend complètement les transferts, ou pire. Vérifiez toujours le code source vérifié avant d’interagir avec un jeton non établi.
La section Lire le contrat vous permet d'appeler des fonctions d'affichage directement depuis votre navigateur, sans aucune transaction nécessaire. Vous pouvez vérifier l'offre totale, vérifier les soldes de n'importe quelle adresse ou consulter les allocations. La section Write Contract vous permet d'appeler des fonctions de changement d'état si vous connectez un portefeuille, mais la plupart des utilisateurs les déclencheront via DEX ou des interfaces de portefeuille plutôt que directement. L'onglet Détenteurs montre la répartition de la propriété des jetons, ce qui est essentiel pour évaluer le risque de concentration avant d'acheter un nouveau jeton. Si les dix principaux portefeuilles détiennent 90 % de l’offre, c’est un signal d’alarme.
ERC-20 par rapport aux autres normes de jetons
ERC-20 est le standard de jeton Ethereum le plus connu mais il est loin d'être le seul. Différents cas d'utilisation nécessitent des propriétés différentes, et la communauté Ethereum a développé une famille de normes connexes. Comprendre comment ils se comparent aide à clarifier ce qu’est et ce n’est pas l’ERC-20.
Les jetons ERC-20 sont fongibles, ce qui signifie que chaque unité est identique et interchangeable. Un USDC est identique à n’importe quel autre USDC. ERC-721, la norme pour NFT, c'est le contraire. Chaque jeton possède un identifiant unique et des propriétés uniques. Vous ne pouvez pas échanger un CryptoPunk contre un autre sans accord explicite, car ils ne sont pas interchangeables. ERC-1155 est un hybride qui permet à un seul contrat de gérer à la fois des jetons fongibles et non fongibles, ce qui le rend particulièrement populaire dans les jeux où un seul contrat peut gérer des pièces d'or (fongibles) aux côtés d'épées légendaires (non fongibles).
ERC-4626 est l'une des normes les plus récentes, finalisée en 2022 et largement adoptée d'ici 2024. Il s'agit d'une norme wrapper construite sur l'ERC-20. Un coffre-fort 4626 accepte les dépôts d'un jeton ERC-20 spécifique et émet des actions représentant la propriété du pool sous-jacent. Les coffres-forts Yearn Finance, le sDAI de MakerDAO et de nombreux jetons de reçus du marché des prêts suivent ce modèle. Étant donné que 4626 hérite de l'ERC-20, chaque partage de coffre-fort est lui-même un jeton ERC-20 entièrement transférable, ce qui signifie que vous pouvez placer des reçus générateurs de rendement dans les pools Uniswap, les utiliser comme garantie ailleurs, etc.
Meilleurs jetons ERC-20 en 2026
L'écosystème ERC-20 comprend des dizaines de milliers de jetons, mais un petit ensemble d'entre eux concentre la grande majorité de la valeur et du volume. Voici quelques-uns des jetons ERC-20 les plus importants que vous devriez connaître en 2026.
Le stablecoin réglementé en USD de Circle, 1:1 adossé à des liquidités et à des bons du Trésor à court terme.
Tether, le stablecoin le plus échangé au monde en volume quotidien.
Le stablecoin décentralisé de MakerDAO, légèrement indexé sur l'USD via des positions de dette garantie.
Jeton de gouvernance Uniswap, contrôle les commutateurs de frais et les mises à niveau de protocole.
Gouvernance du protocole Aave, également utilisée pour le staking dans le module de sécurité.
Jeton de réseau Oracle Chainlink, l'épine dorsale des flux de prix dans DeFi.
Shiba Inu, l'une des plus grandes pièces mèmes en termes de capitalisation boursière et de nombre de détenteurs.
Jeton mème sur le thème de la grenouille lancé en 2023, désormais un fleuron de la culture mème sur Ethereum.
Remarquez la diversité. Les pièces stables comme l'USDC, l'USDT et le DAI sont les chevaux de bataille du règlement en chaîne. Les jetons de gouvernance comme UNI et AAVE distribuent le contrôle des principaux protocoles. LINK alimente les infrastructures critiques. SHIB et PEPE prouvent que même les jetons sans utilité formelle peuvent atteindre des capitalisations boursières d'un milliard de dollars lorsque le mème attire l'attention. Chacun d'entre eux utilise exactement la même interface ERC-20, c'est pourquoi ils fonctionnent tous dans MetaMask, Uniswap et DexTools sans aucune intégration personnalisée.
Comment ajouter un ERC-20 personnalisé à MetaMask
Bien que MetaMask affiche automatiquement les jetons ERC-20 les plus populaires, les jetons nouveaux ou moins courants nécessitent une importation manuelle. Le processus est rapide une fois que vous connaissez les étapes, et il fonctionne de la même manière pour tout ERC-20 conforme sur Ethereum ou tout réseau compatible EVM.
Tout d'abord, recherchez l'adresse officielle du contrat auprès d'une source fiable. Le site officiel du jeton, la page Etherscan vérifiée du projet, DexTools ou CoinGecko sont tous fiables. Ne copiez jamais une adresse de contrat à partir d’un message Telegram aléatoire ou d’une réponse Twitter. Les fraudeurs déploient régulièrement de faux jetons portant des noms identiques aux jetons légitimes, dans l’espoir que les utilisateurs importent le mauvais contrat et perdent des fonds.
Ensuite, ouvrez MetaMask et assurez-vous que vous êtes sur le bon réseau. Les jetons ERC-20 sur le réseau principal Ethereum sont des contrats différents de leurs homologues sur Arbitrum, Base ou Polygon. Cliquez sur l'onglet Jetons, puis cliquez sur « Importer des jetons » en bas de la liste. Collez l'adresse du contrat dans le champ d'adresse. MetaMask devrait automatiquement remplir le symbole et les décimales en interrogeant le contrat. Si ces champs restent vides, le contrat pourrait ne pas être entièrement conforme à l'ERC-20, ce qui est en soi un signe d'avertissement qui mérite d'être étudié.
Confirmez l'importation. Le token apparaît désormais dans la liste des tokens de votre portefeuille et votre solde est affiché en fonction de l'état actuel du contrat. N'oubliez pas que l'importation d'un token n'affecte pas votre solde. Les tokens existent déjà dans le contrat sous votre adresse. L'importation indique simplement à MetaMask quels contrats interroger et afficher. Vous pouvez supprimer un jeton personnalisé à tout moment sans rien perdre, car les jetons n'ont jamais vécu dans MetaMask en premier lieu.
ERC-20 sur d'autres chaînes
ERC-20 a commencé sur Ethereum, mais sa conception est si simple et utile qu'elle a été copiée sur chaque blockchain compatible avec la machine virtuelle Ethereum existante. BNB Smart Chain appelle sa version BEP-20, mais elle est fonctionnellement identique, avec les mêmes six fonctions et les deux mêmes événements. Polygon, Arbitrum, Optimism, Base, Avalanche C-Chain, Fantom et des dizaines d'autres chaînes EVM utilisent toutes la norme ERC-20 de manière native.
C'est pourquoi un jeton comme USDC peut exister sur Ethereum, Arbitrum, Base, Polygon, Optimism, Avalanche et bien d'autres chaînes. Chaque version est un contrat ERC-20 distinct sur sa chaîne respective, souvent dérivé du contrat canonique du réseau principal Ethereum, mais se comportant par ailleurs de manière identique. Les portefeuilles comme MetaMask gèrent chaque version séparément et vous devez toujours confirmer sur quelle chaîne se trouve un jeton avant de l'envoyer. Le pontage des jetons entre les chaînes utilise des mécanismes entièrement différents, impliquant souvent des modèles de verrouillage et de menthe que nous abordons dans nos didacticiels de pont.
La blockchain TRON dispose également d'une version USDT appelée TRC-20, qui sert un objectif similaire à l'ERC-20 mais n'est pas techniquement compatible. TRON n'est pas une chaîne EVM, ses contrats intelligents utilisent donc différentes conventions de bytecode et ABI. Le résultat est que l'USDT TRC-20 et l'USDT ERC-20 ne sont pas interchangeables. L'envoi de TRC-20 à une adresse ERC-20 (ou vice versa) entraîne généralement une perte de fonds. Ce type de confusion entre chaînes est l’une des façons les plus courantes par lesquelles les utilisateurs perdent de l’argent en crypto.
Sécurité : l'exploit d'approbation et pourquoi vous devriez révoquer les anciennes approbations
Le modèle d'approbation est l'une des fonctionnalités les plus puissantes de l'ERC-20 et également son plus grand point faible en matière de sécurité. Chaque fois que vous échangez un DEX, déposez dans un protocole de prêt ou interagissez avec un contrat intelligent DeFi, vous accordez à ce contrat l'autorisation de déplacer vos jetons. Ces approbations persistent indéfiniment, sauf si vous les révoquez explicitement. De nombreux utilisateurs ont oublié des centaines d’approbations provenant de protocoles qu’ils utilisaient il y a des années.

La plupart des protocoles DeFi demandent des approbations pour le montant maximum possible (2^256 moins 1) afin d'économiser du gaz sur les opérations futures. Si le contrat de protocole est ensuite exploité, piraté ou contient une vulnérabilité, un attaquant peut drainer chaque jeton de ce type de chaque portefeuille qui l'a déjà approuvé. Cela s'est produit à plusieurs reprises. Toujours périodiquement révoquer les anciennes approbations en utilisant Revoke.cash ou le vérificateur d'approbation de jeton d'Etherscan.
La bonne nouvelle est que la révocation des approbations est simple. Des outils tels que Revoke.cash afficheront chaque approbation active sur votre portefeuille sur toutes les principales chaînes EVM, et un clic enverra une transaction qui remettra l'allocation à zéro. La mauvaise nouvelle est que la révocation coûte du gaz, de sorte que les utilisateurs ont tendance à l’ignorer jusqu’à ce qu’il soit trop tard. Une habitude raisonnable consiste à revoir les approbations tous les quelques mois, en particulier après avoir utilisé des protocoles nouveaux ou expérimentaux, et à ne jamais approuver des montants illimités sur un protocole auquel vous ne faites pas entièrement confiance.
Une deuxième classe de risques liés à l'approbation concerne les attaques de signature de phishing. L'extension de permis EIP-2612 (que nous aborderons dans la section suivante) permet aux utilisateurs d'approuver les jetons avec une signature hors chaîne au lieu d'une transaction en chaîne. Les sites de phishing incitent les utilisateurs à signer des permis qui semblent inoffensifs mais qui accordent en réalité à l'attaquant la permission de vider leurs jetons. Lisez toujours ce que vous signez et traitez toute invite de « réclamation gratuite » ou de « vérification du portefeuille » avec une extrême suspicion.
L'évolution : ERC-777, ERC-1363, EIP-2612, ERC-4626
ERC-20 est intentionnellement minimal et, au fil des années, la communauté a développé des extensions pour répondre à ses limites. Aucun d’entre eux n’a complètement remplacé l’ERC-20, mais ils constituent tous un contexte important pour comprendre le paysage moderne des jetons Ethereum.
ERC-777 a été proposé en 2017 en tant que norme de jeton fongible plus avancée. Il a introduit des crochets qui permettent aux contrats de réagir aux jetons entrants, éliminant ainsi le besoin de danse d'approbation et de transfert en deux étapes. Son design était élégant mais finalement controversé. Les crochets de réentrée se sont révélés dangereux lorsqu'ils sont combinés avec des contrats DeFi naïfs, et un exploit notable d'Uniswap V1 impliquant un jeton ERC-777 a conduit la plupart des principaux protocoles à interdire explicitement les jetons 777. En conséquence, l’adoption n’a jamais décollé.
ERC-1363 est une extension de jeton payant qui ajoute transferAndCall fonctionne, permettant à une seule transaction de transférer des jetons et de déclencher une action sur le contrat de réception. Il est entièrement rétrocompatible avec ERC-20, car il ajoute simplement de nouvelles fonctions par-dessus. L'adoption a été modeste mais se développe dans les protocoles plus récents.
EIP-2612 a introduit la fonction d'autorisation, un moyen d'accorder des approbations via des signatures hors chaîne au lieu de transactions en chaîne. Cela signifie qu'un utilisateur peut signer un message dans son portefeuille et qu'un tiers peut soumettre cette signature au contrat de jeton avec le transfert réel, le tout en une seule transaction. L'utilisateur ne paie aucun gaz pour l'approbation. Le permis est largement pris en charge dans les jetons les plus récents, notamment DAI, USDC et bien d'autres. C'est pratique mais introduit également le vecteur de phishing mentionné ci-dessus, car les utilisateurs ne voient pas d'approbation claire de la transaction dans leur portefeuille.
ERC-4626 nous avons déjà parlé ci-dessus. Il standardise la manière dont les coffres-forts à rendement émettent des actions, permettant de connecter n'importe quel coffre-fort à n'importe quel protocole DeFi. Les fonctions de dépôt, de retrait, de création, de rachat, totalAssets, convertToShares et convertToAssets forment une interface unifiée que n'importe quel coffre-fort peut implémenter.
Création de votre propre jeton ERC-20
La création d'un jeton ERC-20 est l'un des moyens les plus simples d'expédier un contrat intelligent. La bibliothèque de contrats OpenZeppelin fournit des implémentations testées et auditées de la norme que vous pouvez étendre en quelques lignes seulement de Solidity. Presque tous les jetons majeurs sur Ethereum utilisent directement OpenZeppelin ou en dérivent.
Un jeton ERC-20 minimal utilisant OpenZeppelin comprend environ vingt lignes de code. Vous héritez du contrat de base ERC20, donnez à votre jeton un nom et un symbole dans le constructeur, effectuez éventuellement une première fourniture au déployeur, et vous avez terminé. Les extensions facultatives incluent ERC20Burnable pour permettre aux utilisateurs de graver leurs propres jetons, ERC20Capped pour imposer une offre maximale, ERC20Pausable pour les pauses d'urgence et ERC20Votes pour le suivi du pouvoir de vote activé par la gouvernance avec des points de contrôle.
Le workflow de déploiement utilise généralement Foundry, Hardhat ou Remix. Foundry est devenu le framework préféré des développeurs sérieux en raison de sa rapidité, mais Remix reste le point d'entrée le plus simple pour les débutants puisqu'il fonctionne entièrement dans le navigateur. Après avoir rédigé et compilé votre contrat, vous le déployez sur votre réseau cible, puis vérifiez le code source sur Etherscan afin que tout le monde puisse voir et lire votre code. La vérification est essentielle pour instaurer la confiance, en particulier pour les jetons qui espèrent attirer des liquidités et des cotations.
Cependant, le déploiement d'un token n'est que la première étape. Un jeton réussi nécessite de la liquidité sur un DEX, une communauté, un récit clair et des pratiques de distribution idéalement honnêtes. Des dizaines de milliers de jetons sont déployés chaque mois, dont la grande majorité ne parvient pas à attirer un volume d'échanges significatif. Des tokenomics convaincants, des acquisitions transparentes, des liquidités bloquées et une renonciation à la propriété sont des signaux courants que les équipes légitimes utilisent pour se différencier des tiraillements et des escroqueries.
Questions fréquemment posées
Que signifie ERC-20 ?
ERC-20 signifie Ethereum Request for Comments, numéro 20. Il fait référence à la vingtième proposition soumise dans le cadre du processus Ethereum Request for Comments, qui est la manière dont les normes techniques sont formellement proposées et discutées pour le protocole Ethereum. La norme a finalement été formalisée sous le nom d'Ethereum Improvement Proposal 20, ou EIP-20, mais le nom ERC-20 est resté le terme familier dans l'usage quotidien.
L'USDC est-il un jeton ERC-20 ?
Oui, l'USDC sur le réseau principal Ethereum est un jeton ERC-20. Son adresse contractuelle est 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 et il est entièrement conforme à l'ERC-20 depuis son lancement en 2018. L'USDC existe également sur de nombreuses autres chaînes (Solana, Stellar et diverses chaînes EVM), mais ces versions sont des contrats distincts utilisant la norme de jeton locale applicable. La version Ethereum est la version canonique ERC-20 USDC et représente une part importante de l’offre totale de l’USDC.
Quelle est la différence entre ERC-20 et BEP-20 ?
BEP-20 est la norme de jeton sur BNB Smart Chain. Sur le plan fonctionnel, il est essentiellement identique à l'ERC-20, utilisant les mêmes signatures de fonction, les mêmes événements et le même modèle d'approbation. La différence réside dans la blockchain sous-jacente. ERC-20 vit sur Ethereum et bénéficie de la sécurité et de l'écosystème d'Ethereum, tandis que BEP-20 vit sur BNB Smart Chain et bénéficie de frais inférieurs et de blocs plus rapides. Les jetons comme l'USDT existent en versions ERC-20 et BEP-20, et ils ne sont pas interchangeables sans pontage.
Puis-je créer mon propre jeton ERC-20 ?
Oui, n'importe qui peut créer un jeton ERC-20 en seulement quelques lignes de Solidity en utilisant des bibliothèques comme OpenZeppelin. Le déploiement coûte du gaz (généralement entre vingt et quelques centaines de dollars sur le réseau principal Ethereum, en fonction de la complexité du contrat et des conditions du réseau). Cependant, créer un jeton est la partie la plus facile. Construire une véritable utilité, attirer les détenteurs et fournir des liquidités sur un DEX sont les défis les plus difficiles qui déterminent si un jeton a une valeur au-delà de son déploiement.
Quel est le coût du gaz d'un transfert ERC-20 ?
Un transfert ERC-20 typique sur le réseau principal Ethereum coûte environ 65 000 unités de gaz lorsque le destinataire possède déjà un solde du jeton, ou environ 50 000 unités de gaz lorsque le destinataire est une nouvelle adresse (un coût légèrement plus élevé est compensé par d'autres dynamiques). Avec un prix du gaz de 20 gwei, cela équivaut à environ 0,0013 ETH par transfert. Le coût réel en dollars dépend entièrement du prix actuel de l’ETH et de la congestion du réseau. Les cumuls de couche 2 comme Arbitrum et Base réduisent ces coûts de dix à cent fois.
Pourquoi les jetons ERC-20 utilisent-ils 18 décimales ?
Dix-huit décimales sont la convention car l'ETH lui-même est libellé en wei, qui est un quintillionième (10 puissance moins 18) d'un éther. L'alignement des jetons avec la même précision évite toute confusion lors des calculs entre ETH et les jetons dans les contrats intelligents. Cependant, l'ERC-20 n'applique pas 18 décimales. Les pièces stables comme l'USDC et l'USDT utilisent 6 décimales car elles sont indexées sur le dollar et n'ont pas besoin d'une précision extrême. WBTC utilise 8 décimales pour refléter le système satoshi de Bitcoin. Vérifiez toujours les décimales avant de faire des calculs sur les soldes bruts de jetons.
Conclusion
ERC-20 est le héros méconnu de toute l’économie crypto. Il s’agit d’une spécification d’une simplicité trompeuse, avec seulement six fonctions et deux événements requis, mais elle a permis l’émission de milliers de milliards de dollars de jetons, l’ensemble de l’écosystème DeFi et un niveau d’interopérabilité dont la finance traditionnelle ne peut que rêver. Chaque stablecoin, chaque jeton de gouvernance, chaque pièce meme et chaque coffre-fort porteur de rendement sur Ethereum et sur chaque chaîne compatible EVM parle en fin de compte le même langage défini par EIP-20 en 2015.
Comprendre ERC-20 au niveau que nous avons abordé dans ce guide vous donne un réel avantage. Vous pouvez désormais lire un contrat de jeton sur Etherscan, évaluer sa surface d'approbation, identifier les signaux d'alarme, importer des jetons personnalisés dans MetaMask sans commettre d'erreurs et expliquer pourquoi les protocoles DeFi se comportent comme ils le font. Vous comprenez également le point faible le plus dangereux de la norme, le modèle d'approbation et de transfert, suffisamment bien pour le gérer en toute sécurité avec des révocations périodiques et des habitudes de signature prudentes.
La norme continuera d'évoluer. Les signatures de permis, l'abstraction de compte et les nouvelles extensions comme ERC-4626 remodèlent la façon dont les utilisateurs interagissent avec les jetons. Mais l’interface principale de l’ERC-20 est si profondément intégrée dans chaque portefeuille, échange, indexeur et protocole qu’elle constitue en fait une infrastructure permanente. Si vous n’apprenez qu’une seule norme technique en matière de cryptographie, apprenez celle-ci. Presque toutes les interactions que vous aurez sur la chaîne y passent.