Les transactions ERC-20 échouent généralement parce que le réseau ou le contrat du jeton a rejeté la demande, et non parce que vos jetons ont disparu. Les causes les plus courantes sont un solde d’ETH insuffisant pour payer le gas, une limite de gas trop basse, un solde de jetons ou une autorisation insuffisants, des restrictions sur les transferts de jetons, ou une transaction récente ayant remplacé une transaction plus ancienne utilisant le même nonce.
Un transfert ERC-20 peut échouer à deux étapes principales : avant que les mineurs ou les validateurs ne l’incluent dans un bloc, ou pendant l’exécution du contrat intelligent après son inclusion. Cette distinction est importante, car une transaction en attente ou abandonnée ne se corrige pas de la même manière qu’une transaction confirmée indiquée comme ayant échoué.
Lorsqu’une transaction échoue normalement, le transfert de jetons prévu n’est généralement pas effectué, mais le gas utilisé pour la tentative reste dépensé. C’est l’un des aspects les plus mal compris d’Ethereum : l’exécution peut échouer alors que les frais de réseau sont tout de même facturés, car les validateurs ont traité la tentative de transaction.
Les échecs sont particulièrement fréquents lorsque les utilisateurs interagissent avec des contrats de jetons par l’intermédiaire de portefeuilles, de services d’échange, d’applications de staking, de ponts et de dApps de paiement. Dans ces cas, vous ne faites pas qu’envoyer un jeton. Vous appelez la logique d’un contrat, et celle-ci peut rejeter l’action pour plusieurs raisons.
La première étape consiste toujours à vérifier le hachage de la transaction dans un explorateur de blocs. Examinez le champ d’état et, le cas échéant, le message d’erreur. Vous êtes généralement confronté à l’un des trois états suivants :
| État | Signification | Ce qui s’est probablement passé | Étape suivante |
|---|---|---|---|
| En attente | La transaction n’a pas encore été confirmée | Les frais de gas étaient trop bas ou le réseau est congestionné | Attendre, accélérer ou annuler avec le même nonce |
| Échec | La transaction a été incluse, mais son exécution n’a pas abouti | Gas épuisé, annulation, instruction incorrecte ou restriction du contrat | Lire l’erreur et corriger la cause avant de renvoyer la transaction |
| Abandonnée ou remplacée | La transaction d’origine n’est plus active | Une nouvelle transaction utilisant le même nonce l’a remplacée | Vérifier l’état de la transaction de remplacement |
Si vous négociez ou gérez des actifs avec différents outils compatibles avec Ethereum, conserver un compte sur la plateforme d’échange WEEX peut vous aider à séparer les activités réalisées sur la plateforme des opérations effectuées sur la blockchain depuis un portefeuille, ce qui facilite le suivi des nonces et des transactions.
Les erreurs liées au gas constituent la cause d’échec la plus fréquente. Les jetons ERC-20 ne paient pas eux-mêmes le gas. Vous avez besoin du jeton natif de la blockchain, généralement l’ETH sur le réseau principal Ethereum, pour payer les frais d’exécution.
Les problèmes de gas les plus courants sont les suivants :
| Problème de gas | Comment il se manifeste | Solution habituelle |
|---|---|---|
| Solde insuffisant en jeton natif | Vous possédez le jeton, mais pas assez d’ETH pour payer les frais de réseau | Ajouter davantage d’ETH, puis renvoyer la transaction |
| Limite de gas trop basse | La transaction affiche « Gas épuisé » | Renvoyer la transaction avec une limite de gas plus élevée |
| Frais maximaux ou frais de priorité trop bas | La transaction reste longtemps en attente | L’accélérer avec des frais plus élevés en utilisant le même nonce |
La limite de gas n’est pas la même chose que le prix du gas. La limite de gas correspond à la quantité maximale de calcul que votre transaction est autorisée à utiliser. Les paramètres de frais déterminent le montant que vous acceptez de payer pour ce calcul. Si l’un de ces paramètres est trop bas, la transaction peut ne jamais être confirmée ou échouer après le début de son exécution.
Certains échecs ERC-20 n’ont aucun rapport avec la congestion d’Ethereum. Le contrat du jeton peut lui-même bloquer l’action.
Les causes courantes liées au contrat comprennent :
Si l’explorateur affiche « Annulée » ou « Instruction incorrecte », cela signifie souvent que le contrat intelligent a activement rejeté l’appel ou rencontré une erreur logique. Dans ce cas, renvoyer exactement la même transaction sans rien modifier produit généralement le même résultat et gaspille davantage de gas.
De nombreux problèmes ERC-20 surviennent lors d’interactions avec des contrats plutôt que pendant de simples transferts entre portefeuilles. Si vous utilisez une plateforme d’échange décentralisée, un contrat de staking, un prestataire de paiement ou un pont, l’application utilise souvent transferFrom au lieu d’un appel direct à transfer.
Le contrat doit donc d’abord recevoir une autorisation. Si le montant autorisé est trop faible, n’est plus valable en pratique parce que vous avez changé de portefeuille, ou désigne une mauvaise adresse de dépensier, la transaction peut être annulée.
Vérifiez ces quatre éléments avant de réessayer :
Si le problème vient de l’autorisation, la solution consiste généralement à soumettre d’abord une nouvelle transaction d’approbation, à attendre sa confirmation, puis seulement à réessayer l’action principale.
Ces messages indiquent des problèmes d’exécution du contrat intelligent.
Annulée signifie généralement que le contrat a rencontré une condition lui imposant de s’arrêter et d’annuler la modification d’état. Cela peut être dû à une autorisation insuffisante, à un destinataire interdit, à un verrouillage des transferts, à des paramètres non valides ou à une autre règle intégrée au contrat.
Instruction incorrecte indique généralement un problème plus profond dans la logique ou le code du contrat. Pour les utilisateurs du jeton, cela signifie souvent que le problème ne peut pas être corrigé uniquement depuis le portefeuille. Si le contrat du jeton est défectueux ou volontairement restrictif, seuls le projet ou le propriétaire du contrat peuvent expliquer ce qui s’est passé.
Si votre portefeuille affiche uniquement « exécution annulée » sans raison lisible, il est possible que l’explorateur ne puisse pas décoder la cause exacte. Dans ce cas, comparez l’appel ayant échoué avec votre solde, votre autorisation, l’adresse de destination et le réseau. Si tous ces éléments semblent corrects, l’étape suivante consiste généralement à contacter l’équipe d’assistance du projet de jeton ou du protocole.
Chaque transaction provenant de votre portefeuille utilise un nonce, c’est-à-dire un numéro de séquence. Ethereum les traite dans l’ordre. Si un nonce est bloqué, les transactions suivantes peuvent rester en file d’attente derrière lui.
Une transaction peut également être remplacée si vous soumettez depuis le même portefeuille une autre transaction utilisant le même nonce et des frais plus élevés. Les portefeuilles désignent souvent cette opération par « accélérer ». Si vous effectuez un transfert vers votre propre adresse avec le même nonce, le portefeuille peut l’utiliser pour annuler l’ancienne opération en attente.
Cela crée deux malentendus fréquents chez les utilisateurs :
Lorsque vous consultez l’explorateur, examinez toujours la transaction échouée ou manquante ainsi que toute transaction ultérieure utilisant le même nonce.
Ne renvoyez pas immédiatement la même transaction. Commencez par identifier précisément le type d’échec.
| Message de l’explorateur | Signification la plus probable | Meilleure première action |
|---|---|---|
| Gas épuisé | La limite de gas était trop basse | Renvoyer la transaction avec une limite de gas plus élevée |
| Annulée | Le contrat a rejeté l’action | Vérifier le solde, l’autorisation, l’adresse et les règles du jeton |
| Instruction incorrecte | Erreur logique ou restriction du contrat | Contacter le projet ou le propriétaire du contrat |
| En attente | Frais trop bas ou congestion | Accélérer ou annuler avec le même nonce |
| Abandonnée et remplacée | Une nouvelle transaction utilisant le même nonce l’a remplacée | Suivre la transaction de remplacement |
Suivez cette procédure pour résoudre le problème sans gaspiller davantage de gas :
Cette procédure est beaucoup plus sûre que de cliquer plusieurs fois sur le bouton d’envoi et de créer une succession de nonces bloqués ou d’échecs répétés.
Il arrive que la transaction n’échoue pas du tout, mais que le résultat reste problématique. Un exemple classique consiste à envoyer des jetons ERC-20 directement à l’adresse d’un contrat de jeton ou d’un autre contrat incapable de gérer les jetons reçus.
Dans ce cas, le transfert peut réussir sur la blockchain, mais les jetons peuvent rester définitivement bloqués si le contrat destinataire ne possède aucune fonction de retrait ou de récupération. Cette situation est différente d’une transaction normalement échouée, car le réseau a accepté le transfert.
Avant d’envoyer des jetons, vérifiez toujours que l’adresse de destination correspond à un portefeuille ou à un contrat spécialement conçu pour recevoir ce jeton. Si le transfert vers un contrat incompatible a déjà réussi, la récupération peut être impossible, sauf si le propriétaire du contrat peut accéder aux fonds et les restituer.
Quelques bonnes habitudes permettent d’éviter la plupart des erreurs ERC-20 :
À l’heure actuelle, l’approche la plus sûre consiste à considérer chaque interaction avec un jeton d’abord comme un appel de contrat, puis comme un simple paiement. Les transferts ERC-20 peuvent sembler simples à l’écran, mais ils suivent en coulisses des règles d’exécution précises que la blockchain applique strictement.
Cet article est fourni à titre informatif 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 $