Learning

EIP-7702 Delegation Checkerアプリ開発から見えたこと

2026/02/13

EIP-7702 はイーサリアムのウォレットに強力な新機能をもたらしますが、同時に多くのユーザーがまだ十分に扱いきれていない「可視性」の課題も生み出しています。

この課題に対応するため、私たちは EIP-7702 Delegation Checker App を開発しました。これは、イーサリアムアドレスがEIP-7702のもとでDelegationされているかどうかを、複数のEVMチェーンにまたがって一括で確認できる、無料かつオープンソースのWebアプリです。

本記事では、EIP-7702が実際に何を可能にするのか、なぜDelegationの可視性が重要なのか、そしてAccount Abstraction(AA, アカウント抽象化)が広がる中でユーザーやビルダーがウォレットの安全性をどのように考えるべきかを解説します。

本記事のポイント

  • EIP-7702はAccount Abstractionの次世代を担う提案であり、Externally Owned Account(EOA、例:MetaMask)がDelegationを通じてスマートコントラクトロジックを実行できるようにする

  • EIP-7702 Delegation Checker Appは、EOAのDelegation状況を複数のEVMチェーンで確認できる、オープンソースのFrontend-onlyアプリケーションである

  • Delegationは強力だが、信頼と安全性のためには可視性が不可欠である

  • EIP-7702 Delegation Checker App公開以前は、ユーザーはエクスプローラーでの手動確認や独自コードに頼る必要があった

  • エコシステム全体として、より良いRevoke(Delegation解除)サポートが求められている

EIP-7702とは何か

EIP-7702は、ERC-4337に続く形で登場した提案であり、EOAに新しい実行能力を与えます。

EIP-7702以前、ユーザーは選択を迫られていました。単一の秘密鍵で管理する従来型のEOAを維持するか、EIP-4337ベースのAccount Abstractionウォレットへ移行するかです。後者を選ぶ場合、新しいウォレットアドレスと新しいインフラを採用する必要がありました。

EIP-7702は、この二択を不要にします。

EOAがスマートコントラクトコードの一部を「借りる」ことを可能にし、同じアドレスをEOAとしても、スマートウォレットとしても利用できるようにします。

実際には、次のようなことが可能になります。

  • 既存のウォレットとアドレスをそのまま利用できる

  • Delegationを通じてプログラム可能なコントラクトロジックを実行できる

  • 複数の呼び出しをバッチ処理できる

  • ガス代を第三者が負担する仕組みを有効化できる

  • カスタムの支出ルールや認可ルールを設定できる

Delegationと可視性のギャップ

EIP-7702は「Delegation」という重要な仕組みを導入します。

Delegationとは、EOAにスマートコントラクトコードを関連付けることを意味します。ウォレットがDelegationされると、

  • EOAがスマートコントラクトコードと紐づく

  • そのコードがアカウントの代わりにアクションを実行できる

  • ユーザーはdelegate先コントラクトの挙動を信頼することになる

これはEIP-7702が危険だという意味ではありませんが、単発のトランザクション署名とは異なる権限モデルです。Delegationは、一度きりの支払い承認というよりも、ソフトウェアをインストールする行為に近いものです。

私たちが課題だと感じたのは、チェーンを横断してDelegation状況を簡単に確認する方法が存在しなかったことです。

専用ツールが登場する以前は、

  • 複数のExplorerを個別に確認する

  • 複数のRPCエンドポイントにクエリを投げる独自コードを書く

といった方法に頼るしかありませんでした。

これらは一般ユーザーにとって負担が大きく、開発者にとっても繰り返し作業になっていました。そこで私たちは、必要だと感じたツールを実際に作ることにしました。

EIP-7702 Delegation Checker

EIP-7702 Delegation Checkerは、複数ネットワークにまたがって次の問いに答える軽量Webアプリです。

「このアドレスはDelegationされているか? どのチェーンで? どのコントラクトに?」

ユーザーはアドレスやENS名を入力し、ボタンをクリックするだけで、対応するEVMチェーン上でのEIP-7702 Delegation状況を即座に確認できます。

ウォレット接続は不要です。

EIP-7702 Delegation Checkerの使い方

一般的な利用フローは次の通りです。

  1. Checkerを開く 

  2. イーサリアムアドレスまたはENS名を入力する

  3. Searchをクリックする

  4. 各チェーンの結果を確認する

表示結果は以下のいずれかです。

  • Not detected:Delegationは確認されていない

  • Not supported yet:チェーンは未対応

  • Delegated:Delegationあり(delegate先コントラクトや元のEOAへのリンクを表示)

結果に応じて、ユーザーは次のアクションを検討できます。

Delegation状況

推奨アクション

予期されたDelegation

追加対応は不要

予期しないDelegation

可能であればRevoke (Delegation解除) 

必要に応じて資金を防御的に移動

Delegate先を調査

EIP-7702 Delegation Checkerの用途

