TLDR: EIP-7702 allows externally owned accounts to temporarily behave like smart contract wallets during a transaction, enabling them to use smart contract features like batching and gas sponsorship without permanently changing the account type. BUT
Wallet/RPCs control the auth flow not apps and not all wallets have EIP-7702 support.
EIP-7702 Overview
EIP-7702 introduces a new transaction type, 0x04, in Ethereum’s Pectra upgrade that enables externally owned accounts (EOAs) to execute temporary smart contract functionality.
The delegation process looks like:
- A Smart Contract should exist that the EOA can designate to
- This contract can have any functionality
- For an example see the
SimpleEIP7702Contract
that allows batch execution
- The EOA signs an Authorization to designate the contract to the account
- An EIP-7702 transaction is sent along with the Authorization
- When processed, the network records that this EOA should delegate to the specific smart contract
- The EOA appears to have the SC code attached to it directly
- The code will be valid until replaced by another authorization
- msg.sender in these transactions remains the EOA’s address
Wallets Are In Control
Applications cannot directly use EIP-7702 to delegate user accounts to their preferred smart accounts.
Internal tests written to use an inject browser wallet as the Viem account throws because it is not possible to sign an authorization over JSON-RPC right now: https://github.com/wevm/viem/discussions/3285

Although its technically possible for any entity to create an EIP-7702 authorization, wallet providers have made it clear that they will reject transactions containing authorization fields from applications. Instead, wallets will manage EIP-7702 authorizations themselves, upgrading their users to the wallet’s chosen smart account implementation. There will be fragmentation as different wallets adopt different implementations.
Worth noting EIP-5792 can be used to query what capabilities a wallet supports using rpc calls (see 7702beat and 7702 checker as examples of existing tools).
Useful Links
7702beat.swiss-knife.xyz – Shows Chain & Wallet Support
Data
https://www.bundlebear.com/eip7702-overview/all
https://dune.com/wintermute_research/eip7702
Dev Guides
- Gives a guide showing how to use
signAuthorization
. Only works with a PK Account.
- Very detailed walk through (using Foundry and Viem)
- Use MetaMask Delegation Toolkit. Still appears to need a Viem PK account.
- Good explanation of the problem. Some proposed alternatives.
Photo by Jana Knorr on Unsplash