EIP-8130: AA by Account Configuration
Author: Chris Hunter (@chunter-cb, Coinbase/Base) Status: Draft | Category: Core (Standards Track) Created: October 14, 2025 Requires: EIP-2718 (EIP-7702 dependency dropped Apr 14; EIP-8130 now defines its own delegation indicator) Latest spec: ethereum/EIPs eip-8130.md
At a Glance
What it is. An account-abstraction standard where accounts declare their validation logic by registering an onchain authenticator contract (formerly called a verifier), without running wallet code during transaction validation.
Problem it solves. Lets wallets ship programmable validation (passkeys, PQ signatures, custom policies) without the mempool complexity and statelessness pressure that comes from executing arbitrary account code inside the validation path. Nodes filter transactions by looking up the declared authenticator, not by simulating wallet code.
Why an EIP-8141 reader should care. EIP-8130 is EIP-8141's most direct competitor. Both target native AA; they differ on whether validation is full EVM (8141) or a constrained authenticator interface (8130). Base is actively implementing 8130, which matters for how L2s adopt native AA in practice.
Overview
Summary provided by the author before the verifier-to-authenticator rename:
EIP-8130 is a full cross-chain account standard with verifier-based validation that is both programmable and operationally predictable. Enables any validation logic, batched calls, gas abstraction while giving nodes simpler policy surfaces, better validation performance, and lower VOPS/statelessness pressure than frame-based validation models. It also gives multi-chain wallets a shared account standard for portability and provides an operating model for high-throughput chains. Base is implementing.
Concretely, EIP-8130 introduces a new EIP-2718 transaction type and an onchain Account Configuration system. Instead of allowing arbitrary EVM execution during validation (as EIP-8141 does), accounts register actors with onchain authenticator contracts. Transactions declare which authenticator to use, enabling nodes to filter transactions without executing wallet code. No EVM changes (no new opcodes) are required. For implementation details, see the latest spec.
Core Design
Account Configuration Contract: A system contract where accounts register actors. Each actor is identified by an actorId (32-byte identifier derived by the authenticator from public key material) and associated with an authenticator contract, scope byte, optional expiry, and optional policy fields.
Authenticators: Contracts that implement authenticate(hash, data) via STATICCALL and return the authenticated actorId. The protocol routes by authenticator address:
K1_AUTHENTICATOR(address(1)) - native secp256k1, no EVM execution needed- Canonical authenticators - accepted by compliant nodes through the canonical set
- Non-canonical authenticators - usable inside ordinary EVM/account-configuration flows, but not accepted for direct 8130 transaction authentication unless a node diverges from the canonical set
Implicit EOA Authorization: Every existing EOA can send AA transactions immediately, no registration needed. If the inline default-EOA config has not revoked the secp256k1 self actor and actorId == bytes32(bytes20(account)), it is implicitly authorized.
Transaction Format:
AA_TX_TYPE || rlp([
chain_id, from, nonce_key, nonce_sequence, expiry,
max_priority_fee_per_gas, max_fee_per_gas, gas_limit,
account_changes, calls, payer,
sender_auth, payer_auth
])Call Phases: Calls are organized into phases. Within a phase, calls are atomic (all-or-nothing). Completed phases persist even if later phases revert. This enables patterns like [[sponsor_payment], [user_action_a, user_action_b]].
2D Nonce System: nonce_key selects the channel, nonce_sequence is the sequence within it. NONCE_KEY_MAX enables nonce-free mode with expiry-only replay protection.
Account Changes: A single transaction can create an account (CREATE2), modify owner configuration, and set EIP-7702-style delegation, all before call execution.
Gas Sponsorship: payer field declares the sponsor, payer_auth authenticates them using the same authenticator infrastructure. The payer is charged for all gas.
Mempool Strategy
EIP-8130's key insight: validation never executes wallet code. Nodes verify by:
- Reading
owner_config(1 SLOAD) - Calling the declared authenticator via STATICCALL (or using a native implementation)
- Checking the returned
actorIdagainst the stored config
Nodes maintain a canonical authenticator set. For canonical authenticators with known gas bounds, no tracing infrastructure is needed. Non-canonical authenticators are rejected for direct 8130 transaction authentication unless a node intentionally diverges from the spec.
Account Lock: When locked, the owner set is frozen. Nodes can cache owner state and apply higher mempool rate limits since only nonce consumption can invalidate transactions.
Key Differences from EIP-8141
| Aspect | EIP-8130 | EIP-8141 |
|---|---|---|
| Validation model | Declarative: authenticator address in tx -> STATICCALL authenticator | Programmable: arbitrary EVM in VERIFY frames |
| New opcodes | None | 6 (APPROVE, TXPARAM, FRAMEDATALOAD, FRAMEDATACOPY, FRAMEPARAM, SIGPARAM) |
| Mempool safety | Structural: canonical authenticator set, no wallet code execution | Behavioral: banned opcodes, gas caps, validation prefix rules |
| Signature schemes | Deploy authenticator contract, add to canonical set | Account code plus protocol signatures or ARBITRARY witnesses; verifier calls APPROVE |
| Extensibility | Permissionless authenticator deployment, but nodes only accept canonical authenticators on the 8130 path | Fully arbitrary within frame architecture |
| Gas sponsorship | payer + payer_auth fields | VERIFY frame for sponsor |
| Atomic batching | Call phases (array of arrays) | Flags field bit 2 on consecutive frames of any mode; validation-prefix batches are excluded from the restrictive mempool |
| Account creation | CREATE2 via account_changes | DEFAULT deploy frame through any trace-compatible factory |
| EOA support | Implicit secp256k1 authorization, auto-delegation to default wallet | Default code (secp256k1 only; P256 is outer-list protocol validation but not default-code authorization) |
| Owner management | Onchain owner_config storage, portable config changes | Account code defines its own owner model |
| Cross-chain | Config changes with chain_id = 0 replay across chains | Not addressed |
| EIP-7702 | Delegation via account_changes entries | No authorization list (PQ incompatible) |
| Async execution | Compatible (no EVM in validation) | Incompatible with async models (requires EVM for inclusion) |
Activity
- Sustained iteration from January through July 2026
- EthMagicians thread at ethereum-magicians.org/t/eip-8130-account-abstraction-by-account-configurations/25952
- Key participants: chunter (author), rmeissner (Safe), Helkomine, karlb (Celo)
- Implementation: Base is implementing (per the author)
- Celo migration interest (Jun 5 – Jun 30, 2026): karlb explores migrating Celo's CIP-64 fee-currency transactions onto EIP-8130 (thread posts #12-20). Two paths under discussion: a backwards-compatible shim where an RPC layer repackages CIP-64 transactions as EIP-8130 transactions with a CIP64Verifier validating the original signature, or native EIP-8130 signing with fee abstraction expressed in the call structure (sequencer as payer). chunter (post #19, Jun 29) notes that since authenticators just verify a hash, the CIP-64 preimage can be computed on the 8130 path with the rest of the machinery unchanged; karlb (post #20, Jun 30) pushes back that this still requires execution-client changes. First concrete L2 migration interest in EIP-8130 beyond Base.
- Recent merges (June-July 2026): a sustained finalization burst landed across Jun 1 – Jul 13. The first wave (Jun 1 – Jun 10) shipped #11752, #11757, #11764 (
owners->actors), #11765, #11766, #11767, #11769, #11782, #11785 (verifier->authenticator), #11791, and #11794. PR #11751 (delegated account creation) closed Jun 18 without merge. The July wave added #11847 (actor-policy clarification and opaque metadata simplification, merged Jul 2), #11903 (renumberAA_TX_TYPEto0x79,AA_PAYER_TYPEto0x7A, and addeth_call/eth_estimateGassupport for AA transaction fields, merged Jul 8), and #11918 (scope-grant rework, merged Jul 13): the singlePAYERgrant splits intoSELF_PAYERandSPONSOR_PAYER(self-pay vs. sponsorship is now defined relationally, by whether the payer account equals the sender account), theSIGNERscope bit is removed in favor of anoperational := admin || (SENDER && !POLICY)predicate for ERC-1271 signing, and the account-lock lifecycle simplifies to lock/unlock only through a dedicated signedapplySignedLockChangescall. A companion PR, #11919 (opened Jul 13, still open), lets initial actors carry an optionalexpiryat account creation/import instead of only through a post-creation config change. The terminology and RPC surface are now much closer to implementation-ready. - Tx-type renumbering explained on the thread (Jul 6 – Jul 8, 2026): chunter posts #21 (Jul 6) and #22 (Jul 8, thread post) walk through the
AA_TX_TYPE/AA_PAYER_TYPErenumbering to0x79/0x7Ashipped in PR #11903, agreeing to keep exploring alternative type numbers and noting the OP-stack CIP-64 fork keeps that migration execution-layer-only until deprecation. - Base deployment signal (Jul 15, 2026): the AllWalletDevs #40 summary records chunter saying Base plans to launch EIP-8130 in its September fork. ERC-8286, the modular-account standard for EIP-8141, was presented in the same meeting, giving wallet developers a direct comparison between the two native-AA paths.
- ERC-8340 metadata companion (opened Jul 15, 2026): ERC PR #1883 defines a deterministic CBOR layout for EIP-8130's opaque
metadatafield, including attribution, memos, call/phase scope, and selectively disclosed offchain commitments. It is a draft application-layer companion and does not change EIP-8130's core authentication or execution rules.
Strengths
- Cross-chain account standard: shared account standard for multi-chain wallets, with owner config changes that can replay deterministically across chains (
chain_id = 0). - Programmable but operationally predictable validation: authenticator contracts are programmable (any signature logic can be expressed in an authenticator), while the canonical set + known gas bounds give nodes predictable validation cost. Lower VOPS / statelessness pressure than frame-based validation models (no wallet code during validation, simpler policy surfaces).
- Async-execution compatible: nodes can implement authenticator logic natively for maximum throughput, compatible with Monad and async models (EIP-7886).
- Incremental scheme adoption: nodes add new signature schemes by updating the canonical authenticator set, not via protocol upgrade.
Weaknesses
- Validation expressiveness is bounded by the authenticator interface: authenticators implement
authenticate(hash, data) -> actorId, which is pure authentication. Rules that require mutable state or complex side-effecting logic (time-based policies, state-dependent authorization) have to be expressed through actor scope/policy and execution-time gates. The author's framing is that this is still "programmable"; the counter-framing from EIP-8141 proponents is that the authenticator shape constrains expressiveness compared to full EVM in VERIFY frames. - Canonical-set coordination risk: nodes must agree on which authenticators are canonical. A fragmented authenticator ecosystem could limit transaction propagation.
- New system-level infrastructure: the Account Configuration Contract and Nonce Manager are new protocol system contracts.
- No value in calls: calls carry no ETH value; ETH transfers require wallet bytecode.
Continue with Competing Standards for the comparative analysis, or return to the Home page.