Comment on page
Account abstraction is a concept introduced by Ethereum Improvement Proposal EIP-4337, which aims to improve the flexibility and usability of Ethereum accounts. It allows the creation of smart contract accounts with user-defined logic to handle transaction validation and execution, instead of relying solely on the built-in transaction processing of EOAs.
With account abstraction, users can:
- Implement custom transaction validation rules
- Use alternative transaction fee payment methods (e.g., ERC20 tokens instead of Ether)
- Improve privacy by obfuscating transaction details
- Simplify user experience by bundling multiple actions in a single transaction
A Smart Account is a smart contract implementing ERC-4337 representing an account that receives user operations and processes verifications on it before executing them. The smart Account interacts mainly with the Entrypoint by receiving user operations, validating them and executing them.
A User Operation is the equivalent of a transaction in Account Abstraction. A User Operation specifies the account that will handle the transaction, calldata, gas fees, nonce etc… See full structure here. The User Operation is sent to a bundler that will create a transaction from it.
A paymaster is a smart contract that can sponsor (pay the gas) for user operations. If a user operation specifies that the gas will be paid by a paymaster, the paymaster will check if the user operation is corresponding to custom criteria and it will pay for the transaction. A paymaster can be used for gasless transactions, pay fees with stablecoins or with custom tokens.
The bundler is a node connected to a block builder on the blockchain that receives user operations a bundles them into an Ethereum transaction.
The Entrypoint is the main contract responsible of Account Abstraction. It is permission-less meaning that no one owns it and it processes user operations, redirects them to the accounts, sends the receipts to paymaster, refunds bundlers for their transaction, etc… The entrypoint is also responsible of managing stakes and deposits for the Account Abstraction system.
An aggregator is a contract trusted by accounts to verify the user operations signature. It is used to create lighter signatures when combining them for L2 rollups for example.