# focil-devnet-0 spec
:::info
:mega: focil-devnet-0 targets to launch on the 31st of Aug 2026.
:::
:::info
:checkered_flag: **Scope.** First devnet for [EIP-7805 FOCIL](https://eips.ethereum.org/EIPS/eip-7805) on the **Heze** fork.
Client images build from the common `focil-devnet-0` branch.
[frames-devnet-0 ](https://notes.ethereum.org/@ethpandaops/frames-devnet-0) (EIP-8141) is kept on a separate devnet track.
:::
## EIP List for focil-devnet-0
| EIP | Title | Status |
|--------|-----|:-----:|
|[EIP-7805](https://eips.ethereum.org/EIPS/eip-7805) | Fork-choice enforced Inclusion Lists (FOCIL) | :new:|
## Testing focus
- **IL lifecycle e2e**: 16-member IL committee per slot builds/gossips ILs, proposer aggregates, attesters enforce — verify blocks satisfying all stored ILs get voted, non-compliant ones don't.
- **Timing windows**: view freeze cutoff (7500 bps), IL submission deadline (6667 bps), proposer IL cutoff (9167 bps) — check client behavior around the boundaries, especially with late/equivocating ILs.
- **FOCIL × ePBS interaction**: IL satisfaction for `NOT_VALIDATED` payloads (deferred payload processing), the IL bitlist in builder bids, IL compliance when the payload arrives separately from the block.
- **IL req/resp**: syncing/late nodes fetching ILs via the new req/resp protocol ([PR-5424](https://github.com/ethereum/consensus-specs/pull/5424)) and store handling of req/resp-sourced ILs ([PR-5513](https://github.com/ethereum/consensus-specs/pull/5513)).
- **Censorship-resistance validation**: run a censoring proposer/builder and verify IL-forced transactions still land — no purpose-built tooling exists yet (no assertoor tasks, no spamoor IL scenarios) :hourglass:
### Specs & Tests
**Consensus Layer**
- [x] [v1.7.0-beta.2](https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-beta.2)
**Execution Layer**
- [x] [focil-devnet@v0.3.0](https://github.com/ethereum/execution-specs/releases/tag/tests-focil-devnet%40v0.3.0)
### Open PRs
**Beacon API**
- [PR-490 - Add EIP-7805 (FOCIL) endpoints](https://github.com/ethereum/beacon-APIs/pull/490) Open :exclamation: — `getInclusionListCommitteeDuties`, `produceInclusionList`/`publishInclusionList`, IL eventstream event. **Unmerged endpoint shapes are the main coordination risk for VC↔BN interop.**
**Consensus Specs**
- [PR-4931 - Rebase FOCIL onto Gloas](https://github.com/ethereum/consensus-specs/pull/4931) Merged :heavy_check_mark:
- [PR-4942 - Promote EIP-7805 to Heze](https://github.com/ethereum/consensus-specs/pull/4942) Merged :heavy_check_mark:
- [PR-5094 - Defer payload processing to next block](https://github.com/ethereum/consensus-specs/pull/5094) Merged :heavy_check_mark:
- [PR-5138 - Update inclusion list deadlines](https://github.com/ethereum/consensus-specs/pull/5138) Merged :heavy_check_mark:
- [PR-5289 - Clarify ILs and payload validity comment and align IL p2p rules](https://github.com/ethereum/consensus-specs/pull/5289) Merged :heavy_check_mark:
- [PR-5324 - Simplify `InclusionListStore`](https://github.com/ethereum/consensus-specs/pull/5324) Merged :heavy_check_mark:
- [PR-5410 - Add the IL bitlist to bid](https://github.com/ethereum/consensus-specs/pull/5410) Merged :heavy_check_mark: (reverts [PR-5371](https://github.com/ethereum/consensus-specs/pull/5371))
- [PR-5424 - Specify req/resp for inclusion lists](https://github.com/ethereum/consensus-specs/pull/5424) Merged :heavy_check_mark:
- [PR-5433 - Specify the IL-compliance for NOT_VALIDATED payloads](https://github.com/ethereum/consensus-specs/pull/5433) Merged :heavy_check_mark:
- [PR-5458 - Add a subsection for IL satisfaction in optimistic.md](https://github.com/ethereum/consensus-specs/pull/5458) Merged :heavy_check_mark:
- [PR-5462 - Correct `MIN_SLOTS_FOR_INCLUSION_LISTS_REQUESTS` value](https://github.com/ethereum/consensus-specs/pull/5462) Merged :heavy_check_mark:
- [PR-5463 - Set `only_timely` for all `get_inclusion_list_transactions` calls](https://github.com/ethereum/consensus-specs/pull/5463) Merged :heavy_check_mark:
- [PR-5487 - Save signed inclusion lists in `InclusionListStore`](https://github.com/ethereum/consensus-specs/pull/5487) Merged :heavy_check_mark:
- [PR-5507 - Improve the readability of IL store](https://github.com/ethereum/consensus-specs/pull/5507) Merged :heavy_check_mark:
- [PR-5508 - Rename the max IL transaction size constant name](https://github.com/ethereum/consensus-specs/pull/5508) Merged :heavy_check_mark:
- [PR-5512 - Fold inclusion list timeliness into the stored entry](https://github.com/ethereum/consensus-specs/pull/5512) Merged :heavy_check_mark:
- [PR-5513 - Modify `on_inclusion_list` to handle ILs from req/resp](https://github.com/ethereum/consensus-specs/pull/5513) Merged :heavy_check_mark:
- [PR-5544 - Change IL store's keys to (slot, dependent root)](https://github.com/ethereum/consensus-specs/pull/5544) Merged :heavy_check_mark:
- [PR-5576 - Increase `MAX_SIGNED_INCLUSION_LIST_SIZE` to the worst-case size](https://github.com/ethereum/consensus-specs/pull/5576) Merged :heavy_check_mark:
- [PR-5599 - Add missing dependent block checks to `on_inclusion_list`](https://github.com/ethereum/consensus-specs/pull/5599) Merged :heavy_check_mark:
- [PR-5605 - Add executable gossip validation functions for heze](https://github.com/ethereum/consensus-specs/pull/5605) Merged :heavy_check_mark:
**Execution APIs**
- [PR-609 - Add initial FOCIL spec](https://github.com/ethereum/execution-apis/pull/609) Merged :heavy_check_mark:
- [PR-871 - fix: rename max IL transactions bytes constants](https://github.com/ethereum/execution-apis/pull/871) Merged :heavy_check_mark:
- [PR-878 - Add non-zero requirements to getInclusionListV1's response](https://github.com/ethereum/execution-apis/pull/878) Merged :heavy_check_mark:
**Execution Specs**
- [PR-1928 - Initial EIP-7805 spec](https://github.com/ethereum/execution-specs/pull/1928) Merged :heavy_check_mark:
- [PR-2643 - FOCIL framework support and initial tests](https://github.com/ethereum/execution-specs/pull/2643) Merged :heavy_check_mark:
- [PR-3028 - Bogota fork and Engine API version bumps](https://github.com/ethereum/execution-specs/pull/3028) Merged :heavy_check_mark:
- [PR-3092 - Rename inclusion_list_satisfied field](https://github.com/ethereum/execution-specs/pull/3092) Merged :heavy_check_mark:
- [PR-3095 - Complete inclusion_list_satisfied field rename](https://github.com/ethereum/execution-specs/pull/3095) Merged :heavy_check_mark:
- [PR-3337 - Multiple fixture variants and inclusion_test marker](https://github.com/ethereum/execution-specs/pull/3337) Merged :heavy_check_mark:
- [PR-3370 - Fix FOCIL test generation on updated Amsterdam](https://github.com/ethereum/execution-specs/pull/3370) Merged :heavy_check_mark:
- [PR-3373 - Refactor inclusion-list definitions and tests](https://github.com/ethereum/execution-specs/pull/3373) Merged :heavy_check_mark:
- [PR-3401 - Bogota Engine API update, inclusion-list variants, and spec fixes](https://github.com/ethereum/execution-specs/pull/3401) Merged :heavy_check_mark:
- [PR-3406 - Clear `rlp_modifier` when building inclusion-list variants](https://github.com/ethereum/execution-specs/pull/3406) Merged :heavy_check_mark:
- [PR-3470 - Require null `inclusionListSatisfied` on non-VALID payloads](https://github.com/ethereum/execution-specs/pull/3470) Merged :heavy_check_mark:
- [PR-3471 - Fix invalid inclusion-list engine fixture generation](https://github.com/ethereum/execution-specs/pull/3471) Merged :heavy_check_mark:
- [PR-3594 - Fix FOCIL CI and enforce inclusion-list verdict checks](https://github.com/ethereum/execution-specs/pull/3594) Merged :heavy_check_mark:
- [PR-3595 - Backport focil-devnet-0 fixes to the EIP-7805 branch](https://github.com/ethereum/execution-specs/pull/3595) Merged :heavy_check_mark:
## Local testing
Kurtosis example (based on the Hegota interop config):
```yaml
participants_matrix:
el:
- el_type: ethrex
el_image: ethpandaops/ethrex:focil-devnet-0
- el_type: besu
el_image: ethpandaops/besu:focil-devnet-0
- el_type: nethermind
el_image: ethpandaops/nethermind:focil-devnet-0
- el_type: reth
el_image: ethpandaops/reth:focil-devnet-0
cl:
- cl_type: lodestar
cl_image: ethpandaops/lodestar:focil-devnet-0
- cl_type: teku
cl_image: ethpandaops/teku:focil-devnet-0
network_params:
preset: minimal
gloas_fork_epoch: 0
heze_fork_epoch: 1
additional_services:
- spamoor
- dora
global_log_level: debug
```
---
Are you looking for frames? https://notes.ethereum.org/@ethpandaops/frames-devnet-0