# **SSZ Execution Block Devnet 0 Specification**
:::info :mega:
**SSZ Execution Block Devnet 0**
**Planned launch:** Targeting **Feb 15, 2026 – 12:00 UTC**
**Expected duration:** ~10 days
**Primary focus:** First multi-client interoperability devnet for **EIP-7807 SSZ-native execution blocks**
:::
## 1. Purpose and Scope
### 1.1 Primary Goals
This devnet exists to validate:
* End-to-end **client interoperability** for **SSZ-native execution payloads**
* Correct implementation of **SSZ-based execution hashing** (no RLP roots)
* Stability of **Consensus ↔ Execution** interaction after **SSZ execution structures**
* Correctness of **Engine API SSZ variants**
* Early feedback on **implementation complexity and operational risk**
### 1.2 Non-Goals
Explicitly out of scope:
* Performance benchmarking or throughput comparisons
* Wallet / RPC UX polish
* Long-term chain stability guarantees
## 2. Fork Context
### 2.1 Fork Name and Activation
* **Fork name:** `Heka`
* **Activation mechanism:** **epoch-based**
## 3. Included EIPs
### 3.1 EIP Inclusion Table
| EIP | Title | Category | Status | Notes |
| ------------ | -------------------- | --------- | --------- | --------------------- |
| **EIP-7807** | SSZ Execution Blocks | Meta | **new** | Primary focus |
| **EIP-6404** | SSZ Transactions | Execution | new | Required dependency |
| **EIP-6466** | SSZ Receipts | Execution | new | Required dependency |
| **EIP-6465** | Withdrawals Root | Execution | new | Transitively required |
### 3.2 EIP-by-EIP Notes
#### **EIP-7807 — SSZ Execution Blocks**
* **Breaking changes since last devnet:**
* N/A – first interop devnet
* **Client expectations:**
* **CL**
* Fork-aware execution payload handling
* Validation of SSZ execution block roots
* **EL**
* Native SSZ block processing
* Canonical SSZ hashing
* Backward-compatibility logic for pre-fork blocks
* **Known open questions:**
* Exact canonicalization rules for transitional blocks
* Error semantics for mixed SSZ / legacy payloads
#### **EIP-6404 — SSZ Transactions**
* **Breaking changes:**
* Replacement of RLP tx encoding with SSZ containers
* **Client expectations:**
* **EL**
* SSZ tx decoding + validation
* Transaction root derivation via SSZ
* **CL**
* Transparent passthrough (no semantic tx validation)
* **Open questions:**
* Mempool representation strategy (internal only)
* Including https://eips.ethereum.org/EIPS/eip-6493 in this devnet
#### **EIP-6466 — SSZ Receipts**
* **Breaking changes:**
* Receipt root derived from SSZ containers
* **Client expectations:**
* **EL**
* SSZ receipt construction
* Backward-compatible receipt RPC encoding
* **Open questions:**
* Receipt RPC shape stabilization
## 4. Required Client Capabilities
### 4.1 Consensus Clients MUST
* Support **Heka fork activation**
* Validate SSZ execution payload roots
### 4.2 Execution Clients MUST
* Implement:
* EIP-7807
* EIP-6404
* EIP-6466
## 6. Interoperability Matrix
### 6.1 Expected Participation
> **Note:**
> Devnet-0 is a bootstrap devnet. At launch, only a **Nimbus CL ↔ Nimbus EL**
> pairing is expected to fully participate. Other clients are listed for
> visibility and future planning only.
| CL Client | EL Client | Expected |
| ---------- | ------------- | -------- |
| Nimbus | Nimbus-EL | Yes |
| Lighthouse | Geth | No (planned) |
| Lodestar | Reth | No (planned) |
| Prysm | Besu | No (planned) |
| Nimbus | Nethermind | No (planned) |
## 7. Kurtosis Configuration
TODO-will be provided soon
## 8. Testing Plan
> **Scope note:**
> Devnet-0 is a **bootstrap correctness devnet**. At launch, only a **Nimbus CL ↔ Nimbus EL** pairing is expected to be fully functional.
> Inter-client interoperability is **explicitly not required** for Devnet-0 and will be addressed in follow-up devnets.
### 8.1 Smoke Tests (Nimbus ↔ Nimbus)
The following must succeed for the **Nimbus CL + Nimbus EL** pairing:
* Successful fork activation at the configured epoch
* Continuous block production post-fork
* Validator participation ≥ **66%**
* Stable Engine API handshake using **SSZ payload variants**
* No consensus halts attributable to SSZ execution payloads
### 8.2 Targeted Tests (Single-Pair Correctness)
These tests focus on **semantic correctness**, not interop:
* **SSZ execution block root validation**
* CL-computed execution root matches EL-reported root
* **Fork-crossing reorg handling**
* Reorgs that cross the SSZ-EL fork boundary are processed correctly
* **SSZ receipt root consistency**
* Receipt roots remain stable across reorgs and re-execution
* **Engine API format discipline**
* Correct rejection of mixed SSZ / legacy JSON payloads
* No silent fallback to legacy RLP paths
### 8.3 Explicitly Deferred Tests
The following are **out of scope for Devnet-0**:
* Cross-client EL ↔ EL interoperability
* Cross-client CL ↔ CL interoperability
* Wallet-facing RPC stability guarantees
* Performance, throughput, or latency metrics
These will be addressed in **Devnet-1+** once additional clients land SSZ support.
### 8.4 Failure Criteria (Bootstrap-Scoped)
Devnet-0 is considered **failed** if **any** of the following occur **for the a participating pairing**:
* Finality cannot be achieved
* Deterministic SSZ execution roots diverge between CL and EL
* Fork activation causes persistent block production failure
* Engine API incompatibility prevents post-fork execution
## 9. Reorg and Recovery Expectations
Clients **must** correctly handle:
* Reorgs crossing the SSZ-EL fork
* Temporary EL desynchronization
## 10. Monitoring and Tooling
### 10.1 Required
* Beacon explorer
* Execution metrics dashboard
* Fork transition monitor
### 10.2 Optional
* Proof-of-data completeness harness
* SSZ vs legacy diff tool
## 11. Open Questions
* Should SSZ Engine API be **mandatory** for future devnets?
* How strict should mixed-format rejection be?
* Do wallets need early SSZ receipt exposure?
## 12. Exit Criteria
Devnet may shut down once:
* All critical EIPs validated
* Blocking issues documented