Account Abstraction
Live on-chain usage, the proposal family, native-AA work, and related calls
How Ethereum accounts became programmable
Every major account abstraction proposal in one place, from EIP-86 in 2017 to EIP-7702 shipping in Pectra, plus the native AA work now in draft. Scoped to account abstraction; unrelated network upgrades are left out. Every proposal links to its full page.
Timeline
Account abstraction proposals, and the infrastructure that made them possible.
EIP-86: Abstraction of transaction origin and signature
Core · Proposed Feb 2017 · Vitalik Buterin
The first proposal to move signature and nonce checks out of the protocol and into account contracts.
EIP-2938: Account Abstraction
Core · Proposed Sep 2020 · Buterin, Dietrichs, Garnett, Villanueva, Wilson
The first attempt to make account abstraction a protocol-native transaction type, using new PAYGAS and NONCE opcodes.
EIP-3074: AUTH and AUTHCALL opcodes
Core · Proposed Oct 2020 · Wilson, Dietrichs, Garnett, Zoltu
Two EVM opcodes letting an EOA authorize an invoker contract to batch and sponsor actions on its behalf.
ERC-4337: Account Abstraction Using Alt Mempool
ERC · Final · Proposed Sep 2021 · Live on mainnet since 2023
Account abstraction with no consensus change, using UserOperations, an alternative mempool, Bundlers, Paymasters, and a shared EntryPoint contract.
EIP-5792: Wallet Call API
Interface · Final · Proposed Oct 2022
Standard wallet RPC methods (wallet_sendCalls, wallet_getCapabilities) for batched calls and capability discovery.
EIP-7702: Set Code for EOAs
Core · Final · Proposed May 2024 · Live in Pectra (2025)
A type 0x04 transaction that sets a delegation indicator on an EOA, pointing it at contract code. The account keeps its address and key, and the delegation stays until it is replaced or cleared.
EIP-8130: Keystore Accounts
Core · Draft · Proposed Oct 2025
A new transaction type plus an on-chain account configuration with explicit authenticators.
EIP-8202: Scheme-Agile Transactions
Core · Draft · Proposed Mar 2026
A type 0x05 transaction combining an EIP-1559 fee header with swappable signature schemes and typed extensions.
Family tree of AA proposals
One origin idea, three approaches to the same goal. Every proposal links to its page.
Off-protocol
No consensus change. AA lives in smart contracts and an alternative mempool.
On existing EOAs
Give the accounts people already have smart-account behavior.
In-protocol (native)
A new transaction type with validation built into the protocol.
Transaction types on mainnet
Every typed transaction family. Account abstraction added type 0x04 (EIP-7702); a proposed 0x05 (EIP-8202) would carry the same set-code authorization.
| Tx type | EIP | Transaction | Introduced |
|---|---|---|---|
| Legacy | Pre-EIP-2718 | Legacy RLP transaction | Frontier |
| 0x01 | EIP-2930 | Access list | Berlin |
| 0x02 | EIP-1559 | Dynamic fee | London |
| 0x03 | EIP-4844 | Blob-carrying | Dencun |
| 0x04 | EIP-7702 | Set code (EOA delegation)Account abstraction | PectraFinal |
| 0x05 | EIP-8202 | Scheme-agileAccount abstraction | ProposedDraft |
EIP-2718 is not a transaction type. It is the Typed Transaction Envelope (Berlin, 2021) that added a leading type byte so new formats could be introduced without breaking old clients. Legacy transactions predate it; every type above (0x01 to 0x05) is defined as a new EIP-2718 transaction type.
Three ways to get a smart account
Plain EOA
- Auth: Fixed ECDSA key pair
- Gas: Paid in native ETH
- Code: None (empty account)
ERC-4337 smart account
- Auth: Passkeys, multisig, session keys
- Gas: Sponsored or paid in ERC-20
- Code: Custom contract deployed on chain
EIP-7702 delegated EOA
- Address: Keeps the original EOA
- Auth: ECDSA plus delegated contract code
- Gets: Batching and gas sponsorship
Why it took so long: the validation problem
Ethereum checks that a transaction is valid before it executes it. If verifying a signature required running arbitrary contract code, an attacker could flood the mempool with transactions that burn work and then turn out invalid. Every AA design is an answer to this one constraint.
Cheap validation
Nodes must reject invalid transactions without spending uncompensated compute.
Guaranteed payment
Something must guarantee gas before validation code runs.
Stable mempool rules
Validity cannot depend on state that changes within a block.
How the three approaches compare
| Property | ERC-4337 | EIP-7702 | Native (EIP-8141) |
|---|---|---|---|
| Formal status | Final (ERC) | Final (Core) | Draft |
| Live on mainnet | Yes, since 2023 | Yes, since Pectra (2025) | Not yet |
| Consensus change | None | Pectra (shipped) | Future fork |
| Works on your existing account | No, a new contract | Yes, same EOA | Yes |
| Transaction format | UserOperation (alt mempool) | Type 0x04 | Frame-based tx |
| Needs bundler or EntryPoint | Yes | No, a direct L1 tx | No, native builders |
| Custom validation (passkeys, multisig) | Yes | Yes, via delegated code | Yes |
| Gas sponsorship | Paymaster | Sponsor tx | Native |
| Atomic batching | Yes | Yes | Yes |
AI Disclaimer: Some content or metadata on EIPsInsight may be AI-inferred or automatically compiled. If you find any discrepancy, please contact us at dev@avarch.org.