Une approbation WETH est un appel à approve() sur le contrat WETH9 qui permet à une autre adresse - un routeur DEX, un pool de prêt, un marketplace NFT - de déplacer jusqu’à un montant fixé de votre WETH avec transferFrom(). Le wrapping et l’unwrapping ne nécessitent aucune approbation ; tout ce qu’un contrat tiers fait avec votre WETH en nécessite une. Parmi les 100 dernières transactions envoyées à WETH9 sur Ethereum le 2 octobre 2026, 24 étaient des approbations, et 20 de celles-ci ont utilisé environ 46 000 gas car elles créaient une allowance à partir de zéro (Etherscan). La règle : approuvez le contrat que vous êtes sur le point d’utiliser, pour ce que vous êtes sur le point d’utiliser, et révoquez ce que vous n’utilisez plus.
- L'approbation est pour les tiers : deposit(), withdraw() et transfer() agissent sur votre propre solde et ne nécessitent pas d'approbation ; transferFrom() par un routeur, pool ou marketplace en nécessite une.
- Part du trafic : les approbations représentaient 24 transactions sur 100 envoyées à WETH9 dans les blocs 26 105 189-26 105 250 le 2 octobre 2026, à côté de 46 dépôts et 26 retraits (Etherscan).
- La première approbation coûte le double : 20 de ces 24 ont utilisé 46 000-46 400 gas pour créer une nouvelle allowance, contre 24 000-29 000 gas pour modifier une allowance existante - 46 000 / 24 000 = 1,9 fois plus.
- Illimité signifie illimité : WETH9 traite une allowance de 2^256-1 comme infinie et ne la réduit jamais - environ 1,16 x 10^59 WETH, contre 2 031 131 WETH en existence au bloc 26 105 247 (Ethereum RPC).
Ce qu’est une approbation WETH
Une approbation WETH est une entrée dans la table d’allowance du contrat WETH9 : propriétaire, dépensier, montant. approve(spender, amount) l’écrit et émet un événement Approval ; transferFrom(owner, recipient, amount), appelé par le dépensier, vérifie l’entrée, déplace le WETH et réduit l’allowance du montant déplacé. L’approbation ne déplace aucun WETH par elle-même et ne le verrouille pas ; le WETH reste sur votre adresse jusqu’à ce que le dépensier utilise son allowance.
Les jetons ERC-20 fonctionnent ainsi parce qu’un contrat ne peut pas extraire des jetons qu’il n’a jamais été autorisé à extraire, et WETH existe précisément pour que l’ETH puisse participer à ce flux (ce qu’est WETH). L’ETH natif n’a pas de table d’allowance : il est envoyé, jamais extrait, c’est pourquoi les contrats DeFi demandent WETH à la place (pourquoi WETH existe).
Quand vous devez approuver WETH et quand vous n’en avez pas besoin
La question est toujours : qui déplace le WETH : vous, ou un contrat en votre nom.
| Action | Approbation nécessaire | Pourquoi |
|---|---|---|
| Wrapper ETH en WETH (deposit) | Non | le contrat WETH9 émet vers l’appelant |
| Unwrapper WETH en ETH (withdraw) | Non | l’appelant brûle son propre solde |
| Envoyer WETH à une adresse (transfer) | Non | le propriétaire déplace son propre solde |
| Swapper WETH sur une DEX | Oui, au routeur | le routeur extrait WETH avec transferFrom() |
| Fournir WETH à un marché de prêt | Oui, au pool | le pool extrait le dépôt |
| Enchérir avec WETH sur un marketplace NFT | Oui, au contrat marketplace | la vente se règle en extrayant WETH de l’enchérisseur |
| Ponter WETH via un contrat de bridge | Oui, au bridge ou gateway | le bridge extrait WETH avant de l’envoyer |
Les trois premières lignes sont celles que Comment unwrapper WETH et ETH vers WETH décrivent : aucune étape d’approbation n’y apparaît parce qu’aucune n’existe. Une interface qui demande une approbation avant un wrap ou un unwrap route via un autre contrat, n’appelle pas WETH9 directement.
Allowances limitées vs illimitées
Une allowance peut être le montant exact de la prochaine action ou la valeur maximale que le contrat accepte. Dans WETH9 le maximum, 2^256-1, est spécial : transferFrom() saute la déduction quand l’allowance l’égale, donc une approbation couvre chaque transfert futur par ce dépensier (source vérifiée WETH9, Etherscan).
- Montant exact : chaque swap ou dépôt nécessite d’abord son propre approve() ; le dépensier ne peut jamais prendre plus que le montant approuvé.
- Illimité : un approve() pour toute utilisation future ; le dépensier peut déplacer tout WETH que l’adresse détient jusqu’à ce que l’approbation soit révoquée.
Le compromis est gas contre exposition. Une approbation illimitée économise un approve() par utilisation, environ 24 000-46 000 gas à chaque fois ; elle laisse aussi une permission permanente avec un contrat qui peut plus tard être mis à niveau, exploité ou abandonné.
Combien coûte une approbation WETH
Une approbation coûte un frais de réseau en ETH et rien d’autre. Le gas dépend de l’existence ou non d’une allowance existante :
| Type d’approbation | Gas utilisé (Etherscan, 2 octobre 2026) | Frais mainnet à 5,6 gwei, ETH 2 690,75 $ |
|---|---|---|
| Nouvelle allowance à partir de zéro | 46 000-46 400 | environ 0,70 $ |
| Modification d’une allowance existante | 24 000-29 000 | environ 0,36-0,44 $ |
Les unités de gas sont dérivées du frais et du prix du gas des approbations individuelles ; la colonne USD utilise le prix moyen du gas et le prix ETH d’Etherscan du 28 septembre 2026. Sur les layer 2 les unités de gas sont similaires et le prix du gas est des centaines de fois inférieur, de la même manière que pour les wraps et unwraps (coûts gas WETH). Dans tous les cas le frais est payé en ETH, donc une adresse détenant uniquement WETH ne peut rien approuver.
Pourquoi WETH n’a pas de fonction permit
WETH9 a été déployé en décembre 2017, avant que l’EIP-2612 ne définisse permit(), la fonction qui permet à un détenteur de jeton d’accorder une allowance avec une signature off-chain au lieu d’une transaction. WETH9 n’a que deposit, withdraw, totalSupply, approve, transfer et transferFrom, et son code ne peut pas être modifié, donc chaque approbation WETH sur Ethereum est une transaction on-chain payée en ETH.
Deux solutions de contournement existent. Le contrat Permit2 d’Uniswap accepte une approbation ordinaire de WETH et permet ensuite aux dépenses ultérieures d’être autorisées par signature. Les jetons wrappés plus récents intègrent permit : le wstETH de Lido implémente l’EIP-2612 (wstETH vs WETH). Pour WETH9 lui-même la première approbation est toujours une transaction.
Comment vérifier et révoquer les approbations WETH
- Listez les allowances : ouvrez le vérificateur d’approbations de jetons de l’explorateur du réseau (Etherscan, Basescan, Arbiscan) ou un outil dédié tel que revoke.cash, et entrez votre adresse.
- Trouvez les entrées WETH : chaque ligne affiche le contrat dépensier, l’allowance (exacte ou illimitée) et quand elle a été fixée.
- Révoquez ce que vous n’utilisez plus : révoquer envoie approve(spender, 0) depuis votre adresse ; confirmez-le dans le portefeuille et payez le frais en ETH.
- Répétez sur chaque réseau : une approbation sur WETH Base est séparée d’une sur WETH Ethereum, car chaque réseau a son propre contrat WETH (WETH sur Base).
Ce qu’une approbation ne peut pas faire
- Elle ne peut pas déplacer l’ETH : l’allowance couvre uniquement le solde WETH dans ce contrat, jamais l’ETH natif sur la même adresse.
- Elle ne peut pas dépasser votre solde : transferFrom() échoue si le propriétaire détient moins de WETH que demandé, quelle que soit l’allowance.
- Elle ne peut pas traverser les réseaux : les approbations vivent séparément dans le contrat WETH de chaque réseau.
- Elle ne peut pas être annulée rétroactivement : révoquer arrête les extractions futures ; le WETH déjà déplacé par le dépensier reste déplacé.