What is account abstraction? ERC-4337 explained
Written by Alchemy
Account abstraction lets a smart contract act as your account, instead of a single private key. The account can set its own rules for signing, paying gas, and running calls. ERC-4337 is the standard that delivers it on Ethereum and other EVM chains without changing the protocol.
Most Ethereum users today hold an externally owned account (EOA). An EOA is controlled by one private key, signs with one scheme, and needs ETH before it can do anything. If you lose the key, you lose the account. Account abstraction removes these limits. Two standards deliver it: ERC-4337 for smart accounts at their own addresses, and EIP-7702 for upgrading an existing EOA in place. The two work together.
What is account abstraction?
Account abstraction means an account's rules live in code, not in the protocol. A standard EOA follows fixed rules: one ECDSA signature, one nonce, and gas paid in ETH by the sender. With account abstraction, a smart account (the ERC-4337 spec calls it a smart contract account) defines its own validation logic instead.
The ERC-4337 spec describes the idea as a model "that allows each account to supply its own validation logic executed as smart contract code, while the protocol provides only minimal constraints."
That one change opens up features that EOAs cannot offer:
- Sponsored gas, where an app pays the fee so a new user needs no ETH.
- Gas paid in tokens, where a user pays in an ERC-20 such as USDC.
- Batching, where several calls run together as one atomic action.
- Session keys, where an app or agent gets narrow permission that expires.
- Passkeys and other signers, so a user does not need a seed phrase.
- Custom recovery, where the account's own rules decide how to regain access.
What is ERC-4337?
ERC-4337 is the Ethereum standard for account abstraction that needs no consensus-layer change. Vitalik Buterin and co-authors proposed it in 2021, and the EntryPoint contract went live on Ethereum mainnet on March 1, 2023.
Earlier proposals changed Ethereum's core protocol. ERC-4337 avoids that. It adds a pseudo-transaction called a UserOperation, a separate mempool for those operations, and a singleton contract called the EntryPoint. Because everything sits above the consensus layer, it works on any EVM chain where the EntryPoint is deployed.
One goal in the spec is to let users skip EOAs entirely. A smart account can sign with a passkey or any other scheme, and only the bundler needs an EOA to submit the transaction.
How does ERC-4337 work?
An ERC-4337 transaction moves through five steps:
- The user signs a UserOperation. The smart account decides what counts as a valid signature.
- The app sends it to a bundler with
eth_sendUserOperation. - The bundler simulates it, packs it with other UserOperations, and sends one transaction that calls
handleOpson the EntryPoint. - The EntryPoint calls
validateUserOpon the smart account. If a paymaster is involved, it also callsvalidatePaymasterUserOp. It checks that someone can cover the gas. - The EntryPoint calls the smart account to run the requested action, then repays the bundler.

