Imagine losing access to your life savings because you misplaced a password. This is the reality for cryptocurrency users today. ERC-4337 changes that.
It aims to remove traditional barriers to blockchain adoption by simplifying key management and gas fee handling while preserving decentralization and security.
ERC-4337 augments user interactions with the blockchain by enabling smart contract wallets to function as primary user accounts without modifying Ethereum's consensus layer.
In this article, we'll explain ERC-4337, the problems it solves, its impact on blockchain usability, and how to implement it.
ERC-4337 is an account abstraction proposal allowing smart contract wallets to serve as the main user accounts for interacting with the blockchain.
Usability improvements, such as programmable recovery, gasless transactions, and simplified onboarding, make blockchain applications more accessible by allowing familiar authentication methods. These enhancements help lower the barriers to mainstream adoption.
On a technical level, ERC-4337 enables programmable transaction rules, automated workflows, and batch processing. The core advantage of smart contract wallets lies in their programmability—any logic you can express in code can be integrated directly into transaction execution. This flexibility empowers developers to craft innovative features. It also allows them to handle complex operations securely by leveraging the wallet’s ability to adapt to specific needs through tailored programming.
While previous Ethereum Improvement Proposals (EIPs) required consensus-layer changes, ERC-4337 implements its functionality through a higher-layer infrastructure independent of the consensus layer. It introduces new components that work alongside existing Ethereum systems.
The specification creates a parallel transaction handling system through a new type of transaction-like object called UserOperation
. These operations flow through a dedicated alt-mempool (a temporary holding area for pending transactions) and are processed by specialized nodes called Bundlers.
This architecture adds powerful new capabilities for customizing users' interactions with the blockchain. In simple terms, ERC-4337 makes Ethereum accounts easier to use by removing the need for private key management and enabling smart wallet features.
But why do we even need this?
ERC-4337 addresses the limitations of traditional blockchain accounts by enhancing security, simplifying user experience, and enabling more sophisticated and efficient applications.
To understand why this is critical, let’s first explore Ethereum's traditional user account system, which has major drawbacks that add barriers to widespread adoption.
At its core, the traditional system relied heavily on externally owned accounts (EOAs), such as Metamask and Coinbase Wallet. EOAs require users to manage private keys directly, creating a significant burden of responsibility. Users must securely store private keys and seed phrases without built-in recovery mechanisms. The consequences of mistakes can be severe, often leading to a permanent loss of funds.
Beyond key management, users face technical barriers that make blockchain interactions unnecessarily complex. Every transaction requires users to:
Moreover, EOAs cannot batch multiple operations or implement sophisticated programmable logic to automate common tasks.
From a business perspective, creating user-friendly applications is challenging for both decentralized application (dApp) developers and enterprises building on Ethereum. Companies cannot sponsor user transactions, customize transaction flows, or implement enterprise-grade security features. These limitations make it difficult to create seamless user experiences. As a result, web3 companies fail to match the quality and usability of traditional web applications.
Additionally, the onboarding process remains particularly problematic with EOAs. Users can't implement familiar authentication methods and must cover transaction fees themselves. As a result, decentralized applications (dApps) struggle to attract users who expect interactions similar to those found in traditional web applications.
To address these limitations, smart contract accounts were introduced as an alternative. As the name suggests, these are programmable accounts deployed as smart contracts on the blockchain. This enhances their functionality with multi-signature support, transaction batching, and customizable security rules. Smart contract wallets like Safe and Argent offer features like social recovery, spending limits, and automated transactions.
Yet, in their traditional form, smart contract accounts still face significant constraints. They depend on EOAs to initiate transactions, requiring users to maintain both types of accounts. This dependency means users still need to manage private keys and hold ETH for the gas fees that the EOA transaction would incur, negating many potential benefits. Additionally, the complexity of managing smart contract accounts often exceeds that of basic EOAs. This creates an even steeper learning curve for new users.
Moreover, the interaction between EOAs and smart contract accounts also presents technical challenges. Every interaction with a smart contract wallet requires at least two transactions: one to approve an action and another to execute it. This not only increases costs but also complicates the user experience. Furthermore, needing an underlying EOA makes implementing true account recovery mechanisms or delegating transaction fees difficult.
The architecture of ERC-4337 mirrors the functionality of a transaction mempool within a separate system. This provides a flexible verification model.
To understand what this means, let’s first explain how regular Ethereum transactions work:
Instead of changing the blockchain's core protocol, ERC-4337 introduces a supplementary layer to achieve its desired outcome. Without modifying the mempool and validators to be able to accept account abstraction “transactions,” a new layer is added to perform the validation.
This is achieved by introducing a pseudo-transaction object called a UserOperation
, which is used as follows:
UserOperation
objects.UserOperationPool
implemented on each bundler.EntryPoint
contract (a centralized hub for processing and executing) to include the transactions in the next block.A Bundler, in the context of account abstraction (ERC-4337), is a specialized node that verifies and bundles batches of UserOperations
together to submit to the EntryPoint
contract. It replaces the usual validator and monitors the UserOperationPool
. It also validates and packages a set of these objects into a transaction to be included in a block by making a handleOps
call to the EntryPoint
contract. This enables smart contract wallets containing arbitrary verification logic, removing the need for EOAs. The diagram below illustrates this flow.
After this high-level overview, let’s explore ERC-4337’s operations in detail.
The following steps describe the account abstraction process in more detail.
UserOperation
object is createdA user creates a UserOperation
object, which allows smart contract wallets to initiate and manage transactions flexibly, bypassing the limitations of traditional EOAs. This object acts as a pseudo-transaction and contains the following fields:
struct UserOperation {
address sender;
uint256 nonce;
bytes initCode;
bytes callData;
uint256 callGasLimit;
uint256 verificationGasLimit;
uint256 preVerificationGas;
uint256 maxFeePerGas;
uint256 maxPriotrityFeePerGas;
bytes paymasterAndData;
bytes signature;
}
The UserOperation
objects are sent to the alt-mempool where actions await execution. Bundlers check the struct members of each UserOperation
object before simulating its validation. This check confirms that the UserOperation
is valid and can pay for its execution.
EntryPoint::simulateValidation
will call sender::validateUserOp
on the smart contract account to verify the validity of the signature.
If these checks pass and the function reverts with a specific error, the UserOperation
will be added to the alt-mempool, ready to be bundled.
UserOperation
objects togetherValid UserOperation
objects are packed together by the bundler. The bundler then passes it to the EntryPoint
contract, which then calls the smart contract account (e.g. by calling `executeUserOp
` with the `callData
`). The account has the flexibility to determine how to interpret the call data.
One common approach involves designing the account with an executeUserOp
function. This function parses the remaining callData
into a sequence of one or more calls the account intends to execute. The bundle transaction is then included in a block.
The EntryPoint contract logic also supports paymasters that can sponsor transaction fees.
This means that protocols can optionally subsidize fees for their users, also allowing these to be paid using ERC-20 tokens. This removes the need to hold native ETH tokens. If a paymaster is used, the EntryPoint contract uses the flow in the diagram below.
A signature aggregation account contract is an optional helper for the bundler that improves the efficiency of the verification process. It includes three capabilities:
UserOp
signatureUserOperation
objectsUserOp
signatures into a single value.
Libraries like Biconomy and Alchemy provide out-of-the-box solutions for developers to implement account abstraction. These include fully ERC-4337 compatible smart contracts, bundler and paymaster infrastructure, and SDKs to integrate account abstraction into a project.
Specifically, Biconomy’s SDKv4 is a comprehensive toolkit and a major upgrade designed to make integrating account abstraction easier, faster, and more efficient for developers. This latest iteration introduces a streamlined configuration process, a unified master package for ERC-4337 services, and simplified methods for building and sending UserOps.
For a complete implementation guide, please visit Biconomy’s SDK GitHub.
ERC-4337 improves blockchain interactions substantially. It enables sophisticated security features such as multi-signature wallet support, social recovery mechanisms, and time-locked transactions. These features allow users to implement custom security rules matching their needs. At the same time, account abstraction maintains the decentralized nature of blockchain technology.
Enabling features like email-based account recovery, gasless transactions, and simplified onboarding, ERC-4337 makes interactions feel familiar and lowers barriers to mainstream adoption. It also offers technical utility with programmable transaction rules, automated operations, and batch processing, allowing developers to build more sophisticated and efficient applications.
Several major projects have implemented or are developing ERC-4337 solutions, demonstrating its practical value.
Argent’s smart contract wallets offer social recovery and gas abstraction features, making blockchain interactions more user-friendly. Safe provides enterprise-grade multi-signature functionality.
Among enterprises, Visa has deployed experimental paymasters, demonstrating how traditional financial institutions can integrate blockchain technology.
Gaming platforms like Web3Games use account abstraction for seamless in-game transactions, while in DeFi, Plena Finance uses it to create a Web3 super app, simplifying interactions.
Infrastructure providers also play a crucial role in the ecosystem. Biconomy offers various account abstraction services, and Alchemy has a comprehensive SDK, making it easier for developers to implement ERC-4337 in their dApps.
ERC-4337 is a pivotal advancement in blockchain technology. It addresses fundamental usability and security challenges while maintaining decentralization. Enabling smart contract wallets as primary accounts is vital to mainstream adoption. Fundamentally, ERC-4337 combines technical advancement with a more user-friendly experience.
As more projects adopt and build upon ERC-4337, we can see a new generation of dApps making blockchain accessible to everyone.