Skip to main content
This is the technical reference for EIP-8130 on Base. For what native account abstraction is and why the protocol implements it, start with Native Account Abstraction. EIP-8130 builds account abstraction into the protocol. An account registers who can act for it, and how its signatures are checked, in an onchain system contract. The chain validates each transaction against that configuration, so smart accounts work without bundlers, relays, or a separate mempool.
EIP-8130 is experimental and currently runs only on the vibenet devnet. You can learn more about connecting to vibenet here.

Network details

Client setup

Client support lives in an experimental viem fork:

Create an account and send a batch

The example below performs the full flow:
  1. Creates an account.
  2. Funds it from the faucet.
  3. Sends a batch of calls that succeed or revert together.
  4. Verifies that every phase succeeded.
create-and-send.ts
One transaction creates the account, executes the batch, and pays for gas.

Transaction structure

An 8130 transaction names a sender account, proves the sender is authorized to act for it, and carries a batch of calls. Receipts report results per phase rather than as a single status, so a transaction can succeed at the transaction level while an individual phase reverts. Check every phase; allPhasesSucceeded does this in the reference client.

Accounts

Account addresses are derived with CREATE2, so a client computes them locally and the address exists before any deployment. That is why account.address is available immediately and account.createChange can ride along in the first transaction. Each account is a small proxy contract that forwards calls to a shared implementation.

Account configuration

Authorization lives in the AccountConfiguration system contract. It records the actors an account authorizes: the onchain identities that a signer’s authorization resolves to. An account may authorize many actors and revoke each independently. Each actor entry carries: Binding an actor to a policy is the native session key model: an app receives an actor with exactly the permissions it needs, revocable at any time.

Authenticators

Signature validation is pluggable. Authenticator contracts implement:
The reference set covers: Passkeys therefore validate at the protocol level, not through wrapper contracts.

Payers

A transaction can name a payer that covers gas on the sender’s behalf, with no paymaster contract involved. Draft ERC-8168 standardizes the payer service flow: how apps discover a payer and request sponsorship.

Go deeper

Reference contracts

AccountConfiguration, account implementations, and authenticators, with Foundry tests.

Specifications

The EIP-8130 draft, and companion draft ERC-8168 for payer services.