# 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