Account abstraction is a blockchain technology that allows users to use smart contracts as their accounts. In traditional blockchain systems, most users have an Externally Owned Account (EOA) as their default account. EOAs are controlled by an external private key and are the default account model for most users on blockchain networks that use the Ethereum Virtual Machine (EVM). However, EOAs require a good understanding of how a blockchain works to use safely, which can be a barrier for some users.
Smart Contract Accounts
Contract accounts offer a solution to this issue by providing a better user experience. They allow for the implementation of arbitrary verification logic, such as multi-sig verification, and enable sponsored transactions, where users can pay transaction fees in ERC-20 tokens or with custom fee logic. Contract accounts also provide enhanced security features, such as social recovery and time-locks, and enable atomic multi-operations, which allow users to complete multiple operations with a single transaction. Often contract accounts are called smart contract wallets.
- 🔑 Arbitrary verification logic: Support single and multi-sig verification and any arbitrary signature scheme.
- 💱 Sponsored transactions: Allow users to pay transaction fees in ERC-20 tokens or build your own fee logic, including sponsoring transaction fees on your app.
- 🔒 Account security: Enable social recovery and security features like time-locks and withdraw limits.
- ⚛️ Atomic multi-operations: Build flows that better align with your user's intent such as trading in one click rather than approving and swapping separately.
While contract accounts offer many benefits, there are also some downsides to consider. One issue is the potential for signing issues, as not all apps may follow the EIP-1271 standard for validating signatures, which may make them incompatible with contract accounts. In addition, contract accounts may have a higher gas cost, particularly on the Ethereum mainnet, although this may not be as much of a concern on layer 2 scaling solutions. In fact, some layer 2 scaling solutions like zk rollups may actually have lower gas costs with EIP-4337 transactions than EOA transactions!
There have been several attempts at implementing account abstraction in the past, such as EIP-86 and EIP-2938, but these required consensus layer changes which made them impractical to implement. However, the new EIP-4337 standard offers a new approach to account abstraction that does not require consensus layer changes, allowing developers to start building with this universal standard today.
Building with contract accounts can be challenging for developers as it introduces additional complexity in managing the interaction between different components. Stackup is a suite of open source tools that aims to make it easier for developers to build applications with account abstraction. Overall, account abstraction is a promising technology that offers the potential for improved user experiences and enhanced security and functionality in blockchain applications.
EIP-4337 offers exciting opportunities for developers and users of blockchain technology. By allowing for the use of contract accounts without the need for consensus layer changes, it opens up a world of possibilities for enhanced user experiences and new functionality in blockchain applications. With its universal standard, EIP-4337 has the potential to be widely adopted and become the go-to approach for implementing contract accounts. This could lead to the development of a whole new generation of blockchain apps that offer a much more user-friendly and feature-rich experience.
Want to try Account Abstraction yourself?
Test out Stackup's quickstart guide!