# EIP-7702

**EIP-7702**は、Ethereumにおける新しい標準仕様であり、通常のウォレットアドレス（EOA：Externally Owned Account）に対して、1回のトランザクション内で一時的にスマートコントラクトのような機能を付与する、軽量かつ後方互換性のある方法を提供します。

従来のスマートコントラクトウォレットとは異なり、EIP-7702では、**新しいコントラクトのデプロイやアドレス変更なし**に、高機能なスマートウォレットの特性をEOAに付与することができます。

### なぜ重要なのか

MetaMaskなどのEOAはシンプルですが、機能が限定されています。各トランザクションに毎回署名が必要で、複数のステップを伴う操作は面倒です。スマートコントラクトウォレットならこれらを解決できますが、新しいアドレスの作成と資産移動が必要になります。

**EIP-7702は、現在のアドレスのままでスマートウォレット機能を利用可能にします。**

### 主な機能

* **一時的なスマートコントラクト化**：approveとswapを一括で実行するなど、複雑な操作を1回のトランザクションで処理可能。
* **セッションキー**：限定的な権限を持つ一時キーを発行し、特定操作を委任可能。
* **ガススポンサー**：dAppやサービスがガス代を肩代わり可能。
* **アカウントアブストラクション互換**：ERC-4337と併用可能な軽量構造。
* **プロキシやアドレスの変更不要**：元のEOAアドレスを保持したまま使用可能。

### KEYRING PROでの仕組み

KEYRING PROウォレットでEIP-7702機能（ガススポンサーやセッション委任など）を有効にすると、EOAは一時的にスマートウォレットのように振る舞います。これは、特定のスマートコントラクトロジックにデリゲート（委譲）されることによって実現されます。

現在、KEYRING PROでは[UniswapのCalibur](https://github.com/Uniswap/calibur/)を活用しています。これは、EIP-7702のために設計されたシングルトン型のスマートコントラクトで、バッチトランザクションやセッションキー、ガススポンサー付き実行などに対応しています。

#### 署名ベースの実行フロー

ユーザーはトランザクションを直接送信する代わりに、**オフチェーンで署名したバッチ命令**を生成します。それをリレイヤーがCaliburの`execute()`関数に送信し、Caliburが以下の処理を行います：

* 署名と権限の検証
* 指定されたロジックの実行
* 必要に応じて一括リバート

詳細はこちら：

* [Caliburリポジトリ](https://github.com/Uniswap/calibur/)
* [アーキテクチャと署名ベース実行の説明](https://github.com/Uniswap/calibur/blob/main/ARCHITECTURE.md#signature-based-execute-flow)

### スマートアカウント解除：Dismiss Smart Account

EIP-7702機能を使用すると、EOAは一時的に「スマートアカウントモード」になります。KEYRING PROでは、「**Dismiss Smart Account**」機能で元の状態に戻すことができます。

{% content-ref url="/pages/iY9NTyRVwsC7n0PeSw3s" %}
[スマートアカウントを解除](/jp/keyring-pro/dismiss-smart-account.md)
{% endcontent-ref %}

### 補足と制限事項

* 一部のdAppや中央集権型取引所はスマートコントラクト型アドレスに対応していません。
* EIP-7702のツールサポートはまだ発展途上です。
* nonce管理やリプレイ防止、セッションキーのスコープ設定には注意が必要です。

とはいえ、EIP-7702が注目を集めている理由は以下のとおりです：

* 既存のアドレスを維持できる
* 複雑さを増やさずにスマート機能を追加できる
* 必要な機能だけを選んで導入可能（モジュール式）

### 結論

EIP-7702は、Ethereumのアカウント設計における大きな前進です。EOAを一時的にスマートアカウント化することで、**シンプルさと柔軟性を両立**し、Web3体験をよりスムーズで安全なものにします。

KEYRING PROでは、EIP-7702を活用することで、ガススポンサー、セッションキー、UX向上など、強力な機能を提供しながら、ユーザーの完全なコントロールを維持します。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.keyring.app/jp/keyring-pro/eip-7702.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