このツールで可能なこと:

  • 期待通りのDelegationであることを確認する

  • 忘れていたあるいは想定外のDelegationを発見する

  • 追加調査が必要なdelegate先を特定する

  • 対応ウォレットであればRevokeを実行する

  • 可視化によって安心感を得る

健全なウォレットは、Delegationが存在しないか、よく知られたスマートウォレット実装へのDelegationのみが確認される状態です。

Delegateシグナルと安全指標

EIP-7702 Delegation Checkerは、表示されている内容を直感的に判断できるよう、視覚的な安全シグナルを提供しています。

検出された各Delegationには、以下のインジケーターが表示されます。

  • 緑のチェックマーク: 既知の信頼できる実装(例:Ambireなどのスマートウォレット)として認識されているdelegate

  • クエスチョンマーク: 不明なdelegate。直ちに悪意があるとは限りませんが、追加の確認を推奨します

  • ⚠️ オレンジの三角アイコン: 既知の侵害・悪意のある活動と関連が確認されているdelegate(ハッカーアドレスなど)。秘密鍵の侵害が発生している可能性があります

これらのインジケーターは判断を補助するためのものであり、安全性を保証するものではありません。

侵害されたウォレットでは、このようなDelegationが表示される場合があります:

技術構成

本アプリは、意図的にシンプルな構成で設計されています。

  • Frontend-only

  • ブラウザ上で完全に動作(Web UI)

  • バックエンドや外部依存なし

  • ウォレットデータを外部へ送信しない

  • 複数チェーンを横断して照会し、Delegation状況を一括表示

  • Delegationされたウォレットに対してRevokeを実行可能(対応状況はウォレットごとに異なる)

  • ソースコードは完全に検証可能

ウォレット接続は任意であり、接続した場合はアクティブなウォレットアドレスを検索ボックスに自動入力するだけです。

このCheckerは、検証可能なソースコードを持つシンプルなフロントエンドであり、安全性を重視した設計となっています。この制限された設計は意図的なものです。履歴保存、インデックス機能、分析機能などを追加するにはバックエンド基盤が必要となり、ツールの性質そのものが大きく変わってしまいます。

Revokeの課題

Revoke機能は提供していますが、任意のEIP-7702 Delegationを解除するためのトランザクションをサポートしていないウォレットも多く、対応状況は一貫していません。

次のような場合、Revokeできない可能性があります。

  • ウォレットにバグがある

  • ウォレットをアンインストールした

  • サポートが終了している

  • 過去にどのツールでDelegationしたか覚えていない

これは実際のUX上のギャップです。Revoke機能はニッチな開発者向け機能ではなく、標準的なウォレット安全機能であるべきです。

EIP-7702に関する誤解

よくある誤解は、EIP-7702は使いにくいというものです。

実際には、プロトコル自体はERC-4337よりもシンプルです。足りていないのは、DelegationやRevoke機能、エッジケースを一般ユーザーに理解可能な形で提示するツールです。

最も重要な制約は、パフォーマンスやスケーリングではなく「理解のしやすさ」です。

EIP-7702はまだ新しく、

  • 仕様書以外のドキュメントが少ない

  • 多くの記事は概念的な説明にとどまっている

  • 実際のエッジケースが十分に明示されていない

という状況にあります。

eip7702.appにおける日々のユーザー利用状況は、EIP-7702の導入が実際に進んでいること、そして「可視性ツール」への需要が確実に存在していることを示す強いシグナルとなっています。

(関連投稿はこちら)https://x.com/JeffInTokyo/status/1967259513519796358

重要な制限事項

Delegation Checkerは次のことはできません。

  • 秘密鍵が侵害された後の資金回収

  • delegate先コントラクトの安全性保証

  • バックエンドなしでの完全な履歴表示

秘密鍵が侵害されたと疑われる場合は、未影響の資産を保護し、新しい安全な環境へ移行することが適切な対応です。

今後に向けて

EIP-7702を扱うウォレット、エクスプローラー、Dappを構築するプロトコルに対しては、

  • Delegationをデフォルトで可視化する

  • Revokeを信頼性高く一貫して提供する

ことを検討してほしいと考えています。

Account Abstractionを試しているユーザーに対しては、

  • 定期的に自分のアドレスのDelegation状況を確認する

  • 信頼できるスマートウォレット実装を利用する

  • 違和感を覚えたら迅速に行動する

ことを勧めます。

そしてCurvegridとしては、今後以下の方向で発展させる可能性があります。

  • ウォレット対応の成熟に伴うRevoke UXの改善

  • 対応チェーンの拡張

  • より透明性の高いdelegate評価シグナル

  • 明確なトレードオフを伴う履歴モードの追加

これらがなくても、EIP-7702 Delegation Checker Appの価値は変わりません。

ユーザーは、自分のウォレットがどこに関連付けられているかを、チェーンをまたいで、手間なく知りたいのです。