# frames-devnet-0 spec :::info :mega: frames-devnet-0 launches **24.09.2026 09:00 CEST** (Gloas from genesis). Frames fork (EL Bogota) at **epoch 19 — 24.09.2026 11:01:36 CEST**. ::: :::info :checkered_flag: **Scope.** First devnet for [EIP-8141 Frame Transactions](https://eips.ethereum.org/EIPS/eip-8141) EL-only feature devnet: the EL activates **Bogota** at the Heze fork epoch while the CL side of Heze is suppressed (`FRAMES_ENABLED=true` in ethereum-genesis-generator) Clients at genesis: geth, nethermind, reth (EL) + lighthouse (CL). ethrex follows once its `frames-devnet-0` image carries [ethrex PR-7305](https://github.com/lambdaclass/ethrex/pull/7305). ::: ## EIP List for frames-devnet-0 | EIP | Title | Status | |--------|-----|:-----:| |[EIP-8141](https://eips.ethereum.org/EIPS/eip-8141) [`spec@b75cbe61`](https://github.com/ethereum/EIPs/blob/b75cbe61150f09a44c38843be916417283d5b7bf/EIPS/eip-8141.md) | Frame Transaction | :new: | ## Testing focus - **Frame tx lifecycle e2e**: submit type-`0x06` txs through the public mempool, land them in blocks, verify per-frame receipts (`SUCCESS`/`FAILURE`/`SKIPPED`) across clients. - **Validation-frame rules**: VERIFY frames may only mutate state via `APPROVE`; static-constraint enforcement at tx validation time; `SLOTNUM` banned during validation-prefix execution ([EIPs PR-12066](https://github.com/ethereum/EIPs/pull/12066)). - **Payer/paymaster flows**: EOA and contract paymasters, payer solvency + block-inclusion gating ([EIPs PR-12091](https://github.com/ethereum/EIPs/pull/12091)), canonical paymaster reference bytecode ([EIPs PR-12041](https://github.com/ethereum/EIPs/pull/12041)). - **Atomic batches**: multi-EXECUTE-frame txs, rollback semantics when a later frame fails. - **Fork transition**: EL Bogota at epoch 19 while the CL stays on Gloas. - **Mempool behavior**: dedicated frame-tx mempool section, replacement rules, blob frame txs. - **Cross-client consensus**: geth, nethermind and reth at genesis, ethrex to follow — the real goal is shaking out spec ambiguities before more clients implement (test-case tracker: [execution-specs discussion #3358](https://github.com/ethereum/execution-specs/discussions/3358)). ### Specs & Tests **Execution Layer** - [x] target [tests-frames-devnet@v0.3.0](https://github.com/ethereum/execution-specs/releases/tag/tests-frames-devnet@v0.3.0) — branch [`devnets/frames/0`](https://github.com/ethereum/execution-specs/tree/devnets/frames/0) - [EIP-8141 implementation tracker — execution-specs ISSUE-2829](https://github.com/ethereum/execution-specs/issues/2829) Open :exclamation: - [PR-3047 - Frame Transactions (EIP-8141)](https://github.com/ethereum/execution-specs/pull/3047) Merged :heavy_check_mark: — canonical EELS implementation + test suite - [PR-3192 - Re-factor Amsterdam + Preparation for EIP-8141](https://github.com/ethereum/execution-specs/pull/3192) Merged :heavy_check_mark: - [PR-3232 - tests(amsterdam): pin receipt status of top-frame OOG txs in multi-tx blocks](https://github.com/ethereum/execution-specs/pull/3232) Merged :heavy_check_mark: - Hive: no 8141 simulator support yet. Spamoor: `frametx` and `frametx-fuzz` scenarios available :heavy_check_mark: ### Open PRs **EIPs** - [PR-12026 - clarify floor repricing, signature validation, frame.value gas](https://github.com/ethereum/EIPs/pull/12026) Merged :heavy_check_mark: - [PR-12041 - assembled canonical paymaster reference bytecode](https://github.com/ethereum/EIPs/pull/12041) Open :exclamation: - [PR-12042 - align SIGPARAM copy operand order with CALLDATACOPY](https://github.com/ethereum/EIPs/pull/12042) Merged :heavy_check_mark: - [PR-12061 - frame receipt carries no transaction-level status](https://github.com/ethereum/EIPs/pull/12061) Merged :heavy_check_mark: - [PR-12062 - explicit second dimension for state gas to frames](https://github.com/ethereum/EIPs/pull/12062) Merged :heavy_check_mark: - [PR-12066 - ban SLOTNUM during validation-prefix execution](https://github.com/ethereum/EIPs/pull/12066) Merged :heavy_check_mark: - [PR-12091 - specify block inclusion gating and payer solvency](https://github.com/ethereum/EIPs/pull/12091) Closed - [PR-12109 - statically disallow approval scope on atomic-batch frames](https://github.com/ethereum/EIPs/pull/12109) Merged :heavy_check_mark: - [PR-12113 - pin the initial accessed_addresses set](https://github.com/ethereum/EIPs/pull/12113) Merged :heavy_check_mark: - Longer-horizon extensions (not devnet-0 scope, all closed): [PR-11681 guarantors/flexible nonces/signer binding](https://github.com/ethereum/EIPs/pull/11681), [PR-11580 payer approves before sender](https://github.com/ethereum/EIPs/pull/11580), [PR-11555 guarantors](https://github.com/ethereum/EIPs/pull/11555), [PR-11482 precompiles for VERIFY frames](https://github.com/ethereum/EIPs/pull/11482) **Execution APIs** - [PR-860 - Add the EIP-8141 frame transaction fields to the receipt](https://github.com/ethereum/execution-apis/pull/860) Open :exclamation: - [PR-894 - add EIP-8141 frame transaction simulation method](https://github.com/ethereum/execution-apis/pull/894) Open :exclamation: - No `eth_sendRawTransaction` type-`0x06` schema or engine-API payload-version PR yet :hourglass: - ethrex stopgap simulate RPC: [ethrex PR-6974 - `ethrex_simulateFrameTransaction`](https://github.com/lambdaclass/ethrex/pull/6974) Open **Clients** - [ethrex PR-7305 - frame loop consensus fixes (fork-off on frame tx CREATE2 with value)](https://github.com/lambdaclass/ethrex/pull/7305) Merged :heavy_check_mark: - [go-ethereum ISSUE-35783 - frame tx JSON-RPC: missing frames/frameReceipts/payer, wrong receipt status](https://github.com/ethereum/go-ethereum/issues/35783) Open :exclamation: ## Local testing Kurtosis example: ```yaml participants: - el_type: geth el_image: ethpandaops/geth:frames-devnet-0 cl_type: lighthouse cl_image: ethpandaops/lighthouse:unstable - el_type: nethermind el_image: ethpandaops/nethermind:frames-devnet-0 cl_type: lighthouse cl_image: ethpandaops/lighthouse:unstable - el_type: ethrex el_image: ethpandaops/ethrex:frames-devnet-0 cl_type: lighthouse cl_image: ethpandaops/lighthouse:unstable network_params: gloas_fork_epoch: 0 heze_fork_epoch: 1 frames_enabled: true gas_limit: 200000000 genesis_gaslimit: 200000000 additional_services: - dora - spamoor dora_params: image: ethpandaops/dora:master spamoor_params: image: ethpandaops/spamoor:master start_chainload: false spammers: - scenario: frametx config: throughput: 20 - scenario: frametx-fuzz config: throughput: 20 ``` --- Are you lost? Looking for focil? https://notes.ethereum.org/@ethpandaops/focil-devnet-0