Qu`est-ce que l`ERC-20 ? La norme de jeton qui régit l`économie d`Ethereum.
Je possède des USDT dans mon portefeuille MetaMask. J'ai aussi des LINK, un peu d'UNI suite à un échange la semaine dernière, et un token « dog » qu'on m'a offert par airdrop et que j'oublie systématiquement de vendre. Ces tokens ont des fonctions complètement différentes. Tether est un stablecoin adossé à des liquidités et à des bons du Trésor. Chainlink gère des réseaux d'oracles qui alimentent les contrats intelligents avec des données du monde réel. Uniswap administre le plus grand DEX sur Ethereum. Le token « dog », lui, ne sert à rien. Pourtant, mon portefeuille les affiche tous dans la même liste, me permet de les envoyer avec le même bouton, et tous les protocoles DeFi que j'utilise les acceptent sans configuration particulière.
Cela fonctionne uniquement parce que les quatre suivent les mêmes règles. Ce sont des jetons ERC-20. Même interface, mêmes fonctions, même fonctionnement. Et comprendre ce que signifie réellement ERC-20 est la première étape pour comprendre le fonctionnement de l'économie d'Ethereum.
Fabian Vogelsteller a rédigé la proposition en novembre 2015. Il lui a donné un nom peu engageant : Ethereum Request for Comment numéro 20. Vitalik Buterin a co-écrit la version finale. En 2017, elle a été officiellement adoptée, et l’explosion des ICO a suivi. Des milliers de projets ont lancé des tokens du jour au lendemain grâce à la quasi-gratuité du standard ERC-20. Un demi-million de contrats de tokens plus tard, ce standard reste la référence. Voici son fonctionnement et pourquoi il est important de s’y intéresser, même si vous n’envisagez jamais d’écrire une seule ligne de Solidity.
Fonctionnement de la norme ERC-20
Le nom est plus technique qu'il n'y paraît. ERC signifie Ethereum Request for Comment. 20 correspond au numéro de la proposition. C'est tout. Un développeur nommé Fabian a déclaré : « Voici les règles que chaque jeton devrait suivre », et a attribué le numéro 20 à sa proposition car c'était le prochain numéro disponible. Il ne s'agit pas de vingt règles, ni de vingt jetons. C'est simplement la proposition n° 20 dans la file d'attente des améliorations d'Ethereum.
Voici ce que disent ces règles : pour créer un jeton fongible sur Ethereum, votre contrat intelligent doit inclure ces fonctions spécifiques. « Fongible » signifie que chaque unité de jeton est identique. Un USDC est identique à tous les autres. Peu importe le jeton UNI que vous détenez, ils sont tous interchangeables. Les NFT fonctionnent à l'inverse : chaque NFT est unique. Norme différente. Article différent.
La norme ERC-20 définit six fonctions et deux événements. Chaque contrat de jeton conforme, de l'USDT et sa capitalisation boursière de 140 milliards de dollars au memecoin lancé il y a trente secondes, implémente ces mêmes appels :
| Fonction | Version en anglais simple |
|---|---|
| totalSupply() | « Combien de ces jetons existent dans le monde ? » |
| soldeDe(adresse) | « Combien de portefeuilles contient-il ? » |
| transfert(à, montant) | « Envoyer X jetons de mon portefeuille à cette autre personne » |
| approuver(dépensier, montant) | « Autoriser ce protocole DeFi à dépenser jusqu'à X de mes jetons » |
| transférerDe(de, à, montant) | « J'ai l'autorisation de transférer des jetons du portefeuille A vers le portefeuille B » |
| allocation (propriétaire, dépensier) | « Quelle somme cette personne peut-elle encore dépenser sur son argent de poche ? » |
Deux événements sont enregistrés sur la blockchain à chaque transaction. Un événement de transfert est déclenché à chaque déplacement de jetons entre portefeuilles. Un événement d'approbation est déclenché lorsqu'une personne autorise une dépense. Les explorateurs de blockchain comme Etherscan utilisent ces événements pour construire l'historique des transactions que vous consultez lorsque vous recherchez un jeton.
Trois champs optionnels ajoutent de la personnalité : le nom donne au jeton une étiquette lisible par l’homme (« Chainlink »), le symbole est le symbole boursier (« LINK »), et les décimales définissent la granularité avec laquelle le jeton peut être divisé (presque tout le monde utilise 18 pour correspondre à l’ETH, bien que l’USDT utilise 6 et que cela ait causé plus de bugs que quiconque ne veut l’admettre).
Six fonctions. Deux événements. Trois champs optionnels. Voilà, en résumé, toute la spécification. Je pourrais l'imprimer sur une serviette en papier, et il resterait même de la place pour les taches de café. Et pourtant, cette spécification, aussi courte qu'une serviette, fait tourner une économie de jetons valant des centaines de milliards de dollars. MetaMask utilise ces fonctions pour afficher votre solde. Uniswap les appelle pour effectuer des échanges. Aave s'en sert pour gérer les prêts. Tous les protocoles DeFi que vous avez utilisés jusqu'à présent communiquent avec les jetons via cette même interface. La simplicité est essentielle.