What is a UserOperation?
A UserOperation is the pseudo-transaction object that describes what a user wants to do. It carries the sender (the smart account), a nonce, the call data, gas limits and fee fields, a signature, and optional paymaster fields. Unlike a normal transaction, the account's own code checks the signature. It can contain several instructions. Read our UserOperations guide for the full field list.
What does a bundler do?
A bundler is an offchain service that watches the UserOperation mempool, simulates each operation, and packs valid ones into a single onchain transaction. It pays the gas up front and the EntryPoint repays it. Bundlers are the only actors in ERC-4337 that must hold an EOA. See what is a bundler for how they work and compete.
What does the EntryPoint contract do?
The EntryPoint is a singleton smart contract that every account and bundler trusts. It runs each UserOperation in two phases. In the verification phase it checks the signature and confirms funds exist. In the execution phase it runs the call and reimburses the bundler. One shared, audited contract keeps the rules the same for everyone.
What does a paymaster do?
A paymaster is an optional contract that pays gas for a UserOperation. It lets an app sponsor fees, or lets a user pay in an ERC-20 token instead of ETH. The EntryPoint asks the paymaster to approve the operation before it runs. Read what is a paymaster for the types and the security trade-offs.
What does an aggregator do?
An aggregator is an optional contract that verifies one combined signature for many UserOperations at once. Because the bundle carries one signature instead of many, it saves calldata, which helps most on rollups. Aggregators are an optimization. Most accounts do not need one.
Which EntryPoint version should you use?
The EntryPoint has several released versions. Each one is a separate contract at its own address, and a smart account is built for one version.
- v0.6:
0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789 - v0.7:
0x0000000071727De22E5E9d8BAf0edAc6f37da032 - v0.8:
0x4337084D9E255Ff0702461CF8895CE9E3b5Ff108, which adds native EIP-7702 support
The eth-infinitism release notes also list v0.9, which adds paymasterSignature so paymasters can sign in parallel. Our hosted Bundler API supports v0.6, v0.7, and v0.8. Call eth_supportedEntryPoints on a chain to see the exact list. Build new accounts on v0.7 or v0.8, because the Bundler FAQ says v0.6 support is planned for deprecation.
What is EIP-7702?
EIP-7702 is a protocol change that lets an EOA set code on itself. It shipped on Ethereum mainnet with the Pectra upgrade on May 7, 2025.
It adds a new transaction type, 0x04, that carries a list of signed authorizations. Each authorization writes a delegation indicator, 0xef0100 followed by a contract address, into the account's code. After that, calls to the EOA run the code at that address.
The delegation is persistent. It stays until the account signs a new authorization, and delegating to the zero address clears it. The EOA keeps its address, its balance, and its key. Delegate only to audited contract code, because that code runs with the account's own balance and storage. For a deeper look, read our EIP-7702 overview.
What is the difference between ERC-4337 and EIP-7702?
ERC-4337 runs smart accounts at their own addresses, with a mempool, bundlers, and paymasters. EIP-7702 upgrades an existing address in place. They are not rivals. EIP-7702 changes what an account can be, and ERC-4337 provides the infrastructure to send and sponsor its operations.
The two standards connect directly. The ERC-4337 spec supports EIP-7702 authorizations. A UserOperation can include an eip7702Auth field, and the bundler adds that authorization to the authorizationList of the transaction it sends. EntryPoint v0.8 also includes the delegation in the UserOperation hash. A delegated EOA can therefore use bundlers and paymasters like any other smart account.
Choose EIP-7702 when your users already have EOA addresses, balances, and history that you want to keep. Choose a standalone ERC-4337 smart account when the account should not depend on one ECDSA key, such as a passkey-only account, or when the chain has not enabled EIP-7702.
What are modular smart accounts?
A modular smart account splits features into modules instead of one fixed contract. A validation module decides who can sign, for example a passkey or a session key. An execution module adds new actions. Hooks add checks, such as spend limits. You add or remove modules without changing the account address.
Two ERC standards define how modules plug in: ERC-6900, "Modular Smart Contract Accounts", and ERC-7579, "Minimal Modular Smart Accounts". Both build on ERC-4337. Our Modular Account v2 follows ERC-6900.
What can you build with account abstraction?
Account abstraction removes the steps that make onchain apps hard for new users.
- Gasless onboarding. A new user starts with no ETH, and your app sponsors the first transactions.
- Stablecoin gas. Users pay fees in the token they already hold.
- One-click flows. An approval and a swap run as one atomic batch, so a failure reverts both.
- Games and agents. A session key lets a game or an AI agent act within limits you set, without access to the full account.
- Passkey accounts. Users sign in with a device passkey and never handle a seed phrase.
- Recovery. The account can add guardians or other rules for regaining access.
How does Alchemy support account abstraction?
We run the infrastructure for both ERC-4337 and EIP-7702, so you can ship one flow for new smart accounts and existing EOAs.
Bundler
Our Bundler is a hosted ERC-4337 Bundler API built on Rundler, our open-source Rust bundler. It supports EntryPoint v0.6, v0.7, and v0.8. Check feature support by chain for the chains you need.
Gas Manager
Gas Manager lets your app pay gas for users under rules you set in a policy. We recommend Gas Sponsorship through Bundler Sponsored Operations, where you pass a policy ID in a header and add no paymaster fields. Use the Onchain Paymaster when you need ERC-20 gas payments or a paymaster in the flow. See the Gas Manager FAQ for plans and limits.
Modular Account v2
Modular Account v2 is our recommended smart account. It follows ERC-6900, has been audited by ChainLight and Quantstamp, and supports session keys, passkeys, allowlists, spend limits, and expiries through modules.
Wallet APIs
Wallet APIs are the transaction layer that sits on top. They send calls from a smart account with sponsorship, batching, retries, and session keys. You bring your own signer, such as Privy, Turnkey, or any viem-compatible signer.
EIP-7702 support
Wallet APIs also support EIP-7702. New EIP-7702 accounts delegate to Modular Account v2 by default, so an EOA gets the same batching, sponsorship, and session keys without a new address.
Ready to build? Start with the Wallet APIs docs, sponsor your first transaction with Gas Manager, and send UserOperations through our Bundler.
How did earlier proposals lead to ERC-4337?
Developers tried to build account abstraction long before ERC-4337.
- EIP-2938, from 2020, proposed account abstraction at the consensus layer. It has since been withdrawn.
- EIP-3074, also from 2020, added the
AUTHandAUTHCALLopcodes so an EOA could delegate control to a contract. EIP-7702 superseded it. - ERC-4337, from 2021, took a different route. It kept every change above the consensus layer, so it could ship without a hard fork.
EIP-7702 later brought code to the EOA itself, and the ERC-4337 spec now supports it. See EIP-3074 vs EIP-7702 vs ERC-4337 for a side-by-side look.
How do you get started with account abstraction?
- Pick the account type. Use an ERC-4337 smart account such as Modular Account v2 for new users, or EIP-7702 delegation for existing EOAs.
- Pick a signer. Passkeys, an embedded signer, or an existing EOA all work.
- Send your first UserOperation through a bundler, and attach a sponsorship policy if you want users to skip gas.
- Confirm that your target chains support what you need in the feature support table.
The Wallet APIs docs walk through each step with code. If you are writing your own smart account, implement validateUserOp for the EntryPoint version you target.
Frequently asked questions
What is account abstraction?
Account abstraction lets a smart contract act as your account instead of one private key. The account's code decides who can sign, who pays gas, and what it can run. That makes sponsored gas, batching, passkeys, and session keys possible. On Ethereum, ERC-4337 delivers it without protocol changes, and EIP-7702 brings it to existing EOAs.
What is ERC-4337?
ERC-4337 is the Ethereum standard for account abstraction that needs no consensus-layer change. Users sign UserOperations and send them to a separate mempool. Bundlers package them into one transaction to the EntryPoint contract, which validates and runs each one. Paymasters can pay gas on the user's behalf.
Does ERC-4337 need a hard fork?
No. ERC-4337 runs as smart contracts and an offchain bundler network on top of the existing chain, so it works on Ethereum and any EVM chain where the EntryPoint is deployed. EIP-7702 is different. It is a protocol change that shipped with the Pectra upgrade on May 7, 2025.
What is the difference between ERC-4337 and EIP-7702?
ERC-4337 runs smart accounts at their own addresses through UserOperations and bundlers. EIP-7702 lets an existing EOA delegate to contract code in place, so the address stays the same. They are complementary, and the ERC-4337 spec accepts EIP-7702 authorizations inside UserOperations.
Does EIP-7702 replace ERC-4337?
No. EIP-7702 upgrades an EOA, but it does not provide a mempool, bundlers, or paymasters. Those still come from ERC-4337 or from a relayer. A delegated EOA can send UserOperations through a bundler and use a paymaster, which is how the two standards combine in practice.
What is a UserOperation?
A UserOperation is the pseudo-transaction that ERC-4337 uses in place of a normal transaction. It holds the sender, nonce, call data, gas fields, signature, and optional paymaster data. A bundler collects UserOperations from a separate mempool and submits them onchain to the EntryPoint contract.
Do I need a bundler and a paymaster?
You need a bundler to send UserOperations, because only a bundler can submit them onchain. A paymaster is optional. Use one when you want to sponsor gas or let users pay in an ERC-20 token. Without one, the smart account pays gas from its own deposit at the EntryPoint.
Which EntryPoint version should I use?
Build new accounts on EntryPoint v0.7 or v0.8. Version v0.8 adds native EIP-7702 support. Our hosted Bundler API supports v0.6, v0.7, and v0.8, and the Bundler FAQ says v0.6 is planned for deprecation. Call eth_supportedEntryPoints on your chain to confirm the list.
Does Alchemy support ERC-4337 and EIP-7702?
Yes. We run a hosted ERC-4337 Bundler API built on our open-source Rundler, Gas Manager for gas sponsorship, and Wallet APIs with Modular Account v2 as the default smart account. Wallet APIs also support EIP-7702, so an EOA can delegate to Modular Account v2 code.
How widely is account abstraction used?
Adoption changes quickly, so a fixed number goes stale. Check a live source instead. BundleBear is a public dashboard that tracks smart account activity across chains, including ERC-4337 UserOperations and EIP-7702 authorizations, and it updates continuously.
Related Overviews
WalletsOctober 14, 2026
What is a paymaster?
A paymaster sponsors gas for a user operation, or lets the user pay that fee in an ERC-20 token.
WalletsJune 24, 2026
What is a crypto bundler?
A crypto bundler combines multiple transactions or operations into one onchain submission across batching, MEV, rollups, token launches, and account abstraction.
WalletsJune 26, 2023
What are user operations?
Definitions, Parameters, and How They Work

Build blockchain magic
Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.