Everything You Need For
Account Abstraction (ERC-4337)

Everything You Need For
Account Abstraction (ERC-4337)

The Home for Account Abstraction

The home for Account Abstraction — whether you're starting to learn about ERC-4337, or shipping apps with smart wallets at scale.

Everything you need for Account Abstraction — whether you're learning about ERC-4337, or shipping apps with smart wallets at scale.

What is Account Abstraction (ERC-4337)?

What is Account Abstraction (ERC-4337)?

What is Account Abstraction (ERC-4337)?

Account abstraction refers to the use of smart accounts for users on the Ethereum blockchain — creating those accounts as independent smart contracts and unlocking powerful new features — such as user onboarding without requiring a wallet, account recoverability with enhanced security, and smooth user experiences without gas fees or transaction popups.


Powered by the ERC-4337 standard, account abstraction replaces the need for users to create an externally-owned wallet (EOA) such as MetaMask — mitigating its messy onboarding process, difficult user experience, and the security risks that come with traditional self-custodial wallets while allowing users to retain full control of their assets.

Account abstraction refers to the use of smart accounts for users on the Ethereum blockchain — creating those accounts as independent smart contracts and unlocking powerful new features — such as user onboarding without requiring a wallet, account recoverability with enhanced security, and smooth user experiences without gas fees or transaction popups.


Powered by the ERC-4337 standard, account abstraction replaces the need for users to create an externally-owned wallet (EOA) such as MetaMask — mitigating its messy onboarding process, difficult user experience, and the security risks that come with traditional self-custodial wallets while allowing users to retain full control of their assets.

What does Account Abstraction (ERC-4337) enable?

What does Account Abstraction (ERC-4337) enable?

Smart accounts unlock functionality that is not possible with EOAs, such as:


  • Auto-generated wallets: Create new non-custodial wallets for your users when they sign up for your app, website, or game automatically

  • Wallet recoverability: Create recoverable wallets for users that don’t require private keys or seed phrases

  • Transaction batching: Execute multiple transactions at once to create delightful user experiences, like shopping cart & checkout flows

  • Multisig wallets: Create shared wallets for multiple people, with enhanced security & tiered permissions

  • Custom transactions: Enable signless transactions, set spend limits, & cover users’ fees with gasless for the smoothest app UX

Smart accounts unlock functionality that is not possible with EOAs, such as:


  • Auto-generated wallets: Create new non-custodial wallets for your users when they sign up for your app, website, or game automatically

  • Wallet recoverability: Create recoverable wallets for users that don’t require private keys or seed phrases

  • Transaction batching: Execute multiple transactions at once to create delightful user experiences, like shopping cart & checkout flows

  • Multisig wallets: Create shared wallets for multiple people, with enhanced security & tiered permissions

  • Custom transactions: Enable signless transactions, set spend limits, & cover users’ fees with gasless for the smoothest app UX

Learn more

How does Account Abstraction work?

How does Account Abstraction work?

The most important innovation of account abstraction and ERC-4337 is not contract-based wallets: it’s the ability to abstract (separate) the need for separate EOAs or contract accounts.


Account abstraction enables the creation of smart accounts, which are independent smart contracts that can initiate and execute transactions without the need for an EOA. Any custom operation that can be defined in the form of smart contract code can be implemented in smart accounts.


The operation of smart accounts, or account abstracted wallets, is fairly simple. Instead of sending regular transactions as EOAs do, smart accounts use objects called UserOperations, which represent an operation that is to be conducted on behalf of the user.


The UserOperation object has multiple data elements that describe the type of transaction, the token, limit≤ and price for gas at various steps of the transaction, the signature to validate the transaction, and other metadata.


Every time a smart account sends a UserOperation, it goes into the common waiting area for all UserOperations called the alt mempool. These requests are then bundled by bundlers, who are similar to nodes verifying regular transactions. They even use the same logic as mining or validator nodes to prioritize transactions where they can extract the most value.


The bundled UserOperations are sent through a single whitelisted “Entry Point,” where every individual UserOperation is verified and executed by calling different functions. As UserOperations can include any type of logic, it allows users to implement various customizations to how they want to manage their accounts and the funds in them.

Learn more