
L’ERC-777 est un standard de jeton sur Ethereum qui définit les règles de transfert, de réception et d’autorisation des jetons. Il repose sur des smart contracts afin d’assurer un traitement homogène des jetons par les portefeuilles, DApps et plateformes d’échange.
Un « standard de jeton » fonctionne comme un code de la route : chaque application est un véhicule différent, mais tant qu’elles respectent les mêmes règles, elles circulent sans friction sur la même blockchain. L’ERC-777 conserve les méthodes classiques de transfert, tout en introduisant des interfaces d’interaction plus flexibles.
L’ERC-777 a été conçu pour corriger certaines limites des standards précédents : certaines adresses de contrat ne pouvaient pas recevoir de jetons, ce qui rendait impossible la récupération après un transfert accidentel. De plus, les applications souhaitaient être automatiquement notifiées à la réception de fonds afin de déclencher des processus supplémentaires, fonctionnalité absente du standard ERC-20 classique.
Avec l’ERC-20, les transferts de jetons sont en quelque sorte des « livraisons silencieuses » : le destinataire n’est pas informé automatiquement et les contrats destinataires ne peuvent pas indiquer s’ils peuvent recevoir les jetons en toute sécurité. L’ERC-777 vise à améliorer la sécurité et la programmabilité.
L’ERC-777 s’appuie sur deux mécanismes principaux : les « callbacks » (rappels) et les « opérateurs ». Les callbacks jouent le rôle de notifications de livraison ; les opérateurs sont des agents autorisés à agir pour votre compte. Ces deux mécanismes sont standardisés via des interfaces de contrat.
Étape 1 : L’expéditeur peut déclencher un callback avant l’envoi. Si un « send callback » est enregistré, le contrat notifie ce callback avant de débiter les jetons, ce qui permet d’effectuer des contrôles comme des listes blanches ou des limites de transfert.
Étape 2 : Le contrat met à jour les soldes. Après validation, le contrat de jeton débite le solde de l’expéditeur, crédite celui du destinataire et journalise l’événement pour permettre le suivi par les explorateurs de blockchain et les dApps.
Étape 3 : Le destinataire peut déclencher un callback de réception. Si le destinataire est un contrat déclarant la prise en charge de l’interface de réception, il est notifié à la réception des fonds, ce qui permet une comptabilité automatique, l’émission de reçus ou le rejet de transferts suspects.
Un « opérateur » est un tiers autorisé par un compte à envoyer des jetons en son nom — idéal pour la conservation, les paiements groupés ou les processus d’entreprise. La découverte des callbacks et des opérateurs repose sur un « contrat registre » — ERC-1820 — qui sert de carnet d’adresses pour les interfaces implémentées par chaque adresse.
La principale différence concerne les modes d’interaction. L’ERC-20 est plus simple et s’apparente à un « dépôt à l’aveugle » : le destinataire reste passif. L’ERC-777 introduit des callbacks de réception, permettant aux destinataires d’être notifiés et de choisir d’accepter ou non les jetons, ce qui réduit les risques de transferts erronés et de fonds bloqués.
Autre différence majeure : les « opérateurs ». L’ERC-20 utilise un modèle en deux étapes approve→transferFrom pour les transferts délégués, tandis que l’ERC-777 intègre nativement la gestion des opérateurs, simplifiant les opérations réalisées par des dépositaires ou des processeurs de lots.
Pour assurer la compatibilité, de nombreuses implémentations ERC-777 proposent aussi les fonctions ERC-20 les plus utilisées afin de prendre en charge les portefeuilles existants et les protocoles DeFi. Cependant, si vous comptez uniquement sur les callbacks ERC-777, l’intégration avec des protocoles existants peut nécessiter des adaptations.
Dans les portefeuilles, les transferts de jetons ERC-777 se déroulent de façon similaire à ceux des autres jetons. La différence principale : certaines adresses de contrat destinataires sont automatiquement vérifiées : si elles ne déclarent pas de prise en charge pour la réception de jetons, le transfert peut être rejeté d’emblée, évitant ainsi la perte de fonds dans des « trous noirs ».
Étape 1 : Vérifiez la compatibilité du portefeuille ou de l’application. Consultez la documentation du contrat de jeton ou les détails de l’actif dans votre portefeuille pour vérifier la prise en charge de l’interface ERC-777.
Étape 2 : Effectuez un test avec un petit montant. Envoyez d’abord une petite transaction pour vous assurer que l’adresse cible peut recevoir les jetons ou les rejette clairement : cela évite les erreurs coûteuses.
Étape 3 : Passez à des transferts plus importants. Pour les plateformes d’échange ou adresses de contrat, utilisez les canaux de dépôt désignés dans la mesure du possible.
Sur les plateformes de trading comme Gate, les pages de dépôt précisent les exigences réseau et contrat. Si un jeton est ERC-777 mais que la plateforme ne propose que des dépôts ERC-20, suivez les instructions : effectuez de petits dépôts tests et confirmez la réception avant de transférer des sommes plus importantes.
Dans la DeFi, les callbacks de réception de l’ERC-777 permettent des flux « process-on-receipt » tels que la comptabilité automatique ou l’émission de points ou certificats. Dans les DApps, ces fonctionnalités évitent les transferts erronés, déclenchent la logique métier à la réception ou automatisent la déduction de frais.
Par exemple, un contrat peut vérifier le statut d’une commande et les signatures dans tokensReceived, puis exécuter automatiquement la commande ou accorder des droits à la réception ; ou effectuer un contrôle de risque dans tokensToSend en bloquant les retraits vers des adresses suspectes. L’intégration de la logique métier dans les callbacks rationalise les workflows et réduit le nombre d’étapes de transaction.
En 2025, la plupart des grands protocoles de prêt et agrégateurs privilégient encore l’ERC-20. Cependant, certains portefeuilles et contrats prennent désormais en charge les callbacks et opérateurs ERC-777. Les nouvelles applications exploitant ces fonctionnalités peuvent réduire les confirmations manuelles et les étapes utilisateur.
Si les callbacks améliorent la programmabilité, ils introduisent aussi des risques de « réentrance ». La réentrance survient lorsqu’un appel externe est déclenché lors d’un callback de transfert de jeton, ce qui peut perturber les soldes si le contrat cible n’est pas suffisamment protégé.
Pour la compatibilité, certains anciens protocoles ne reconnaissent que le processus d’approbation et de transfert ERC-20, et ne prennent pas en compte les callbacks ou les opérateurs ERC-777 ; certaines adresses de contrat n’ont pas enregistré d’interface de réception dans ERC-1820, ce qui entraîne des transferts rejetés ou nécessite des solutions de repli.
Les utilisateurs devraient toujours commencer par de petites transactions. Les développeurs doivent intégrer des protections contre la réentrance dans les fonctions critiques et valider la compatibilité sur l’ensemble des portefeuilles, plateformes de trading et contrats de routage.
Si votre objectif est une adoption large dans la DeFi et sur les plateformes d’échange sans besoins spécifiques de callbacks ou d’opérateurs, il est préférable de s’appuyer sur l’écosystème éprouvé de l’ERC-20.
Si votre DApp exige l’exécution immédiate de logique métier à la réception, une gestion fine des risques ou des opérations déléguées en masse, l’ERC-777 peut fluidifier les transactions et limiter les pertes dues à des transferts erronés — mais il nécessite des tests et adaptations plus poussés.
Une approche pragmatique consiste à adopter une « stratégie hybride » : implémentez les fonctions ERC-20 courantes dans votre contrat ERC-777, documentez clairement les modalités d’utilisation et proposez des alternatives qui ne dépendent pas des callbacks pour les flux critiques.
Étape 1 : Intégrez correctement avec ERC-1820. Après déploiement, enregistrez les implémenteurs dans le registre 1820 pour permettre la découverte des interfaces tokensSender et tokensRecipient.
Étape 2 : Ajoutez une protection contre la réentrance. Utilisez des gardes de réentrance ou le schéma Checks-Effects-Interactions dans les fonctions de callback susceptibles de déclencher des appels externes.
Étape 3 : Proposez des interfaces doubles. En plus des méthodes ERC-777, conservez les fonctions ERC-20 classiques telles que transfer et approve pour une compatibilité étendue.
Étape 4 : Gérez explicitement les destinataires contrats. Pour les adresses de contrat sans interface de réception, rejetez les transferts ou proposez une solution de repli sécurisée pour éviter le blocage des fonds.
Étape 5 : Testez dans tout l’écosystème. Réalisez des tests de bout en bout avec les portefeuilles, routeurs et plateformes de trading les plus utilisés : transferts tests, débits groupés, annulations échouées — et fournissez des instructions claires aux utilisateurs.
L’ERC-777 est un standard de jeton Ethereum enrichi, axé sur l’interactivité. Grâce aux callbacks de réception et à la fonctionnalité d’opérateur, il améliore la sécurité et les workflows de transaction, mais présente aussi des défis en matière de réentrance et de compatibilité. Pour les applications nécessitant automatisation et contrôle précis des risques, l’ERC-777 est pertinent ; pour une couverture maximale de l’écosystème, la compatibilité ou la continuité de l’ERC-20 reste préférable. Utilisateurs et équipes projet doivent toujours valider avec de petits montants avant d’augmenter les transferts et surveiller la compatibilité des plateformes.
L’atout majeur de l’ERC-777 est son mécanisme de hook : il permet aux contrats d’exécuter automatiquement de la logique lors du transfert de jetons, sans étapes d’approbation supplémentaires. Cela autorise un transfert et une interaction contractuelle en une seule transaction, simplifiant considérablement les workflows DeFi. Par rapport au processus en deux étapes approve-and-transfer de l’ERC-20, l’ERC-777 est plus efficace et offre une expérience utilisateur améliorée.
La cause la plus fréquente est que le portefeuille ou le contrat du destinataire ne prend pas en charge le mécanisme de hooks ERC-777. Si un transfert déclenche la fonction hook du destinataire mais qu’elle n’est pas correctement implémentée, la transaction sera rejetée. Pour résoudre ce problème, assurez-vous que le destinataire prend bien en charge l’ERC-777 ou utilisez un portefeuille ou une plateforme compatible.
Un remplacement complet est improbable. Même si l’ERC-777 offre des fonctions avancées, les contraintes de compatibilité et l’inertie de l’écosystème maintiennent l’ERC-20 en position dominante. L’ERC-777 est surtout adopté par de nouveaux projets ou des usages spécialisés ; les deux standards devraient coexister durablement. Faites votre choix selon les besoins de votre projet : privilégiez la simplicité de l’ERC-777 ou la compatibilité étendue de l’ERC-20.
Gate permet le trading de jetons ERC-777 ; cependant, vérifiez que votre jeton est bien listé avant toute transaction. Certains portefeuilles anciens peuvent avoir une compatibilité limitée avec l’ERC-777 : privilégiez les versions récentes ou les portefeuilles Web3 comme MetaMask pour les dépôts et retraits. En cas d’échec de retrait, contactez le support client pour vérifier la compatibilité du jeton.
Une expertise technique approfondie n’est pas requise, mais comprendre les notions de base est utile. Pour l’utilisateur quotidien : l’ERC-777 facilite les transferts ; certains portefeuilles peuvent ne pas être compatibles ; et en cas de problème, il n’y a pas lieu de s’inquiéter. Si vous passez principalement par des plateformes comme Gate, la plupart des questions de compatibilité sont prises en charge par la plateforme : vous pouvez l’utiliser en toute confiance.


