What is Account Abstraction?

Enter ERC-4337: a new ‘account abstraction’ standard that unlocks the power of smart contract wallets, or ‘smart accounts,’ on the Ethereum blockchain (and EVM-compatible networks).

ERC-4337 is one of the biggest upgrades to the way web3 wallets work, creating an infinitely-smoother experience for users, regardless of web3 knowledge, through smart accounts.

What Is Account Abstraction?

Account abstraction (ERC-4337) is an Ethereum update that lets you create non-custodial wallets as programmable smart contracts.

It unlocks many possibilities, such as easy wallet recovery, signless transactions, and team wallets. This makes the web3 experience safer, faster, and more flexible.

Smart contract wallets set up using account abstraction have multiple names like smart accounts, smart wallets, and account abstracted wallets. To avoid any confusion in this blog, we will only refer to them as smart accounts.

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;

  • 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.

Last updated