WETH承認は、WETH9コントラクトへのapprove()呼び出しで、別のアドレス(DEXルーター、レンディングプール、NFTマーケットプレイス)が最大設定額までのあなたのWETHをtransferFrom()で動かせるようにします。ラップとアンラップには承認は不要です。第三者コントラクトがあなたのWETHで行うことはすべて承認が必要です。2026年10月2日、Ethereumで過去100件のWETH9送信トランザクションのうち24件が承認でした。そのうち20件は約46,000ガスを使用しました。これはゼロから認可を作成したためです(Etherscan)。ルール:使用するコントラクトを承認し、使用する内容に対して承認し、もう使わないものは取り消してください。
- 承認は第三者向け:deposit()、withdraw()、transfer()はあなた自身の残高に対応し、承認は不要です。ルーター、プール、マーケットプレイスのtransferFrom()には必要です。
- トラフィック統計:承認は2026年10月2日のブロック26,105,189-26,105,250でWETH9に送信された100トランザクション中24件でした。デポジット46件、引き出し26件の隣です(Etherscan)。
- 初回承認は2倍の費用:その24件中20件は新しい認可を作成するのに46,000-46,400ガスを使用し、既存のものを変更するのに24,000-29,000ガスかかりました——46,000/24,000 = 1.9倍。
- 無制限は本当に無制限:WETH9は2^256-1の認可を無限として扱い、減らしません——約1.16×10^59 WETH。ブロック26,105,247のEthereumに存在する2,031,131 WETHに対して(Ethereum RPC)。
WETH承認とは
WETH承認はWETH9コントラクトの認可テーブルのエントリです:所有者、使用者、金額。approve(spender, amount)はそれを書き込み、Approvalイベントを発行します。transferFrom(owner, recipient, amount)は使用者が呼び出し、エントリをチェックし、WETHを動かし、認可を動かされた金額だけ下げます。承認は直接WETHを動かしたり、ロックしたりしません。WETHはあなたのアドレスにとどまり、使用者がその認可を使うまで。
ERC-20トークンがこのように機能する理由は、コントラクトは決して許可されていないトークンを引き出せず、WETHが存在する正確な理由はETHがそのフローに参加できるようにするからです(WETHとは)。ネイティブETHに認可テーブルはなく、送信され、引き出されることはありません。これがDeFiコントラクトがWETHを要求する理由です(WETHが存在する理由)。
WETHの承認が必要な場合と不要な場合
質問は常に同じです:WETHを動かすのは誰か、あなたか、あなたの代わりのコントラクトか。
| アクション | 承認が必要 | 理由 |
|---|---|---|
| ETHをWETHにラップ(デポジット) | いいえ | WETH9コントラクトが呼び出し者にミントします |
| WETHをETHにアンラップ(引き出し) | いいえ | 呼び出し者が自身の残高をバーンします |
| WETHをアドレスに送信(転送) | いいえ | 所有者が自身の残高を動かします |
| DEXでWETHをスワップ | はい、ルーターへ | ルーターはtransferFrom()でWETHを引き出します |
| レンディング市場にWETHを供給 | はい、プールへ | プールがデポジットを引き出します |
| NFTマーケットプレイスで入札 | はい、マーケットプレイスコントラクトへ | 売却は入札者からWETHを引き出して決済します |
| ブリッジコントラクトでWETHをブリッジ | はい、ブリッジまたはゲートウェイへ | ブリッジはWETHを引き出してから送信します |
最初の3行はWETHのアンラップ方法とETHからWETHが説明するものです。承認ステップが表示されないのは存在しないからです。ラップやアンラップの前に承認を求めるインターフェースは、WETH9を直接呼び出さず、別のコントラクト経由でルーティングしています。
正確な認可と無制限の認可
認可は次のアクションの正確な金額、またはコントラクトが受け入れる最大値です。WETH9では最大である2^256-1が特別です。transferFrom()は認可がそれと等しいときに控除をスキップするため、1つのapprove()がその使用者による将来のすべての転送をカバーします(WETH9検証済みソース、Etherscan)。
- 正確な金額: 各スワップまたはデポジットは最初に自身のapprove()が必要です。使用者は承認された金額以上を取ることはできません。
- 無制限: すべての将来の使用のために1つのapprove()。使用者は承認が取り消されるまで、そのアドレスが保有するすべてのWETHを動かせます。
トレードオフはガスと露出です。無制限承認は1使用当たり約24,000-46,000ガス、1つのapprove()を節約します。また、後で更新、利用、または放棄される可能性のあるコントラクトに立っている許可を残します。
WETH承認の費用
承認は1つのネットワーク手数料(ETH)とそれ以外は何もかかりません。ガスは認可が既に存在するかどうかで異なります:
| 承認タイプ | ガス使用量(Etherscan、2026年10月2日) | メインネット手数料(5.6 gwei、ETH $2,690.75) |
|---|---|---|
| ゼロからの新しい認可 | 46,000-46,400 | 約$0.70 |
| 既存の認可を変更 | 24,000-29,000 | 約$0.36-$0.44 |
ガスユニットは個々の承認のネットワーク手数料とガス価格から導き出されます。USDコラムはEtherscanの2026年9月28日平均ガス価格とETH価格を使用しています。レイヤー2ではガスユニットは似ており、ガス価格は何百倍も低く、ラップとアンラップと同じように機能しています(WETHガス費用)。いずれにせよ、手数料はETHで支払われるため、WETHのみを保有するアドレスは何も承認できません。
WETHにpermit関数がない理由
WETH9は2017年12月にデプロイされ、permit()を定義するEIP-2612より前です。permit()はトークン保有者がトランザクションの代わりにオフチェーン署名で認可を与える関数です。WETH9はdepositのみ、withdraw、totalSupply、approve、transfer、transferFromを持ち、そのコードは変更できません。そのためEthereumでのすべてのWETH承認はETHで支払われたオンチェーントランザクションです。
2つの回避策があります。Uniswap Permit2コントラクトはWETHの1つの通常承認を受け入れ、その後の支出を署名で許可します。より新しいラップトークンはpermitを構築します。LidoのwstETHはEIP-2612を実装しています(wstETHとWETH)。WETH9自体、最初の承認は常にトランザクションです。
WETHの承認を確認および取り消す方法
- 認可をリスト: ネットワークのエクスプローラー(Etherscan、Basescan、Arbiscan)またはrevoke.cashなどの専用ツールのトークン承認チェッカーを開き、あなたのアドレスを入力します。
- WETHエントリを検索: 各行は使用者コントラクト、認可(正確または無制限)、設定時期を表示します。
- もう使わないものを取り消す: 取り消しはあなたのアドレスからapprove(spender, 0)を送信します。ウォレットで確認し、ETHで手数料を支払います。
- すべてのネットワークで繰り返す: Base WETHの承認はEthereum WETHの承認とは別です。各ネットワークは独自のWETHコントラクトを持つからです(Base上のWETH)。
承認ができないこと
- ETHは動かせません: 認可はそのコントラクト内のWETH残高のみをカバーします。同じアドレスのネイティブETHは決してカバーしません。
- 残高を超過できません: 所有者が要求したWETH未満を保有する場合、transferFrom()は失敗します。認可は何を問わず。
- ネットワークを越えられません: 承認は各ネットワークのWETHコントラクトに個別に存在します。
- 後方に取り消せません: 取り消しは将来の引き出しを停止します。使用者が動かしたWETHは動かされたままです。