# bal-devnet-3 spec :::info :mega: bal-devnet-3 targets to launch 04 March 2026. ::: :::info ❗ EL clients: please add flags to enable/disable BAL optimizations batch/parallel io and parallel execution. ::: ## EIP List for bal-devnet-3 | EIP | Title |Status |--------|-----|-------| |[EIP-7708](https://eips.ethereum.org/EIPS/eip-7708) | ETH transfers emit a log | :up: |[EIP-7778](https://eips.ethereum.org/EIPS/eip-7778) | Block Gas Accounting without Refunds | |[EIP-7843](https://eips.ethereum.org/EIPS/eip-7843) | SLOTNUM opcode | |[EIP-7928](https://eips.ethereum.org/EIPS/eip-7928) | Block-Level Access Lists | :up: |[EIP-7954](https://eips.ethereum.org/EIPS/eip-7954) | Increase Maximum Contract Size | :new: |[EIP-7975](https://eips.ethereum.org/EIPS/eip-7975) | eth/70 - partial block receipt lists | :new: / optional |[EIP-8024](https://eips.ethereum.org/EIPS/eip-8024) | Backward compatible SWAPN, DUPN, EXCHANGE | :up: |[EIP-8037](https://eips.ethereum.org/EIPS/eip-8037) | State Creation Gas Cost Increase | :new: |[EIP-8159](https://eips.ethereum.org/EIPS/eip-8159) | eth/71 - Block Access List Exchange | :new: / optional **Key:** - :up: EIP has updated! - :new: New EIP added. ### Implementation tracker EL ## Execution Layer Client Support | EIP | Geth | Besu | Reth | Nethermind | Erigon | Nimbus-EL | |-----| :----:|:----:|:----:|:----------:|:------:|:---------:| | 7708 (ETH Logs) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | 7778 (Gas Refunds) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | | 7843 (SLOTNUM) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | | 7928 (BAL) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | 7954 (MContract) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 7975 (eth/70) | ✅ | :hammer: | ❌ | ✅ | ❌ | ❌ | | 8024 (SWAPN/DUPN) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | | 8037 (stateIncr) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | | 8159 (eth/71) | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ### Implementation tracker CL | Feature/EIP | Lodestar | Lighthouse | Prysm | | ----------- | -------- | ---------- | ----- | | **EIP-7928** | ✅ | ✅ | bal-devnet-1 | | **EIP-7843** | ✅ | ✅ | ❌ | ### Test Releases **Consensus Specs:** [`v1.6.1`](https://github.com/ethereum/consensus-specs/releases/tag/v1.6.1) :heavy_check_mark: Same as [bal-devnet-2](https://notes.ethereum.org/@ethpandaops/bal-devnet-2) **Execution Specs:** EEST Block-Level Access Lists (BAL) - tbh ### Spec versions required & Open PRs **EIP udpates included** - [Update EIP-7928: cap max items in BAL](https://github.com/ethereum/EIPs/pull/11234) Merged :heavy_check_mark: - [Update EIP-8024: Switch to branchless normalization and extend EXCHANGE](https://github.com/ethereum/EIPs/pull/11306) - Draft :exclamation: - [Update EIP-7708: Add ETH burn logs and improve spec consistency](https://github.com/ethereum/EIPs/pull/11311) - Merged :heavy_check_mark: **Consensus Specs** Currently, No CL spec changes required. CLs need to implement [EIP-7843 PR #731 engine_forkchoiceUpdatedV4](https://github.com/ethereum/execution-apis/pull/731) **Execution Specs** **Execution APIs** [Add EIP-7928 Block-level Access Lists JSON RPC methods](https://github.com/ethereum/execution-apis/pull/726) Open :exclamation: [eth_simulateV1: fix revert err code](https://github.com/ethereum/execution-apis/pull/748) Open :exclamation: [add maxUseGas field to eth_simulateV1](https://github.com/ethereum/execution-apis/pull/746) Open :exclamation: **Networking** <!-- **devp2p** - [EIP-7928 GetBlockAccessLists, BlockAccessLists p2p](https://github.com/ethereum/devp2p/pull/264) Open :exclamation: --> **Other** - [bal-devnet-2 STEEL Milestone tracker](https://github.com/ethereum/execution-specs/milestone/32) :heavy_check_mark: - [EIP-7928 Issue#1938 Test vector metadata consideration](https://github.com/ethereum/execution-specs/issues/1938) Open :exclamation: ## Client BAL features | EL Client | Exec Par. | Batch IO (required) | State Par. | |-------------|:---------:|:--------:|:----------:| | Geth | ✅ | ✅ | ✅ | | Nethermind | ❓ | ❓ | ✅ | | Erigon | ✅ | ❓ | ❓ | | Besu | ✅ | ✅ | ✅ | | Reth | ✅ | ❓ | ❓ | These flags allow us to enable / disable devnet-2 features. Especially BAL related features. ## Feature flags ### Besu | Option | Default | Type | Description | |------------------------------------------------|---------|---------|------------------------------------------------------------------------------------------------------------------------| | `--Xbal-optimization-enabled` | `true` | boolean | Allows disabling BAL-based optimizations. | | `--Xbal-perfect-parallelization-enabled` | `true` | boolean | Allows disabling BAL-based perfect parallelization even when BALs are present. | | `--Xbal-lenient-on-state-root-mismatch` | `true` | boolean | Log an error instead of throwing when the BAL-computed state root does not match the synchronously computed root. | | `--Xbal-trust-state-root` | `false` | boolean | Trust the BAL-computed state root without verification. | | `--Xbal-log-bals-on-mismatch` | `false` | boolean | Log the constructed block’s BAL when they differ. | | `--Xbal-api-enabled` | `false` | Boolean | Enable `eth_getBlockAccessListByBlockNumber` and `eth_getBlockAccessListByBlockHash` methods and BALs in simulation. | | `--Xbal-state-root-timeout` | `1000` | long | Timeout in ms when waiting for the BAL-computed state root. | | `--Xbal-processing-timeout` | `1000` | long | Timeout in ms when waiting for BAL transaction processing results. | | `--Xbal-prefetch-reading-enabled` | `false` | boolean | Enable prefetching of state data based on BAL read operations. | | `--Xbal-prefetch-sorting-enabled` | `true` | boolean | Enable sorting optimization during BAL prefetch operations. | ### Nethermind WIP ### Geth WIP adding flags ### Erigon WIP --- ## Local testing Kurtosis example: ```yaml= participants: - cl_type: lighthouse cl_image: ethpandaops/lighthouse:bal-devnet-2 el_type: geth el_image: ethpandaops/geth:bal-devnet-3 el_extra_params: ["--history.state=0", "--gcmode=archive", "--syncmode=full"] count: 1 - cl_type: lodestar cl_image: ethpandaops/lodestar:bal-devnet-2 el_type: geth el_image: ethpandaops/geth:bal-devnet-3 el_extra_params: ["--history.state=0", "--gcmode=archive", "--syncmode=full"] count: 2 global_log_level: 'debug' network_params: gloas_fork_epoch: 1 seconds_per_slot: 6 snooper_enabled: true dora_params: image: ethpandaops/dora:eip7928-support additional_services: - dora port_publisher: additional_services: enabled: true public_port_start: 64400 ``` ## Metrics https://notes.ethereum.org/@ethpandaops/bal-otel Previous devnet spec sheet for reference: https://notes.ethereum.org/@ethpandaops/bal-devnet-2