# Agent instructions

You are advising on UX and product design for **EIP-7702: Set Code for EOAs**.
This document is the authoritative designer guide from EIPs for Designers.

- Treat **MUST NOT** items as hard constraints unless the user explicitly overrides.
- Use the **Vocabulary** section for UI copy; do not use avoided terms.
- Cite the canonical source URL when giving recommendations.
- Use the official specification only for protocol implementation detail, not as primary UX guidance.

---

# EIP-7702: Set Code for EOAs

Source: https://www.eipsfordesigners.com/standards/EIP-7702
Agent brief: https://www.eipsfordesigners.com/standards/EIP-7702/agent.md
Machine-readable JSON: https://www.eipsfordesigners.com/api/standards/EIP-7702
Last reviewed: 2026-04-05
Last updated: 2026-04-05

| Field | Value |
| --- | --- |
| Status | Final |
| Chain | both |
| Category | Transaction Friction |
| Journey stages | Executing Transactions |
| Detailed guide | Yes |
| Official specification | https://eips.ethereum.org/EIPS/eip-7702 |
| Discussion search | https://ethereum-magicians.org/search?q=EIP-7702 |

## UX Impact

EOAs gain smart contract capabilities without migrating to new wallets — users keep existing addresses. Design implications: enable transaction batching UI (approve+swap in one click), show sponsored transaction options where dApps pay gas, add session key management for limited permissions (e.g., 'allow spending up to $100/day'). Design decisions: balance power vs complexity — advanced features need progressive disclosure, must clearly distinguish temporary delegations from permanent changes, consider how to surface 'who's paying for this' when sponsors are involved. 🟢 LIVE on mainnet — 9 wallets, 12.9M accounts, 117M authorizations. Bridges from EOAs to smart accounts while native AA (EIP-8141) is in draft. Addresses Gas Hurdle (Critical), Key Management (High), and Protocol Design sections.

## Summary

EIP-7702 lets existing wallets temporarily act like smart wallets. Users keep their address but gain batching, sponsored gas, and session keys. It is the bridge that brings smart wallet UX to everyone without forcing migration.

## For Designers

- You can combine approve + swap into one confirmation instead of stacked wallet popups.
- Your onboarding can sponsor the first transaction so new users never need ETH upfront.
- Games can use a one-time permission screen, then play without a signature on every action.

## Applicability

### When to Use

- Existing EOAs need batching, sponsorship, or session keys without a new address.
- You want one signature for approve + action flows on supported networks.
- Games or apps need low-friction repeat actions after an upfront authorization.

### When to Avoid

- The wallet or chain does not support 7702-style delegation yet.
- A full smart account (ERC-4337) already covers your requirements with clearer status UX.
- Users only perform single low-risk transfers where delegation adds confusion.

## Problems It Solves

### Users must sign every transaction individually

Impact: critical

Old way: Approve token, wait, confirm, swap, wait, confirm (multiple popups)

New way: Sign once, all steps execute atomically

### New users need ETH before they can do anything

Impact: critical

Old way: Buy ETH on exchange, transfer to wallet, wait, then interact

New way: App sponsors first transaction, user starts immediately

### Games interrupted by constant signature requests

Impact: high

Old way: Sign for every sword swing, every loot pickup

New way: Session key pre-authorized for game actions

### Switching to smart wallet means new address

Impact: high

Old way: Deploy new contract wallet, transfer all assets, update everywhere

New way: Same address gains smart wallet powers instantly

### Complex DeFi operations require multiple transactions

Impact: medium

Old way: Unstake, claim rewards, swap, restake (4 separate transactions)

New way: One batched transaction does everything

## MUST NOT (Anti-Patterns)

- **Forcing users to enable 7702 before basic actions** (critical)
  - Why: Creates friction at worst moment (new user onboarding)
  - Instead: Make it optional, show benefits, let them upgrade later

- **Hiding what batch transaction will do** (critical)
  - Why: Users sign blind, lose trust if something unexpected happens
  - Instead: Show clear preview of ALL steps before signing

- **Session keys with no limits** (critical)
  - Why: Compromised session key drains wallet
  - Instead: Require spend limits and expiration times

- **No way to revoke session keys** (high)
  - Why: Users feel trapped, cannot secure their account
  - Instead: Prominent Revoke All Sessions button in settings

- **Using technical terms like "delegate" or "authorization"** (high)
  - Why: Users do not understand what they are agreeing to
  - Instead: Say "Enable smart features" or "Start gaming session"

- **Not showing sponsored gas clearly** (medium)
  - Why: Users confused when gas suddenly costs money
  - Instead: Show Sponsored badge AND explain when sponsorship ends

## Design Decisions

### When do you ask users to enable smart features?

