La plupart des échecs de transactions ERC-20 s’expliquent par quatre raisons pratiques : la transaction est toujours en attente, les paramètres de gas sont trop faibles, le nonce est incorrect, ou le jeton ou l’adresse de destination est incompatible avec le transfert. Dans la plupart des cas, vos jetons ne sont pas perdus si la transaction a échoué sur la blockchain ou a été abandonnée avant sa confirmation, mais vous pouvez tout de même perdre les frais de gas. La solution la plus rapide consiste à rechercher le hash de la transaction dans un explorateur de blocs, à déterminer si son statut est En attente, Abandonnée, Gas épuisé ou Annulée, puis à suivre la procédure de récupération correspondante.
Les transferts ERC-20 ne fonctionnent pas comme de simples transferts d’ETH. Un paiement standard en ETH utilise généralement le mécanisme de transfert de base du réseau, tandis qu’un transfert de jetons ERC-20 constitue un appel à un contrat intelligent. Davantage de conditions doivent donc être remplies pour que la transaction aboutisse.
Les causes les plus courantes sont les suivantes :
En résumé, l’échec d’un transfert ERC-20 signifie généralement que la blockchain a rejeté la logique de la transaction, que le réseau ne l’a jamais correctement acceptée ou que la configuration de la destination était incorrecte.
La première étape consiste à rechercher le hash de la transaction dans un explorateur de blocs tel qu’Etherscan. Le statut est plus important que la notification de votre portefeuille, car celui-ci peut parfois indiquer qu’un transfert a « échoué » alors qu’il est simplement bloqué, remplacé ou pas encore correctement indexé.
Vous devez généralement identifier l’un des états suivants :
| Statut | Signification | Ce qu’il advient généralement des jetons | Ce qu’il advient généralement du gas |
|---|---|---|---|
| En attente | La transaction attend dans le mempool | Les jetons n’ont pas encore été déplacés | Les frais ne sont pas encore finalisés |
| Abandonnée | Les nœuds ont supprimé la transaction avant sa confirmation | Les jetons n’ont généralement jamais quitté le portefeuille | Ils ne sont généralement pas facturés comme pour une transaction confirmée |
| Gas épuisé | La transaction a épuisé le gas disponible pour son exécution | Le transfert de jetons n’a pas abouti | Le gas dépensé n’est pas remboursé |
| Annulée | Le contrat intelligent a rejeté l’exécution | Le transfert de jetons n’a pas abouti | Le gas dépensé n’est pas remboursé |
| Réussie | La blockchain a confirmé le transfert | Les jetons ont été déplacés sur la blockchain | Le gas a été facturé normalement |
Si vous négociez et transférez régulièrement des actifs numériques, il est plus important de bien comprendre le fonctionnement de votre compte de plateforme d’échange et de votre portefeuille que de privilégier uniquement la rapidité. Pour les utilisateurs qui comparent les solutions permettant de gérer leurs actifs et de transférer des fonds, la plateforme d’échange WEEX est un exemple à étudier en parallèle de la configuration de leur portefeuille et des réseaux pris en charge.
Une transaction en attente est un transfert qui a été diffusé sur le réseau, mais qui n’a pas encore été inclus dans un bloc. Cela se produit généralement lorsque les frais de réseau proposés sont trop faibles par rapport au niveau actuel de congestion, ou lorsqu’une autre transaction dotée d’un nonce antérieur la bloque encore.
Une transaction abandonnée est différente. Cela signifie que le réseau a fini par cesser de conserver la transaction dans le mempool parce que les frais étaient trop faibles, que le nonce était invalide ou que la transaction n’avait pas satisfait aux contrôles de validation. Dans de nombreux cas, un transfert abandonné est considéré comme n’ayant jamais atteint la blockchain.
Si votre transaction ERC-20 reste longtemps en attente, vous pouvez généralement résoudre le problème en :
Si la transaction est abandonnée, la solution la plus courante consiste à envoyer une nouvelle transaction avec le bon nonce et des frais plus compétitifs.
Les problèmes de gas sont l’une des principales raisons pour lesquelles les utilisateurs pensent qu’un transfert ERC-20 a échoué « sans raison ». Contrairement à un paiement normal en ETH, un transfert ERC-20 interagit avec un contrat intelligent et nécessite donc davantage que le minimum de gas utilisé par un transfert de base.
Un simple transfert d’ETH utilise souvent 21 000 unités de gas, mais les transferts ERC-20 nécessitent l’exécution d’un contrat et requièrent généralement une limite de gas plus élevée. Si cette limite est trop faible, la transaction peut échouer avec une erreur « Gas épuisé ». Dans ce cas, le transfert de jetons n’aboutit pas, mais le gas consommé pendant l’exécution reste perdu.
Il existe également une différence entre la limite de gas et les frais de gas :
Si les frais de gas sont trop faibles, la transaction peut rester longtemps en attente. Si la limite de gas est trop faible, la transaction peut être partiellement exécutée, puis échouer.
Un nonce est le numéro de séquence des transactions de l’adresse de votre portefeuille. Chaque transaction sortante utilise le nonce suivant dans l’ordre. Si le nonce est incorrect, le réseau peut rejeter la transaction ou la laisser bloquée derrière une autre.
Les problèmes courants liés au nonce comprennent :
Les utilisateurs peuvent alors voir une erreur similaire à « frais insuffisants pour la transaction de remplacement ». Cela signifie généralement que vous avez tenté de remplacer une transaction en attente en utilisant le même nonce, mais que l’augmentation des frais n’était pas suffisante pour que les nœuds acceptent la nouvelle version.
Si votre portefeuille permet de personnaliser le nonce, vous pouvez renvoyer manuellement la transaction avec le même nonce et des frais plus élevés. Dans le cas contraire, vous devrez peut-être patienter ou utiliser les outils intégrés d’accélération et d’annulation.
Oui. Il arrive que les paramètres du portefeuille soient corrects, mais que le contrat du jeton bloque lui-même le transfert. Cette situation est fréquente pour les jetons qui ajoutent des règles personnalisées aux exigences de base de la norme ERC-20.
Voici quelques exemples :
transferFromLes bibliothèques modernes de jetons peuvent renvoyer des erreurs explicites telles que ERC20InsufficientBalance, ERC20InvalidReceiver ou ERC20InsufficientAllowance. Ces erreurs signalent des règles propres au contrat plutôt qu’un dysfonctionnement du portefeuille.
Cela explique également pourquoi le transfert d’un jeton peut réussir tandis que celui d’un autre échoue depuis le même portefeuille. Différents jetons ERC-20 peuvent appliquer des restrictions internes distinctes, même sur le même réseau.
Il s’agit de l’un des scénarios les plus frustrants, car la transaction peut réussir sur la blockchain tout en étant considérée comme un échec du point de vue de l’utilisateur.
Par exemple, un transfert peut être confirmé sur Ethereum, mais la plateforme destinataire peut ne pas prendre en charge ce jeton ou les dépôts sur ce réseau. Dans ce cas, l’actif peut ne pas apparaître automatiquement dans le compte du destinataire, même si la blockchain indique que la transaction a réussi.
Une autre erreur classique consiste à envoyer des jetons à l’adresse du contrat du jeton lui-même ou à un contrat qui n’est pas conçu pour les recevoir au moyen d’un simple appel transfer(). Dans certains écosystèmes de jetons, les dépôts vers des contrats doivent suivre un processus approve + transferFrom plutôt qu’un transfert direct.
Avant d’envoyer un jeton ERC-20, vérifiez toujours les points suivants :
Le type de portefeuille détermine la catégorie d’échec la plus probable. Dans un portefeuille non dépositaire, il vous incombe généralement de détenir suffisamment d’ETH pour payer le gas. Si vous possédez des jetons, mais aucun ETH, le transfert ERC-20 peut échouer avant de commencer ou ne jamais être correctement soumis.
Dans certains environnements dépositaires, la plateforme peut calculer les frais du réseau Ethereum et déduire à la place un montant équivalent du solde de jetons. Cela peut réduire un point de défaillance courant, mais n’élimine pas les risques liés au contrat ou à la destination.
Si votre transfert échoue, vérifiez donc si le problème provient :
La meilleure réponse dépend du statut exact de la transaction.
| Type d’échec | Action recommandée |
|---|---|
| En attente depuis trop longtemps | Accélérez ou remplacez la transaction en utilisant le même nonce et des frais plus élevés |
| Abandonnée | Renvoyez la transaction avec le bon nonce et des frais actualisés |
| Gas épuisé | Réessayez avec une limite de gas plus élevée |
| Annulée | Vérifiez le solde de jetons, les règles du contrat et la compatibilité du destinataire |
| Confirmée, mais non créditée | Contactez la plateforme destinataire en lui communiquant le hash de la transaction |
Ne renvoyez pas continuellement des transactions au hasard sans avoir d’abord vérifié le nonce et l’état actuel des transactions en attente. Cela peut aggraver le problème en créant une file de transferts incompatibles.
La plupart des échecs de transactions ERC-20 peuvent être évités grâce à une simple liste de contrôle. Avant l’envoi, assurez-vous de disposer de suffisamment d’ETH pour le gas, vérifiez le contrat du jeton et le réseau, puis confirmez que la plateforme de destination prend en charge cet actif précis sur Ethereum.
Il est également utile de :
À l’heure actuelle, Ethereum enregistre toujours un grand volume de transactions en attente dans les mempools publics. Un transfert ERC-20 retardé n’est donc pas inhabituel en soi. L’essentiel est de distinguer un retard temporaire d’un véritable échec d’exécution.
Cet article est fourni à titre d’information générale uniquement et ne constitue pas un conseil financier, 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 $