# 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** v1.7.0-alpha.14 TBD **Execution Layer** - [x] Engine API: [`src/engine/bogota.md`](https://github.com/ethereum/execution-apis/blob/main/src/engine/bogota.md) — `engine_newPayloadV6`, `engine_forkchoiceUpdatedV5` (returns `inclusionListSatisfied`), `engine_getInclusionListV1`; merged via [PR-609](https://github.com/ethereum/execution-apis/pull/609) :heavy_check_mark: - EELS: TBA ### 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-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) Open :exclamation: ## Local testing Kurtosis example (based on the Hegota interop config): ```yaml participants_matrix: el: - el_type: ethrex el_image: ethpandaops/ethrex:focil-devnet-0 cl: - cl_type: lodestar cl_image: ethpandaops/lodestar: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