# 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