Pourquoi ERC-20 a tout changé dans Ethereum
J'ai travaillé dans le secteur des cryptomonnaies en 2016, avant l'existence de cette norme. C'était le chaos. Chaque token était un projet sur mesure. Quelqu'un créait son propre contrat de token avec ses propres noms de fonctions, sa propre logique de transfert et sa propre méthode de consultation des soldes. MetaMask ignorait tout de la moitié de ces tokens. Les plateformes d'échange mettaient des mois à intégrer un nouveau token, car chacun nécessitait un code d'intégration personnalisé. Créer un DEX ? N'y pensez même pas. Il aurait fallu écrire des gestionnaires pour chaque implémentation de token.
L'ERC-20 a mis fin à cette situation chaotique. Dès l'adoption de la norme, un nouveau jeton est apparu dans MetaMask instantanément, sans même avoir à coller l'adresse du contrat. Uniswap a pu le lister sans aucune autorisation. Aave a pu l'accepter comme garantie sans écrire une seule ligne de code personnalisé. Une seule norme, une compatibilité universelle.
La vague d'ICO de 2017 en a été la preuve. Un étudiant, depuis sa chambre, pouvait lancer un token ERC-20 après le déjeuner, créer un site web avec un livre blanc et commencer à collecter des ETH auprès d'investisseurs avant minuit. J'ai vu ça en direct. Des projets ont levé des milliards. Certains étaient légitimes et proposaient de vrais produits. La plupart étaient sans intérêt. Quelques-uns étaient de pures arnaques. Mais la technologie sous-jacente ? Elle fonctionnait parfaitement. Le standard a rempli sa fonction à la perfection : simplifier au maximum la création et l'utilisation des tokens.
L'ampleur du phénomène est aujourd'hui stupéfiante. Plus de 500 000 contrats de jetons ERC-20 sont déployés sur le réseau Ethereum. La capitalisation boursière totale des jetons ERC-20 se chiffre en centaines de milliards de dollars. L'USDT à lui seul a dépassé les 140 milliards de dollars. Si l'on ajoute l'USDC, le LINK, l'UNI, le DAI, le SHIB, le MKR et les autres, on constate que la majeure partie de la valeur économique d'Ethereum réside dans les contrats ERC-20.
| Principaux jetons ERC-20 | Catégorie | Capitalisation boursière (approx.) |
|---|---|---|
| USDT (Tether) | stablecoin | Plus de 140 milliards de dollars |
| USDC (Cercle) | stablecoin | Plus de 60 milliards de dollars |
| LIEN (Chainlink) | Réseau Oracle | 8 milliards de dollars et plus |
| UNI (Uniswap) | Gouvernance des DEX | Plus de 4 milliards de dollars |
| DAI (Fabricant) | stablecoin décentralisé | Plus de 5 milliards de dollars |
| AAVE | Protocole de prêt | Plus de 2 milliards de dollars |
| SHIB (Shiba Inu) | Memecoin | 6 milliards de dollars et plus |
| MKR (Fabricant) | Gouvernance | Plus de 1,5 milliard de dollars |
Créer un jeton ERC-20 : plus facile que vous ne le pensez
J'ai déjà vu quelqu'un déployer un jeton ERC-20 en direct sur YouTube. Ça a duré 14 minutes, temps compris les explications données au chat.
Il ne s'agit pas de vanter l'intelligence du streamer, mais plutôt de souligner la simplicité d'utilisation d'OpenZeppelin. OpenZeppelin est une bibliothèque de code Solidity éprouvé et audité qui prend en charge toutes les opérations complexes. Vous choisissez le nom de votre jeton (« MyToken »), son symbole (« MTK »), le nombre de décimales (18, comme pour ETH) et votre offre initiale. La bibliothèque gère les six fonctions ERC-20, les événements et les contrôles de sécurité. Il vous suffit de copier le modèle, de modifier quatre variables, de déployer sur Ethereum, et votre jeton est opérationnel.
Les coûts de déploiement sont variables. Réseau peu sollicité ? Environ 20 à 50 $. Pic de congestion, comme lors du lancement d'un NFT ? 200 à 500 $. Déployez sur Arbitrum ou Base plutôt que sur le réseau principal Ethereum et le coût chute à quelques dollars. L'obstacle financier est quasiment inexistant.
Voici le revers de la médaille de cette accessibilité. La blockchain Ethereum ne vérifie pas la légitimité des contrats de tokens. Elle ne vérifie ni les équipes, ni le code, ni les modèles économiques. Si vous pouvez payer les frais de gaz, vous pouvez déployer un token. C'est pourquoi Etherscan recense des centaines de milliers de contrats de tokens, dont la plupart sont soit des projets expérimentaux abandonnés, soit des arnaques en cours. La norme ERC-20 garantit la compatibilité, mais absolument rien quant à la valeur du token.
ERC-20 comparé aux autres normes de jetons Ethereum
On me demande souvent : « L’ERC-20 est-il le seul standard de jetons ? » Non. Loin de là. Mais c’est le premier qui a fonctionné, et les suivants ont résolu les problèmes que l’ERC-20 laissait en suspens.
L'arrivée des jetons ERC-721 a donné naissance aux NFT. Alors que tous les jetons ERC-20 sont interchangeables (votre USDC est identique au mien), chaque jeton ERC-721 possède un identifiant unique. Le Bored Ape n° 4293 est un actif complètement différent du Bored Ape n° 7810. Les noms des fonctions sous-jacentes sont similaires, mais la logique s'applique aux jetons individuels et non à des montants génériques. On ne peut pas envoyer la moitié d'un Bored Ape : c'est tout ou rien.
Le format ERC-1155 a été créé par des développeurs de jeux vidéo lassés de déployer des contrats distincts pour chaque type d'objet. Un seul contrat gère les pièces d'or (fongibles, comme l'ERC-20), les épées en fer (semi-fongibles, 50 exemplaires identiques) et un casque légendaire unique (non fongible, exemplaire unique). Les transferts par lots permettent de réduire la consommation de gaz. Une seule transaction transfère 100 objets différents au lieu de 100 transactions distinctes.
BEP-20 est le nom donné par Binance Smart Chain à sa version. Mêmes fonctions, mêmes événements, blockchain différente. En gros, c'est du ERC-20 copié sur un réseau moins cher. Le standard SPL de Solana remplit la même fonction avec une architecture complètement différente, car Solana n'a pas été conçu pour être compatible avec Ethereum.
| Standard | Type de jeton | Fongible? | Cas d'utilisation | Réseau |
|---|---|---|---|---|
| ERC-20 | jeton fongible | Oui | Monnaies, gouvernance, services publics | Ethereum |
| ERC-721 | Jeton non fongible | Non (identifiants uniques) | NFT, art numérique, objets de collection | Ethereum |
| ERC-1155 | Jeton multiple | Les deux | Jeux, types d'actifs mixtes | Ethereum |
| BEP-20 | jeton fongible | Oui | Identique à ERC-20 | Chaîne BNB |
| SPL | Fongible + NFT | Les deux | Écosystème Solana | Solana |
Les tokens ERC-20 dans la DeFi : pourquoi ce standard est au cœur de la finance décentralisée
Sans les jetons ERC-20, la DeFi s'effondrerait du jour au lendemain. Pas seulement en difficulté, mais bel et bien effondrée. Chaque élément du système repose sur l'idée que les jetons utilisent le même langage.
Uniswap associe deux tokens ERC-20 dans un pool et vous permet de les échanger. Compatible avec USDC, SHIB et même ce memecoin lancé par votre ami à 2h du matin. La plateforme d'échange décentralisée (DEX) se fiche de la fonction du token. Seules les méthodes `transfer()` et `approve()` du contrat sont prises en compte. Ajoutez un pool de liquidités et les échanges commencent. Aucune demande de listing, aucune vérification de la plateforme, aucun délai d'attente.
Aave et Compound permettent de prêter des tokens ERC-20. Le protocole utilise la fonction `balanceOf()` pour consulter votre solde déposé et la fonction `transfer()` pour transférer des tokens. Il utilise également `approve()` et `transferFrom()` lors du remboursement des prêts. Un marché de prêts pour un token tout nouveau peut être opérationnel dès son lancement, car son interface est déjà définie.
Il y a ensuite le problème particulier d'ETH. ETH existait avant la norme ERC-20 et ne la respecte donc pas, ce qui nuit à la composabilité. La solution : WETH. Wrapped Ether est un wrapper ERC-20 autour d'ETH natif. Déposez 1 ETH et recevez 1 WETH, un jeton que les protocoles DeFi peuvent gérer sans problème. WBTC fait la même chose pour Bitcoin, en intégrant la valeur du BTC à l'écosystème Ethereum sous la forme d'un jeton ERC-20 adossé à 1:1 à des Bitcoins physiques détenus en dépôt.
Résultat concret : je peux créer dès aujourd’hui un protocole DeFi compatible avec tous les tokens ERC-20 existants, y compris ceux qui n’existent pas encore. Mon code n’a pas besoin de connaître spécifiquement l’USDT. Il n’a pas besoin d’être mis à jour lorsqu’un nouveau stablecoin sera lancé demain. L’interface gère tout. Cette modularité explique pourquoi Ethereum bénéficie d’une activité DeFi plus importante, d’une TVL plus élevée et d’un plus grand nombre d’outils de développement que toute autre blockchain. La norme ERC-20 constitue le socle sur lequel repose tout le reste.
Risques de sécurité et problèmes courants liés aux ERC-20
Permettez-moi de vous parler du bug d'approbation qui a coûté des millions aux utilisateurs de la DeFi et que presque personne ne comprend avant d'en être victime.
Lorsque vous échangez des tokens sur Uniswap ou effectuez un dépôt sur Aave, l'application décentralisée (dApp) vous demande votre autorisation pour dépenser vos tokens. La plupart des dApps accordent par défaut une autorisation illimitée. Cela semble anodin, jusqu'à ce que l'on comprenne ce que cela implique : ce contrat intelligent peut dépenser tous les tokens de ce type présents dans votre portefeuille, à tout moment et indéfiniment, jusqu'à ce que vous révoquiez explicitement cette autorisation. Si le contrat est piraté dans six mois, l'attaquant utilisera votre ancienne autorisation pour s'emparer de tokens auxquels vous aviez oublié avoir donné accès.
C'est déjà arrivé. Plus d'une fois. La solution est simple, mais fastidieuse : n'approuver que le montant exact nécessaire pour chaque transaction. Ou utiliser Revoke.cash pour supprimer les anciennes approbations oubliées. Je vérifie les miennes tous les deux ou trois mois. C'est toujours pire que prévu. La norme ERC-2612, plus récente, remplace les approbations sur la blockchain par des autorisations signées, ce qui réduit ce risque. Mais la plupart des dApps utilisent encore l'ancien système.
Chaque semaine, des personnes se font piéger par de faux jetons. Un escroc déploie un contrat ERC-20 appelé « Uniswap » ou « Chainlink » avec une adresse légèrement différente. Vous le recherchez sur une plateforme d'échange décentralisée (DEX), reconnaissez le nom et achetez le faux. Votre argent est directement transféré au portefeuille de l'escroc. La véritable adresse du contrat LINK est 0x514910771AF9Ca656af840dff83E8264EcF986CA. L'adresse du faux pourrait être 0x514910... et une autre adresse. Copiez toujours l'adresse depuis CoinGecko ou le site officiel du projet. Ne faites jamais de recherche uniquement par nom.
Il existe ensuite des tokens aux pièges bien dissimulés. En apparence, le contrat ressemble à un ERC-20 standard. En réalité, le déployeur a ajouté une fonction lui permettant de créer un nombre illimité de nouveaux tokens. Ou encore une taxe de vente prélevant 99 % de vos tokens lors d'une tentative d'échange. Ou une liste noire empêchant toute personne autre que le déployeur de vendre. La norme ERC-20 ne dit rien sur ce qu'un contrat ne peut pas faire. Elle spécifie uniquement les fonctions minimales. Tout le reste est à la discrétion du développeur. Les audits de tokens, DextScore et les contrats vérifiés sur Etherscan existent précisément en raison de ce décalage entre la simplicité de la norme et l'ingéniosité des escrocs.