分散型アプリケーション(dApp)と連携するたびに — トークンをスワップしたり、流動性を提供したり、NFTをミントしたりするたびに — ほぼ確実にトークン承認に署名しています。この承認はスマートコントラクトに対して、あなたに代わってトークンを移動する権限を付与するもので、多くの場合、支出制限も有効期限もありません。そのコントラクトが後に悪用されたり、悪意のあるバージョンにアップグレードされたり、単に放棄された場合、攻撃者は新しく署名することなくあなたのウォレットから資金を流出させることができます。MetaMaskとRabby Walletでこれらの承認を監査および取り消す方法を理解することは、すべての暗号資産保有者が構築できる最も実用的なセキュリティ習慣の1つです。このガイドでは、両方のウォレットでの正確な手順、利用可能なツール、および最初に優先すべきことについて説明します。

トークン承認が持続的なリスクである理由

トークン承認はERC-20のapprove()関数とERC-721/ERC-1155のsetApprovalForAll()関数によって管理されます。approve(spender, amount)を呼び出すと、通常はスマートコントラクトである特定のアドレスに対して、将来いつでもあなたのウォレットから最大amount個のトークンを転送する権限を付与します。Ethereumファウンデーションの開発者ドキュメントでは、承認はトークン所有者によって明示的に取り消されない限り、無期限に有効なままであることが確認されています。

実際の結果として、ウォレットは時間の経過とともに数十から数百の有効な承認を蓄積します。Badger DAOのエクスプロイト(約1億2,000万ドルの損失をもたらした)に関する2022年の事後分析では、攻撃者が注入したスクリプトが、ユーザーが一度も取り消したことのない既存の無制限の承認を利用していることが示されました。トークンはユーザーが署名した悪意のあるトランザクションを通じて保管から流出したのではなく、数か月前に署名した承認がダメージをもたらしたのです。

MetaMaskでトークン承認を直���取り消す方法

MetaMaskはブラウザ拡張機能に承認管理インターフェースを追加しました。パスはブラウザ拡張機能とモバイルアプリで若干異なります。

MetaMaskブラウザ拡張機能(v11以上)

MetaMask自体は、2026年初頭の時点で、拡張機能内に完全な承認ダッシュボードをレンダリングしていません。完全なリストについてはブロックエクスプローラーに依存しています。MetaMask Knowledge Baseの記事「スマートコントラクト許可額/トークン承認を取り消す方法」にはこのフローが明示的に記載さ���ています。

Etherscanのトークン承認ツールを使用

  1. etherscan.io/tokenapprovalcheckerにアクセスしてウォレットを接続します。
    • このツールは、すべてのアクティブなERC-20承認をトークンでグループ化して一覧表示し、スペンダーアドレスと承認額を表示します。
  2. 削除したい承認の隣にある取り消すをクリックします。MetaMaskはapprove(spender, 0)を呼び出すトランザクションの確認を求めます。これは許可額をゼロに設定します。
    • ガス代を支払って確認します。トランザクションがマイニングされると、承認はオンチェーンで削除されます。

Etherscanは、同じインターフェースを通じてERC-721 NFT承認もサポートしています。各取り消しは、独自のガスコストを伴う個別のオンチェーンのトランザクションです。

Rabby Walletでトークン承認を取り消す方法

DeBankによって開発されたRabby Walletには、ネイティブな承認管理ダッシュボードが搭載されています — これはその最も引用されるセキュリティ機能の1つです。MetaMaskのリダイレクトアプローチとは異なり、RabbyはウォレットのUIを離れることなく承認を表示します。

Rabbyの組み込み承認管理

  1. Rabbyブラウザ拡張機能を開き、サイドバーの承認タブ(シールドアイコン)をクリックします。
    • Rabbyは接続されたすべてのEVMチェーン全体(Ethereum、Arbitrum、Base、Polygonなど)の承認をリアルタイムで取得し、分類します。
    • 各エントリは、トークン、スペンダーコントラクト名(特定可能な場合)、承認額、およびリスクスコアを表示します。Rabbyはセキュリティエンジンによってリスキーと判定されたコントラクトにフラグを立てます。
  2. 任意の承認の隣にある取り消すをクリックします。ウォレットプロンプトでトランザクションを確認します。

Rabbyドキュメントではこの機能を公式ヘルプセンターの「承認管理」で説明しています。クロスチェーンビューは特に有用です。なぜなら、多くのユーザーがガスが安かった、そして承認が無造作に署名されたレイヤー2ネットワークで付与された承��を忘れるためです。

知っておく価値のあるサードパーティーの取り消しツール

2つの追加ツールが広く使用されており、ウォレットのネイティブ機能とともにブックマークする価値があります。

サードパーティーツールを使用する場合、ウォレットを接続する前に必ずドメインを確認してください。Revoke.cashを模倣するフィッシング���イトが検索広告に登場しています — 常にブックマークされたURLまたはプロジェクトの検証されたGitHubページからナビゲートしてください。

承認を監査する際に優先すべきこと

200の承認があるウォレットは、200の取り消しを必要としません。トリアージアプローチを適用します。

承認の取り消しのガスコストの現実

各取り消しはオンチェーンのトランザクションです。Ethereumメインネットでは、ERC-20承認の取り消しは通常、約45,000~60,000ガスを消費します。適度なガス価格では、これは数セント~数ドルの費用がかかります。ArbitrumやOptimismなどのレイヤー2ネットワークでは、コストはほぼ無視できます — しばしば1セント未満です。

メインネットで取り消す承認が多い場合は、低ガス期間(通常、UTCの平日の深夜、過去のEthereumガスデータによる)に複数のセッションにわたって作業をバッチ処理することを検討してください。Revoke.cashのようなツールの中には、EIP-2612パーミットスタイルのパターンを実装しているチェーンでマルチ取り消しトランザクションをサポートするものもありますが、標準的なERC-20取り消しは個別のトランザクションが必要です。

これがあなたにとって意味すること

トークン承認��衛生管理は1回限りのタスクではなく — 継続的な慣行です。重要なDeFiセッション後に、Rabbyの「承認」タブまたはRevoke.cashで2分を費やして、不要になった承認を削除します。主にMetaMaskを使用している場合は、Etherscanのトークン承認チェッカーをブックマークして、毎月実行します。無制限の承認と、対話しなくなったコントラクトに付与された承認を優先します。承認を取り消すためのガスコストは、ほぼ常に単一の悪用されたポジションのコストよりも低いです。

MetaMaskとRabbyは引き続きネイティブな承認ツール機能を改善しています — MetaMaskの2025年Q4ロードマップは強化されたウォレット内承認可視性を参照しました — しかし、どちらのウォレットも最初に承認を付与することを防ぎません。それらを監査および取り消す責任は、あなた自身にあります。