Skip to content

Frame Transactions family (EIP-8141 / 8250 / 8272) — tracking #12456

Description

@AnkushinDaniil

Tracking issue for the frame-transaction family Nethermind is championing (EF grant). Three EIPs, each a delta on the previous, plus the EIP-7906 post-transaction frame mode.

The grant workstream is organised in eight phases; the PR index below is grouped by phase so progress can be read against it.

Sub-issues

Phase status at a glance

Phase State Where the work is
1. Specification leadership and EIP hardening Active 16 upstream EIP PRs merged, 5 open
2. Canonical onchain paymaster design Active ethereum/EIPs#12041, #12612
3. Public mempool, validation, revalidation Active #12610, #12617, #12620, #12624, #12636, #12637, #12666, #12687, #12603
4. Signature agility and post-quantum readiness Early #12513 (EIP-8288 frame type), signature-scheme registry still open upstream
5. Use-case validation Partial keyed nonces (8250), recent roots for privacy withdrawals (8272), post-tx frames (7906)
6. Nethermind prototype Active integration branch eip8141-frame-txs-devnet7, #12526
7. Support for testing and devnet work Active #12580, #12658, cross-client parity PRs, frames docker image
8. Documentation and ecosystem engagement Not started no artifacts yet

How the EIPs connect

8250 and 8272 are pure deltas on 8141 — both change the frame-tx payload, the signature hash, the TXPARAM space, and hook the 8141 processing loop.

  • 8250 replaces the payload nonce field with nonce_keys, nonce_seq, and its keyed-nonce consumption replaces 8141's payment-APPROVE nonce increment (relying on 8141's out-of-frame approval journaling).
  • 8272 appends a recent_root_references field, adds a pre-frame reference check, and reads the EIP-7843 slot.
  • 7906 adds a POST_TX frame mode that runs after the transaction body.

Combined, the payload is 11 fields: [chain_id, nonce_keys, nonce_seq, sender, frames, signatures, max_priority_fee_per_gas, max_fee_per_gas, max_fee_per_blob_gas, blob_versioned_hashes, recent_root_references]. Correct field counts: 8141 = 9, 8250 = 10 (signatures at #6), 8272 = 10 (signatures at #5), combined = 11.


Phase 1 — Specification leadership and EIP hardening

Merged upstream (ethereum/EIPs): #11930, #11931, #11955, #11958, #11959, #11960, #11961, #11963, #11966, #11967, #11968, #11970, #12003, #12008, #12067, #12068.

Open upstream:

Withdrawn or superseded: #11932, #11956, #11957, #12004, #12010, #12011.

Every open upstream PR here originates from an implementation finding on the prototype branch, which is the feedback loop the phase is meant to produce.

Phase 2 — Canonical onchain paymaster design

Outstanding for the phase: the standalone paymaster design note (solvency, reservation, revalidation assumptions) is not written yet.

Phase 3 — Public mempool, validation, and revalidation

Phase 4 — Signature agility and post-quantum readiness

Outstanding: the post-quantum readiness note, and the signature-scheme registry, which was withdrawn upstream (#12011) and needs a new form.

Phase 5 — Use-case validation

The delta EIPs are the use-case vehicles: keyed nonces for scoped and agent accounts, recent roots for privacy withdrawals that pay fees after withdrawal, post-tx frames for settlement after the transaction body.

Merged on master: #12457 (recent-root store), #12458 (keyed-nonce state), #12527 (nonce-set validity), #12572 (recent-root usable window).

Open: #12528 (reference-set validity), #12653 (8250 envelope decode), #12655 (8272 reference envelope decode), #12656 (8272 reference validation and charging), #12657 (8250 keyed-nonce validation, consumption, charging), #12659 (8272 reference opcodes), #12662 (8250 nonce introspection), #12661 (EIP-7906 POST_TX frames).

Outstanding: the use-case requirements document and the pass/fail assessment against the spec.

Phase 6 — Nethermind prototype

Integration branch eip8141-frame-txs-devnet7; narrow PRs land on it, and dependent PRs are stacked on their parent branch so each diff shows only its own change.

Merged into the integration branch: #12558 (8250 NONCE_MANAGER predeploy entry), #12591 (burn base fee), #12592 (keep the P256 precompile out of the BAL), #12593 (record zero-premium beneficiary access in the BAL), #12595 (EIP-7708 transfer log in the sender frame receipt), #12602 (unrolled-batch frame logs), #12639 (derive receipt status from the frame statuses).

Open on the integration branch: #12594 (EIP-7623 calldata floor, approved), #12643 (no contract address on a frame receipt, draft), #12660 (VERIFY frame as a truly static call), #12671 (advance struct-ref decode past the receipt extension, draft).

Stack order for the open work: 12594 → 12687; 12660 → 12666 and 12660 → 12661; 12653 → 12657 → 12662 and 12653 → 12655 → 12656 → {12659, 12658}.

Phase 7 — Support for testing and devnet work

Phase 8 — Documentation and ecosystem engagement

No artifacts yet. Explainers and the final report are due later in the plan.


Cross-EIP conflicts (championing)

Conflict Resolution
8272 RECENTROOTREFLOAD = 0xB4 collides with 8141 SIGPARAM = 0xB4 resolved — moved to 0xB5 (ethereum/EIPs#11967)
TXPARAM: 8141 and 8250 both want 0x0B; 8250 and 8272 both want 0x0D 8250 resolved — TXPARAM_NONCE_KEY_0 moved to 0x10 (ethereum/EIPs#11966); 8272 0x0F still to confirm
8272 internal: 0x0F (constants table) vs 0x0D (summary table) use 0x0F
8250 repurposes TXPARAM(0x01) nonce → nonce_seq apply fork-gated
8272 source_id: 20-byte address vs padded 32 open, align on one upstream
8272 gas formula drops 8141 signature costs resolved — full 8141 formula plus recent-root terms (ethereum/EIPs#11931)
8250 and 8272 payload listings drop 8141's signatures field resolved (ethereum/EIPs#11963, #11959)
System-contract addresses resolved — NONCE_MANAGER and RECENT_ROOT_ADDRESS pinned (ethereum/EIPs#12067, #12068)
Fork timestamps and remaining TBD constants open, coordinated cross-client

Gas surcharges (8250 first-use, 8272 recent-root) depend on the 8141 gas slice.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions