The problem account abstraction solves
Ethereum has two account types. An externally owned account (EOA) is controlled by one private key; a contract account is controlled by code. Only EOAs could start transactions, which ethereum.org says makes batching hard and forces users to always hold ETH to pay fees.[1]
That design puts the whole account behind one secret. Lose the seed phrase and the funds are gone; leak it and they are stolen. There is no built-in daily limit, no second signer, no recovery.
Account abstraction means letting code decide what counts as a valid transaction for an account. Ethereum.org lists what that enables: recovering lost or exposed keys with multiple backups, sharing account security across trusted devices or people, and letting someone else pay your gas.[1]
Ethereum.org describes two routes to the same goal: upgrading EOAs so smart contracts can control them (EIP-7702), or adding a separate transaction system that runs in parallel to the existing protocol (ERC-4337). Either way the outcome is access to Ethereum through smart contract wallets, including batched actions such as approve and swap in one step.[1]
How ERC-4337 works
ERC-4337, created on September 29, 2021, achieves this without consensus-layer changes. Instead of a transaction, the user signs a UserOperation: a structure describing the call, gas limits and a signature, sent to a separate alt-mempool.[2]
A bundler collects UserOperations and submits them in one normal transaction to the EntryPoint contract, calling handleOps. For each operation the EntryPoint first calls the account's validation function, then executes the call and charges gas.[2]
Three optional helpers extend the flow. A factory deploys the account on first use, so a user can get an address before any contract exists. A paymaster agrees to pay the gas, in exchange for a token or as a sponsorship. An aggregator validates many signatures at once to save gas.[2]
Because validation is code, the account can check a passkey, a multisig threshold, or a session key with limited rights. The EntryPoint only needs the validation step to succeed and the gas to be paid.[3]
The ERC-4337 documentation lists what the architecture supports in practice: custom signature schemes such as passkeys and multisig, gasless transactions through paymasters, one-click flows through batched calls, modular accounts with upgrades and recovery, and wallet creation without an EOA or upfront ETH.[3]
It also contrasts the design with centralized relayers. Anyone can run a bundler and read the shared alt-mempool, so no single company decides which operations get included. The same documentation covers layer 2 variants, including RIP-7560, a proposal for native account abstraction on rollups.[3]
| Component | Who runs it | Job |
|---|---|---|
| Smart account | The user (contract) | Validates signatures and executes calls |
| Bundler | Node operators | Packages UserOperations into a transaction |
| EntryPoint | Singleton contract | Runs validation, execution and gas accounting |
| Paymaster | Apps or services | Pays gas on the user's behalf |
| Factory | Wallet developers | Deploys the account on first use |
A worked example: one click, three actions
A user with a smart account and no ETH wants to swap USDC for another token. With an EOA that takes an ETH purchase, then approve, then swap: three steps and ETH on hand before the first.
With ERC-4337, the wallet builds one UserOperation whose call data batches approve and swap. It attaches paymaster data, where the paymaster agrees to cover gas and charge the user in USDC. The user signs once, for example with a device passkey.[2]
A bundler submits it to the EntryPoint. The EntryPoint validates the account's signature, validates the paymaster, executes both calls in order, then settles gas with the paymaster. The user never held ETH, and one signature covered two contract calls.[2]
The cost is overhead. Validation, the EntryPoint call and paymaster checks add gas compared with a plain EOA transaction, so the overhead matters less on layer 2 networks where gas is cheaper.
The EntryPoint contract was deployed to Ethereum mainnet on March 1, 2023. Ethereum.org reports that ERC-4337 has seen more than 26 million smart accounts deployed and more than 170 million UserOperations processed.[1]
Inside a UserOperation
The EIP spells out every field. A UserOperation names the sender account and a nonce, optional factory and factoryData for first-time deployment, the callData to execute, and separate gas limits: callGasLimit for the main call, verificationGasLimit for validation, and preVerificationGas to compensate the bundler for overhead.[2]
Fee fields mirror normal transactions, maxFeePerGas and maxPriorityFeePerGas, followed by optional paymaster fields and the signature. On chain the EntryPoint packs some of these: accountGasLimits concatenates the two 16-byte gas limits into one 32-byte word, and gasFees does the same for the two fee fields.[2]
The nonce also differs from an EOA's. ERC-4337 treats the single uint256 nonce as a 192-bit key plus a 64-bit sequence, exposed by the EntryPoint's getNonce function. A wallet can use separate keys for independent streams of operations, so one pending operation does not block all others.[2]
Bundlers simulate each UserOperation before including it, because they pay gas for the bundle up front and are reimbursed through the EntryPoint. The EIP's validation rules restrict what the validation step may access, so one operation cannot cause others in the same bundle to fail.[2]
EIP-7702: existing addresses get smart features
ERC-4337 has one friction: a smart account is a new address, so users must move assets. EIP-7702, created on May 7, 2024, adds a transaction type that lets an EOA set its code to point at a contract.[4]
The mechanism is precise. The transaction carries authorization tuples of chain_id, address, nonce and signature. For each, a delegation indicator, 0xef0100 followed by the contract address, is written to the authorizing account's code, and calls to that account then run the delegated code.[4]
EIP-7702 activated with Ethereum's Pectra upgrade at epoch 364032 on May 7, 2025. It works alongside ERC-4337: a delegated EOA can run smart account code that is compatible with the 4337 EntryPoint, bundlers and paymasters.[5]
One authorization list can carry several tuples, and each is bound to a chain ID and the account's nonce. EIP-7702 requires the chain ID to be 0 or the current chain's ID, so a signature with a specific chain ID cannot be replayed elsewhere, while chain ID 0 is valid on any chain. Check which one a wallet asks you to sign.[4]
What it means for wallets and security
For users the visible changes are gas sponsorship, batched actions, passkey sign-in and recovery options. The wallet and wallet-infrastructure projects linked below, including Safe, Privy, Dynamic and thirdweb, are listed in our directory.
Security moves rather than disappears. With an EOA the risk is the key. With a smart account, the risk includes the account contract, its modules and any paymaster or session key logic. The EIP's security considerations say the EntryPoint must be audited and formally verified, because it is a central trust point for all of ERC-4337.[2]
self-custody still applies. A smart account you control through your own signers is self-custodial; an embedded wallet whose recovery depends on a provider's infrastructure carries that provider's risk.
Paymasters bring their own risk. Because a paymaster pays for operations it did not sign, a hostile user can try to make it pay for work that later fails. The ERC-4337 documentation has a dedicated section on security and griefing protection, and the EIP requires paymasters to deposit and in some cases stake with the EntryPoint so misbehavior has a cost.[3]
See also: Safe · Privy · Dynamic · thirdweb · Best software wallets
The bottom line
If you build a consumer app, ERC-4337 with a paymaster removes the need to buy ETH before the first transaction. If you already hold assets in an EOA, EIP-7702 lets you add batching and sponsorship without moving funds. In both cases the security review shifts from guarding one key to auditing the account code you delegate to. Start on a layer 2 network, where the extra validation gas is cheaper, and move to mainnet once the flow is proven.
Educational content, not financial advice. Crypto assets are volatile; do your own research.