Web3 wallets are essential for interacting with blockchain, however the user experience of many wallets available today isn’t great and causing a major obstacle to widespread adoption.
Navigating the blockchain space is an intimidating experience for new users, requiring them to
- create a wallet
- store their private keys
- purchase & transfer funds
- pay gas fees and
- sign every action they take on a dApp
ERC-4337: Account Abstraction for Ethereum
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. ERC-4337 primary goal is to combine the features of externally owned accounts (EOAs) and smart contract accounts into a single contract account, enabling transactions and contract creations within a single account.
How transactions work in Ethereum smart accounts
The existing limitations of Ethereum’s account-based model necessitated the development of ERC-4337. Traditional crypto wallets, like MetaMask, predominantly rely on EOAs, which come with certain constraints. These include
- reliance on private keys for account access
- complex wallet setup procedures
- risk of losing access to the wallet if the seed phrase is misplaced
Explained Externally-owned accounts (EOAs)
Externally-owned accounts are wallets owned (by users) and operated manually from outside the blockchain ecosystem. They are managed using a public-private key pair and whoever owns the private key can use the assets stored in the EOA. These design limitations present many challenges:
- Poor security: An EOA’s entire security is linked to one seed phrase. If you lose your private key and seed phrase, you may lose all your assets with no social recovery options. Besides, you can’t set spend limits, 2FAs, etc. for security.
- Lack of customization: Transactions from EOAs cannot be customized or automated. Owners must manually sign every transaction.
- Gas payment: EOA owners must own ETH at all times to pay gas for transactions & they cannot use any other token.
- Poor overall UX: All of the above makes a poor user experience which isn’t suited for most new users.
Contract accounts are smart contracts functioning as a crypto wallet. It is possible to code various logic into the smart contracts to customize transactions and add other features to contract accounts. Contract accounts don’t have a private key or seed phrase and they cannot initiate a transaction. They can only execute a certain action when a transaction from an EOA triggers the smart contract code.
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
- multi-factor authentication
- easy wallet recovery
- automated & signless transactions
- team wallets
This makes the web3 experience safer, faster, and more flexible.