Coins, tokens et standards (ERC-20, SPL, BRC-20…)
Coin ou token ? Comprenez ce qui distingue les deux, à quoi servent les standards ERC-20, SPL et BRC-20, et comment éviter les erreurs d'envoi.
L’essentiel
Coin et token : la différence de base
Dans le langage courant, on dit souvent « une crypto » pour tout. Pourtant, techniquement, il existe deux grandes familles d'actifs.
Le coin : la monnaie native d'une blockchain
Un coin (ou « actif natif ») est intégré au protocole même de la blockchain. Il sert en général à deux choses :
- payer les frais de transaction (on parle de « gas » sur Ethereum) ;
- rémunérer ceux qui sécurisent le réseau (mineurs sur Bitcoin, validateurs sur Ethereum ou Solana).
Ses règles d'émission sont écrites dans le code du réseau lui-même. Par exemple, la FAQ officielle de Bitcoin.org indique que le nombre de nouveaux bitcoins créés est automatiquement divisé par deux au fil du temps, jusqu'à un total de 21 millions de bitcoins. Modifier ces règles demanderait de changer le protocole, ce qui suppose un large consensus.
Exemples de coins : BTC (Bitcoin), ETH (Ethereum), SOL (Solana), XMR (Monero).
Le token : un actif hébergé par une blockchain
Un token (ou « jeton ») n'a pas sa propre blockchain. Il est créé sur une blockchain existante, le plus souvent grâce à un smart contract (un programme qui s'exécute sur la blockchain) ou à un programme partagé.
Ses règles (quantité totale, possibilité d'en créer de nouveaux, de geler des comptes, etc.) sont définies par son créateur, pas par le protocole de la blockchain. Et pour le déplacer, vous payez les frais dans le coin natif du réseau : envoyer un token sur Ethereum coûte de l'ETH, envoyer un token sur Solana coûte du SOL.
Exemples de tokens : les stablecoins comme l'USDC ou l'USDT, les tokens de gouvernance de protocoles DeFi, les memecoins (qui, malgré leur nom, sont presque toujours des tokens), les NFT.
| Coin | Token | |
|---|---|---|
| Blockchain propre | Oui | Non, il utilise celle d'un autre réseau |
| Règles d'émission | Fixées par le protocole | Fixées par le créateur du token |
| Paie les frais réseau | Oui | Non, on paie avec le coin natif |
Pourquoi des standards de tokens ?
Imaginez que chaque projet invente sa propre façon de dire « combien de tokens possède cette adresse » ou « envoie 10 tokens à cette personne ». Chaque wallet, chaque exchange, chaque application devrait écrire un code spécifique pour chaque token. Ce serait ingérable.
Un standard est un contrat commun : une liste de fonctions et de comportements que tout token doit respecter. Si un token suit le standard, n'importe quel wallet ou application compatible sait l'afficher, le transférer ou l'échanger sans adaptation particulière. C'est ce qui permet à un exchange décentralisé de lister des milliers de tokens différents.
ERC-20 : le standard des tokens sur Ethereum
D'où vient-il ?
L'ERC-20 est décrit dans une proposition d'amélioration d'Ethereum (EIP-20), rédigée par Fabian Vogelsteller et Vitalik Buterin et datée du 19 novembre 2015 sur le site officiel des EIP. ERC signifie « Ethereum Request for Comments ». Le site ethereum.org le présente comme une interface standard pour les tokens fongibles, c'est-à-dire interchangeables entre eux : un USDC vaut exactement un autre USDC, comme un billet de 10 euros en vaut un autre.
Ce que le standard impose
Un token ERC-20 doit proposer six fonctions obligatoires, dont :
totalSupply: la quantité totale de tokens ;balanceOf: le solde d'une adresse ;transfer: envoyer des tokens ;approveetallowance: autoriser une autre adresse (par exemple un smart contract de DEX) à dépenser vos tokens, et consulter cette autorisation ;transferFrom: la fonction utilisée par cette adresse autorisée pour déplacer vos tokens.
Trois fonctions sont optionnelles : name (le nom), symbol (le ticker, comme « USDC ») et decimals (le nombre de décimales). Selon la spécification, une valeur de decimals égale à 8 signifie qu'il faut diviser le montant brut par 100 000 000 pour obtenir le montant affiché.
Le mécanisme approve mérite votre attention : quand vous utilisez une application DeFi, vous lui donnez souvent une autorisation de dépense. Une autorisation trop large accordée à un contrat malveillant peut permettre de vider ce token de votre wallet.
Les autres standards Ethereum
ethereum.org liste d'autres standards utiles à connaître :
- ERC-721 : les tokens non fongibles (NFT), chacun unique ;
- ERC-1155 : un standard qui peut gérer à la fois des actifs fongibles et non fongibles ;
- ERC-4626 : un standard pour les « vaults » (coffres) qui génèrent du rendement ;
- ERC-777 : une évolution de l'ERC-20, que la documentation marque comme non recommandée.
Point important : les réseaux compatibles EVM (la machine virtuelle d'Ethereum), comme la plupart des layer 2 et plusieurs autres blockchains, utilisent les mêmes standards. Un token « ERC-20 » peut donc exister sur Ethereum, sur un layer 2 ou sur une autre chaîne EVM, avec une adresse de contrat différente sur chacune.
SPL : les tokens sur Solana
Solana fonctionne différemment. Au lieu que chaque token déploie son propre smart contract, tous les tokens passent par un programme commun : le Token Program d'origine, ou sa version étendue, Token-2022 (aussi appelée Token Extensions Program), qui reprend toutes les fonctionnalités de base et en ajoute via des « extensions ». On parle de tokens SPL (Solana Program Library).
La documentation officielle de Solana distingue plusieurs éléments :
- Le mint account : il identifie de façon unique un token. Il stocke l'offre totale, le nombre de décimales et les « autorités ».
- La mint authority : l'adresse autorisée à créer de nouveaux tokens.
- La freeze authority : l'adresse capable de geler des comptes, ce qui empêche les transferts.
- Le token account : un compte qui détient les tokens d'un seul type (un seul mint) pour un propriétaire.
- L'associated token account (ATA) : le token account « par défaut » d'un wallet pour un token donné, dont l'adresse est dérivée de l'adresse du wallet et de celle du mint.
Concrètement, votre wallet Solana possède un compte distinct pour chaque token que vous détenez. Les wallets gèrent cela automatiquement, mais c'est pour cela que recevoir un nouveau token peut nécessiter de créer un compte, ce qui immobilise une petite quantité de SOL.
Pour un utilisateur, vérifier si la mint authority et la freeze authority sont actives est un réflexe utile : un token dont le créateur peut encore imprimer des unités ou geler votre compte présente un risque supplémentaire. Cela ne signifie pas forcément une arnaque (un émetteur centralisé, par exemple de stablecoin, peut avoir ses propres raisons de les garder), mais il faut le savoir.
BRC-20 : des tokens sur Bitcoin
Bitcoin n'a pas été conçu pour héberger des smart contracts. Le BRC-20 est donc une approche très différente.
Comment ça marche
Selon Chainlink, le BRC-20 a été lancé le 9 mars 2023 par un développeur anonyme connu sous le pseudonyme « domo ». Il s'appuie sur les Ordinals, une théorie qui numérote chaque satoshi (la plus petite unité du bitcoin) et permet d'y « inscrire » des données.
Un token BRC-20 repose sur des inscriptions contenant un petit texte au format JSON. La documentation de la Layer1 Foundation décrit trois opérations :
- deploy : créer un token, avec son ticker (
tick), son offre maximale (max) et éventuellement une limite par mint (lim) ; - mint : émettre des tokens ;
- transfer : envoyer des tokens, en deux étapes (inscrire, puis envoyer).
Les limites à connaître
- Pas de smart contract : Bitcoin ne calcule pas lui-même les soldes BRC-20.
- Dépendance aux indexeurs : les soldes sont reconstitués hors chaîne par des logiciels appelés indexeurs, qui lisent toutes les inscriptions et appliquent les règles. Chainlink précise qu'un nœud Bitcoin complet ne suffit pas : il faut faire tourner ou faire confiance à un indexeur.
- Premier arrivé, premier servi : pour un ticker donné, seul le premier déploiement compte.
- Un statut expérimental : son créateur l'a lui-même présenté comme un standard expérimental.
Pour vous, cela signifie qu'il faut utiliser un wallet qui gère explicitement les Ordinals et le BRC-20. Un wallet Bitcoin classique peut dépenser par erreur un satoshi portant une inscription, comme s'il s'agissait d'un simple bitcoin.
Exemple concret : l'USDC sur plusieurs réseaux
Prenons un stablecoin comme l'USDC, émis sur plusieurs blockchains.
- Sur Ethereum et les réseaux EVM, c'est un token ERC-20, avec une adresse de contrat propre à chaque réseau.
- Sur Solana, c'est un token SPL, identifié par l'adresse de son mint.
Vous voulez retirer 100 USDC d'un exchange vers votre wallet. L'exchange vous demande de choisir le réseau. Si votre wallet est un wallet Solana et que vous choisissez Ethereum, vos fonds partiront vers une adresse au format Ethereum, sur un autre réseau : au mieux, vous devrez faire des manipulations complexes pour les récupérer ; au pire, ils seront perdus. Le même nom « USDC » recouvre donc plusieurs versions techniques distinctes. Le guide sur l'envoi de cryptos et le choix du réseau détaille cette étape.
Les erreurs à éviter
- Se fier uniquement au nom ou au ticker. N'importe qui peut créer un token appelé « USDC » ou reprenant le nom d'un projet connu. Seule l'adresse du contrat (ou du mint) identifie un token. Vérifiez-la sur le site officiel du projet ou sur un agrégateur reconnu.
- Choisir le mauvais réseau lors d'un envoi. Le réseau de départ et celui d'arrivée doivent correspondre.
- Oublier le coin natif pour les frais. Détenir des tokens sur Ethereum sans ETH, ou sur Solana sans SOL, vous empêche de les déplacer.
- Accorder des autorisations illimitées sans réfléchir. Sur les réseaux EVM, révoquez les autorisations (
approve) dont vous n'avez plus besoin. - Ignorer les pouvoirs du créateur. Une mint authority active ou une fonction de gel doit être prise en compte dans votre évaluation du risque.
- Utiliser un wallet non compatible BRC-20. Vous risquez de perdre vos inscriptions en les dépensant comme de simples frais.
À retenir
- Un coin est l'actif natif d'une blockchain et sert à payer ses frais ; un token est créé sur une blockchain existante.
- Les standards (ERC-20, SPL, BRC-20) permettent aux wallets et aux applications de gérer tous les tokens de la même façon.
- L'ERC-20 fonctionne par smart contracts ; les tokens SPL passent par un programme commun de Solana ; le BRC-20 repose sur des inscriptions Ordinals et des indexeurs hors chaîne.
- Un même actif, comme l'USDC, peut exister sur plusieurs réseaux : choisissez toujours le bon réseau lors d'un envoi.
- L'adresse du contrat ou du mint est la seule vraie carte d'identité d'un token, pas son nom.