EIP-8141 Frame Transaction
A transaction whose validity and gas payment are defined abstractly via frames.
No ECDSA signature — sender is explicit. Authentication happens via APPROVE opcode.
Unsigned Transaction struct generic to all types which may not contain all required transaction fields
Used to perform gas estimations and access list creation
The EIP-2718 typed-transaction envelope types — the subset of TxType that
can be encoded as a 0x{type} || payload envelope. Excludes TxType::Legacy:
a legacy transaction is a bare RLP list, never a typed envelope. Decoders that
dispatch on the leading type byte match this exhaustively, so there is no
impossible Legacy arm to handle.
The same as a Transaction enum, only that blob transactions are in wrapped format, including
the blobs bundle.
PrivilegedL2Transaction is not included as it is not expected to be sent over P2P.
Maximum number of pending frame txs using a non-canonical paymaster per
paymaster address. Per OQ1, all paymasters are currently non-canonical
(FRAME_CANONICAL_PAYMASTER_CODE_HASH is unresolved in the draft EIP), so
this de-facto limits sponsored frame txs to 1 per paymaster in the pool.
EIP-8141 §Mempool MAX_VERIFY_GAS: the maximum gas
a public-mempool node should expend validating signatures and simulating the
validation prefix. Signature validation counts against this budget (rule #6),
so a frame tx whose signature_verification_cost() alone exceeds it can never
satisfy the prefix budget and must be rejected at admission.
Global cache mapping transaction hash → recovered sender address.
Keyed by tx hash (unique per transaction), so each entry is safe to reuse.
Not suitable for EIP-7702 authorization tuples where the same message hash
can correspond to different signers (the message excludes the signature).
Uses LRU eviction to avoid periodic cold-start spikes from clearing all entries.