Recommendation: Offer upgrade after value is clear, not as a gate on first connect.

Rationale: Forced delegation at onboarding creates drop-off before users see benefit.

### How do you preview batched actions?

Recommendation: Show every step with outcomes before one signature.

Rationale: Hidden batch steps feel like blind signing when something unexpected executes.

### What limits apply to session keys?

Recommendation: Require spend cap, allowed actions, and expiration with a revoke-all control.

Rationale: Unbounded session keys turn a game UX bug into a full wallet drain.

### How do you label sponsorship?

Recommendation: Use honest "Sponsored" copy and state when the user will pay gas again.

Rationale: Surprise fees after "free" transactions break trust on the next action.

## States to Design

### Delegation not enabled

Trigger: EOA has not authorized 7702 code for this session.

User need: Understand optional upgrade path.

Design response: Benefit-led CTA; keep core flows working without delegation.

### Batch preview

Trigger: User initiates multi-step action.

User need: See all consequences in order.

Design response: Checklist of steps with combined outcome before sign.

### Session active

Trigger: Session key authorized within limits.

User need: Know what the app can still do without prompts.

Design response: Session badge with limits, expiry, and revoke in settings.

### Sponsored gas

Trigger: Paymaster or sponsor covers fees.

User need: Know cost is covered now and later.

Design response: Sponsored label on fee row; note when user-paid gas returns.

### Delegation revoked

Trigger: User revokes session or delegation expires.

User need: Confirm the app can no longer act silently.

Design response: Toast plus return to per-action signatures.

## UX Patterns

### One-Click Multi-Step

Combine approve and action into a single user interaction.

Components: Batch preview, Step checklist, One-click button

User flow:

- User enters swap amount
- UI shows combined preview of all steps
- Single Swap button click
- Wallet shows single signature request
- All steps execute atomically
- Success state shown

Mockup registry key: `one-click-swap` (React UI on the live standard page).

### Sponsored First Transaction

New users transact without holding ETH.

Components: Sponsored badge, Gas display, Claim button

User flow:

- New user connects wallet
- App detects empty wallet (no ETH)
- Shows Sponsored badge on gas fee
- User clicks claim
- App paymaster covers gas
- User receives NFT without spending anything

Mockup registry key: `sponsored-claim` (React UI on the live standard page).

### Session Keys for Gaming

Pre-authorize game actions without per-action signatures.

Components: Permission checklist, Time limit, Spend limit

User flow:

- User starts game
- Permission selection UI shown
- User configures limits
- Single signature creates session key
- Game plays without interruption
- Session auto-expires

Mockup registry key: `session-permissions` (React UI on the live standard page).

## Mental Model

### Existing EOA

The user keeps the same address and seed phrase. Delegation adds capabilities without migration or a new receive address.

### Delegation code

A type-0x04 transaction temporarily attaches smart wallet logic to the EOA. Your UI explains this as "enable smart features," not delegate or authorization.

### Batched execution

Multiple contract calls run in one atomic sequence after a single signature. Preview every step before the wallet prompt.

### Session keys

A scoped permission lets the app act within spend and time limits without per-action popups. Always show limits and a revoke path.

### Gas sponsorship

A paymaster or sponsor can cover fees for the delegated transaction. Label sponsored fees honestly and note when the user pays again.

## Seen in the Wild

- MetaMask: Supports EIP-7702 delegation for batch transactions and smart account features on supported networks. (https://metamask.io/)

- Ambire Wallet: Uses 7702-style delegation to batch approve + swap flows behind a single signature. (https://www.ambire.com/)

- Biconomy: SDK layer for gas sponsorship and batched calls that pairs with 7702-enabled accounts. (https://www.biconomy.io/)

- Coinbase Smart Wallet: Smart account flows with sponsored first transactions and batched operations for new users. (https://www.coinbase.com/wallet/smart-wallet)

## On Monad

### Reserve Balance

Ethereum: Delegated code can spend entire balance

Monad: Delegated accounts enforce 10 MON reserve strictly

Design implication: Show spendable balance vs total balance; delegated wallets have stricter constraints

### Transaction Speed

Ethereum: Batch transactions may take 15+ seconds

Monad: Sub-second finality for all operations

Design implication: Show real-time feedback, skip waiting states

### Gas Costs

Ethereum: Batching saves ~21k gas per eliminated tx

Monad: Already cheap, savings less dramatic

Design implication: Emphasize convenience over cost savings

## Technical Notes

EIP-7702 adds a new transaction type (0x04) that sets an EOA's code to point to a contract. The EOA can then execute the contract's logic while maintaining its address. Delegation is per-transaction and explicitly authorized. Works with ERC-4337 paymasters for gas sponsorship.

## Official specification (reference only)

https://eips.ethereum.org/EIPS/eip-7702
