Account Abstraction
Background
Today, Ethereum-based blockchains support two types of accounts:
- Externally-owned accounts (EOAs): accounts controlled by ownership of a
private key
- Smart contract accounts: accounts controlled by code deployed to the network
Historically, EOA accounts have been limited in their functionality: users can
send and receive blockchain transactions signed by their private key
(s), and
nothing more.
In contrast, smart contract accounts enable limitless functionality, including:
- Batch calls: Sending multiple transactions at once
- Gas fee sponsorship: Frictionless zero-fee user transactions
- Arbitrary signing keys: Use diverse signature schemes (
P256
,BLS
, etc.) - Advanced ACLs: Assign granular usage permissions and control access lifespans
Account Abstraction attempts to blur the line between EOAs and smart contract accounts, by enabling users to replace their EOA accounts with programmatic functionality.
EIP-7702
Ritual Chain is one of the earliest blockchains to support EIP-7702: Set EOA account code, the leading account abstraction implementation, initially proposed by Vitalik Buterin.
EIP-7702 adds a new transaction type, SetCodeTx
, which enables EOA accounts to
delegate a smart contract as their implementation.
Now, in addition to regular EOA functionality, users can also use programmatic
smart contract functionality as if a contract was deployed to their EOA
address
itself. This is done by signing and sending a transaction to
address(self)
.