La plupart des échecs de transactions ERC-20 ont trois causes : le transfert de jetons a échoué pendant l’exécution du contrat, les paramètres de gas étaient trop faibles ou le contrat du jeton impose des restrictions. Dans la plupart des transferts échoués, vos jetons ne quittent pas votre portefeuille, mais les frais de gas sont tout de même dépensés. Si une transaction est simplement en attente et non échouée, la solution habituelle consiste à la remplacer par une nouvelle transaction utilisant le même nonce et des frais plus élevés.
Les transferts ERC-20 peuvent sembler simples dans un portefeuille, mais il s’agit d’interactions avec des contrats intelligents sur des réseaux compatibles avec Ethereum. Un transfert peut donc échouer même si l’interface du portefeuille semble fonctionner normalement. De manière générale, les échecs de transactions ERC-20 se répartissent en trois catégories : les échecs d’exécution sur la blockchain, les problèmes de frais qui bloquent ou entraînent le remplacement de la transaction, et les restrictions propres au contrat du jeton.
Une transaction réellement échouée signifie que le réseau a exécuté la tentative, mais que le contrat a annulé l’opération ou a manqué de gas. Dans ce cas, la quantité de jetons prévue reste généralement dans le portefeuille de l’expéditeur, tandis que le gas utilisé pour le calcul est tout de même facturé. Une transaction en attente est différente : elle a été diffusée, mais n’a pas encore été confirmée. Le transfert peut alors encore aboutir ultérieurement ou être remplacé par une autre transaction ayant le même nonce.
Pour les utilisateurs qui suivent les transferts et les soldes entre plusieurs portefeuilles ou dépôts sur une plateforme d’échange, il est utile de vérifier le hash de la transaction dans un explorateur de blocs avant d’agir. Pour gérer leur compte et accéder à leur portefeuille, certains utilisateurs administrent leurs transferts et leurs activités d’échange depuis la plateforme d’échange WEEX, parallèlement à l’historique de leur portefeuille non dépositaire. Le diagnostic d’un échec ERC-20 dépend toutefois toujours du statut de la transaction sur la blockchain.
Lorsque le statut d’une transaction indique Échec, cela signifie généralement que les validateurs d’Ethereum ont inclus la transaction dans un bloc, ont tenté de l’exécuter et que l’exécution n’a pas abouti. Ce statut ne correspond ni à une transaction abandonnée ni à une transaction encore en attente dans la mempool.
| Statut | Signification | Conséquence habituelle pour les jetons | Conséquence pour le gas |
|---|---|---|---|
| Échouée | L’exécution a atteint la blockchain, mais a été annulée ou a manqué de gas | Ils restent généralement dans le portefeuille de l’expéditeur | Le gas est facturé |
| En attente | Diffusée, mais pas encore confirmée | Le transfert n’est pas encore finalisé | Les frais ne sont pas encore finalisés |
| Abandonnée | Retirée de la mempool ou désormais refusée | Aucun transfert n’a été effectué | Généralement, aucuns frais de gas définitifs ne sont facturés sur la blockchain |
| Abandonnée et remplacée | Une autre transaction ayant le même nonce a été acceptée à sa place | Cela dépend de la transaction de remplacement | Le gas s’applique à la transaction de remplacement confirmée |
Cette distinction est importante, car la solution appropriée dépend du statut. Si la transaction a déjà échoué sur la blockchain, vous devez en déterminer la cause avant de réessayer. Si elle est simplement en attente, vous pourrez peut-être l’accélérer ou l’annuler en soumettant une transaction de remplacement.
Plusieurs causes directes reviennent fréquemment lors des transferts ERC-20.
Solde de jetons insuffisant : le portefeuille peut ne pas contenir assez de jetons pour effectuer l’envoi. Cela peut se produire après un transfert partiel, une destruction de jetons ou un défaut de synchronisation de l’interface du portefeuille.
Contrat du jeton verrouillé : certains jetons sont temporairement non transférables. Le projet peut avoir suspendu les transferts, activé des restrictions ou ne pas avoir encore autorisé les échanges.
Comportement non standard du jeton : tous les jetons ne respectent pas correctement la norme ERC-20. Certains contrats n’émettent pas les événements attendus ou utilisent une logique inhabituelle, ce qui peut entraîner l’affichage d’erreurs difficiles à interpréter dans les explorateurs et les portefeuilles.
Erreur d’exécution du contrat : un message tel que Bad Instruction indique généralement une défaillance de la logique du contrat du jeton pendant l’exécution. En termes simples, une condition interne au contrat a refusé l’opération.
Out of Gas : la transaction ne disposait pas de suffisamment de gas pour terminer son exécution. Ce problème est particulièrement fréquent lorsque les utilisateurs réduisent manuellement la limite de gas ou lorsque la logique inhabituelle d’un jeton perturbe les estimations du portefeuille.
Chaque transaction Ethereum nécessite une ressource de calcul appelée gas. Pour un transfert ERC-20 standard, le portefeuille estime la quantité de gas que l’appel au contrat devrait utiliser. Si la limite de gas est trop faible, l’exécution peut s’interrompre en cours de route et être annulée.
Ce problème peut survenir pour deux raisons différentes que les utilisateurs confondent souvent :
| Problème | Cause | Résultat habituel |
|---|---|---|
| Limite de gas trop faible | La transaction ne disposait pas d’une marge d’exécution suffisante | Échec sur la blockchain et gas dépensé |
| Frais trop faibles | La transaction n’était pas assez intéressante pour être sélectionnée rapidement | Transaction en attente, retardée ou remplacée |
Sur Ethereum, la demande du réseau évolue en permanence. Si vous modifiez manuellement les paramètres avancés sans bien les comprendre, vous pouvez créer un transfert peu coûteux, mais impossible à traiter dans des conditions réalistes. Pour les jetons ERC-20 dotés d’une logique de transfert supplémentaire, une limite de gas minimale peut être particulièrement risquée.
Si votre transaction est toujours en attente, ne supposez pas immédiatement qu’elle a échoué. Ethereum traite notamment les transactions en fonction de la compétitivité de leurs frais. Une transaction assortie de frais faibles peut rester bloquée longtemps tandis que des transactions plus récentes aux frais plus élevés sont traitées en premier.
La principale solution consiste à effectuer une transaction de remplacement. Pour remplacer correctement une transaction ERC-20 en attente, vous devez soumettre une nouvelle transaction avec le même nonce que la transaction d’origine et des frais plus élevés. Si vous envoyez une nouvelle transaction avec un nonce différent, elle ne remplacera pas la transaction bloquée. Vous créerez simplement une autre transaction et risquez d’aggraver le problème de file d’attente.
De nombreux portefeuilles masquent cette procédure derrière des boutons tels que Accélérer ou Annuler. L’option Accélérer renvoie la même opération avec des frais plus élevés. L’option Annuler envoie généralement une transaction de valeur nulle à votre propre adresse avec le même nonce, afin que la transaction d’origine en attente ne puisse plus être confirmée.
Avant d’utiliser l’une de ces options, vérifiez le hash de la transaction d’origine dans un explorateur de blocs et assurez-vous que son statut est toujours en attente. Si la transaction a déjà échoué ou a été abandonnée, la marche à suivre est différente.
Le nonce correspond au numéro d’ordre des transactions envoyées depuis l’adresse de votre portefeuille. Ethereum l’utilise pour maintenir l’ordre des transactions. Si la transaction numéro 25 est bloquée, la transaction numéro 26 ne peut généralement pas être confirmée avant elle depuis le même portefeuille.
C’est pourquoi le remplacement d’une transaction en attente exige d’utiliser exactement le même nonce. Le réseau considère la version plus récente, assortie de frais plus élevés, comme une candidate au remplacement de la précédente. Si la transaction de remplacement est acceptée, elle supplante effectivement la transaction d’origine.
Certains portefeuilles permettent de personnaliser manuellement les valeurs de nonce. D’autres n’affichent ce paramètre qu’après l’activation des options avancées. Si votre portefeuille intègre des commandes Accélérer ou Annuler, celles-ci sont généralement plus sûres que la modification directe des champs de nonce.
Abandonnée et remplacée signifie que le réseau a cessé de prendre en compte la transaction d’origine en attente, car une autre transaction provenant du même portefeuille et ayant le même nonce l’a remplacée. Ce statut apparaît fréquemment après une tentative d’accélération ou une demande d’annulation.
Pour l’utilisateur, cela signifie généralement que la première transaction n’est plus celle qui importe. Vous devez examiner le hash de la transaction de remplacement et suivre cette opération à la place. Si la transaction de remplacement a bien été confirmée, l’état du portefeuille reflétera cette dernière, et non la transaction diffusée à l’origine.
Ce statut peut également apparaître lorsqu’un portefeuille soumet automatiquement de nouveau des transactions en arrière-plan avec des frais plus compétitifs. L’élément important n’est pas l’ancien hash, mais la transaction qui a finalement finalisé le nonce.
Oui. Il s’agit de l’un des risques les plus graves liés aux jetons ERC-20, car l’opération peut ne pas apparaître comme une transaction échouée classique. La norme ERC-20 n’impose pas aux contrats destinataires d’intégrer une fonction de gestion des jetons. Par conséquent, si vous envoyez des jetons à un contrat incapable de gérer les soldes ERC-20 entrants, ils peuvent rester bloqués définitivement.
Un exemple bien connu consiste à envoyer un jeton à l’adresse de son propre contrat ou à un autre contrat intelligent qui n’a jamais été conçu pour récupérer des dépôts ERC-20 arbitraires. Dans ce cas, le transfert peut réussir sur la blockchain, mais les actifs deviennent inaccessibles.
Il est donc aussi important de vérifier l’adresse de destination que les paramètres de gas. Une transaction réussie ne signifie pas toujours que les actifs sont récupérables.
Si un transfert de jetons échoue continuellement alors que votre solde et vos frais semblent normaux, le contrat du jeton peut comporter des restrictions intégrées. Certains contrats peuvent suspendre les transferts, placer des adresses sur liste noire, limiter les échanges avant le lancement ou refuser des transferts dans certaines conditions.
Les signes concrets comprennent des échecs répétés accompagnés de messages d’erreur similaires, des signalements de la communauté indiquant que le jeton est temporairement non transférable ou des avertissements inhabituels dans l’explorateur. Dans ces situations, augmenter le gas ne résoudra pas le problème sous-jacent. La cause ne réside pas dans le niveau des frais, mais dans la logique du contrat.
Lorsque l’erreur indique un problème lié au comportement du contrat plutôt qu’aux paramètres du portefeuille, l’étape suivante consiste à consulter les règles du jeton ou à contacter l’équipe du projet. Réessayer sans cesse le même transfert ne fera que consommer davantage de gas.
Voici une liste de vérifications simple et utile :
La plupart des problèmes rencontrés par les utilisateurs se résolvent en distinguant un véritable échec d’exécution d’une simple transaction en attente. Cette seule étape évite de nombreuses nouvelles tentatives inutiles et des pertes de frais supplémentaires.
Utilisez l’estimation de gas par défaut du portefeuille, sauf si vous comprenez précisément pourquoi vous la modifiez. Vérifiez deux fois la quantité de jetons, l’adresse du destinataire et le réseau avant de confirmer. Si vous effectuez un envoi vers une dApp ou un contrat, assurez-vous que cette destination est conçue pour recevoir des jetons ERC-20.
Il est également préférable d’éviter d’envoyer plusieurs nouvelles transactions depuis le même portefeuille lorsqu’une transaction antérieure est bloquée, car l’ordre des nonces peut bloquer toutes les transactions suivantes. Lorsqu’ils doivent négocier dans des conditions volatiles, de nombreux utilisateurs séparent leurs activités sur les plateformes d’échange de la gestion de leurs transferts non dépositaires, afin de suivre plus facilement les dépôts, les retraits et les autorisations de jetons dans une même chronologie.
À l’heure actuelle, le dépannage des transferts ERC-20 repose principalement sur la logique d’exécution, la gestion des frais et la vérification des adresses, plutôt que sur une récente modification des règles à l’échelle du protocole. Comprendre ces trois aspects permet de résoudre la majorité des cas d’échec de transfert.
Cet article est fourni uniquement à titre d’information générale et ne constitue pas un conseil financier, d’investissement, juridique ou technique.
Ce contenu est fourni à titre informatif uniquement et ne constitue pas un conseil financier, d'investissement, juridique ou fiscal. Les événements, récompenses, promotions en ligne ou informations mentionnées ici ne doivent pas être considérés comme une recommandation, une sollicitation ou une invitation à acheter, vendre, trader ou effectuer toute autre opération sur des actifs crypto. Les actifs crypto sont très volatils et peuvent entraîner des pertes. La disponibilité des services, produits et événements liés à WEEX peut varier selon les régions. Veuillez vous assurer que votre participation respecte les lois et réglementations locales applicables.

Achetez de la crypto pour 1 $