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-155, EIP-170, EIP-712, ERC-1271, EIP-1559, EIP-2028, EIP-2718, EIP-2929, ERC-4337, EIP-6780, EIP-7702, EIP-7708, EIP-7819 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 Keystore. 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 are required. The core EIP now carries only protocol-visible behavior; exact Keystore storage, ABI, type hashes, and code live in the canonical Base repository.
Core Design
Keystore Contract: A system contract where accounts register actors. Each actor is identified by a 32-byte actorId derived by the authenticator and associated with an authenticator contract, uint16 scope, optional expiry, and optional policy fields. Address-derived actor IDs are right-aligned in the low 20 bytes after PR #12173.
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, sender, nonce_key, nonce_sequence, valid_after, valid_before,
max_priority_fee_per_gas, max_fee_per_gas, gas_limit,
account_changes, calls, metadata, 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 a short valid_before window and consensus replay identifier.
Validity Window: valid_after and valid_before are uint64 Unix milliseconds. Actor and lock expiries remain second-denominated.
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 the actor's packed
actor_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, actor configuration is frozen. Nodes can cache the 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 | 7 (APPROVE, TXPARAM, FRAMEDATALOAD, FRAMEDATACOPY, FRAMEPARAM, SIGPARAM, SIGDATACOPY) |
| 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 DEFAULT/SENDER frames; VERIFY and approval scope are statically excluded |
| 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 Keystore actor configuration, 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 August 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. - Keystore alignment and validity windows (Aug 11, 2026): PR #12135 renames the Account Configuration contract to the Keystore, replaces a single expiry with millisecond
valid_after/valid_beforebounds, separates local epoch and sequence, consolidates signed changes, and moves contract internals to the canonical Base repository. The +214/-312 rewrite deliberately narrows the EIP to protocol surface. - Audit reconciliation (Aug 12, 2026): PR #12148 aligns self-actor revocation, canonical-authenticator enforcement, and expired unsequenced/JIT grant behavior with the Keystore implementation.
- Actor ID encoding (Aug 14, 2026): PR #12173 right-aligns address-derived actor IDs in the low 20 bytes, matching the reference contract, and clarifies self-actor revocation.
Strengths
- Cross-chain account standard: shared Keystore model for multi-chain wallets, with actor 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 Keystore and Nonce Manager are new protocol system contracts, with canonical contract internals maintained outside the core EIP.
- 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.