What Are Accounts?
On Ethereum, there are two types of accounts:- Externally Owned Accounts (EOAs): Controlled by private keys that can sign transactions.
- Smart Contract Accounts: Controlled by the code of a smart contract.
What is Account Abstraction?
Account abstraction allows smart contracts to initiate transactions (instead of just EOAs). This adds support for smart contract wallets that unlock many benefits for users, such as:- Recovery mechanisms if the private key is lost.
- Spending limits, session keys, and other security features.
- Flexibility in gas payment options, such as gas sponsorship.
- Transaction batching for better UX such as when using ERC-20 tokens.
- Alternative signature validation methods & support for different ECC algorithms.
What is Native Account Abstraction?
Native account abstraction means all accounts on Abstract are smart contract accounts and all transactions go through the same transaction lifecycle, i.e. there is no parallel system like Ethereum implements. Native account abstraction means:- All accounts implement an IAccount standard interface that defines the methods that each smart contract account must implement (at a minimum).
-
Users can still use EOA wallets such as MetaMask, however, these accounts are “converted” to the
DefaultAccount,
(which implements
IAccount
) during the transaction lifecycle. - All accounts have native support for paymasters, meaning any account can sponsor the gas fees of another account’s transaction, or pay gas fees in another ERC-20 token instead of ETH.