Evaluated on: · Spec revision: 2026-10-07 · 6dac5e7491 · EIP-8081 list: PFI
Scope at the cutoff. EIP-8205 adds a new EIP-7685 request contract on the execution layer for withdrawal-credential preregistrations. A request is pubkey ++ withdrawal_credentials ++ signature, 176 bytes. The contract copies the EIP-7002/7251 design: a queue, an exponential fee with TARGET=1 and MAX=4 dequeued per block, an EXCESS_INHIBITOR, a fee getter that reverts if value is attached, LOG0 emission, and an end-of-block system call that returns SSZ-serialized records. A system call with calldata disables the queue, but nothing under this EIP reaches that path. The consensus layer stores the preregistrations, checks their BLS signatures, enforces them against validator deposits and expires them. The EL side only queues and passes requests on; it performs no cryptographic checks. The bytecode, address, request type and deployment are all still TBD.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 5 criteria affected
- Plausible range
- 15–22 (Medium)
- Snapshot
- 2026-10-07 · EIP revision
6dac5e7491(2026-10-07)
Score bands · Checklist revision 3
- Low <12
- Medium 12–22
- High ≥23
28 criteria scored 0–3 (4 in exceptional cases; cross-EIP interactions is uncapped); nominal maximum 84.
Complexity profile
Each segment is one criterion's contribution to the LLM total. Hover or focus a segment for its score and rationale.
Top complexity drivers
Under-specified at assessment cutoff: Yes
The EIP text available at the assessment cutoff left material behavior unresolved. The affected criteria and the plausible total range record that uncertainty.
Why: The contract address, EIP-7685 request type, runtime bytecode and deployment method are all TBD. Test cases and the reference implementation are also TBD. The pseudocode defines the intended behavior, but concrete gas usage, request ordering position and the activation/deployment method are unresolved.
Plausible total
15–22
recorded score 16 · plausible tiers Medium
Unresolved questions at the cutoff (4)
- What are the predeploy address and the request-type byte?
- What is the runtime bytecode, and therefore the gas consumed by submissions, fee-getter calls and system calls?
- Is the contract deployed by an ordinary pre-fork transaction or installed at the fork?
- What is the order of the system call relative to the other request contracts' system calls?
Notable ambiguities noted by the assessor (3)
- The non-empty-calldata disable path cannot be reached under this EIP. Whether tests should still exercise it at the contract level (for example by calling directly as SYSTEM_ADDRESS) is unclear.
- EIP-8282 describes its inhibitor as 'permanently' disabling the queue. EIP-8205 says the same mechanism can be re-enabled by a later system call with empty calldata.
- Bytecode TBD prevents fixing expected gas values in fixtures.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Encoding changes (RLP/SSZ) | 3 | Adds a new request payload schema within the existing EIP-7685 request scheme. |
Confidence: High |
| Added system contracts | 2 | Exactly one new contract, which is stateful and triggers a system action (an execution request). |
Confidence: High |
| Edge/boundary conditionsUnder-specified | 2 | Several independent boundary-sensitive mechanisms are introduced: input length, fee threshold, dequeue cap, excess/target update, inhibitor state and fee-getter value. Each can mostly be tested on its own. |
Confidence: Medium Uncertainty: The dispatch on caller × calldata length × value × inhibitor state could be treated as an elevated matrix, which would be level 3. |
| Cross-EIP interactions | 2 | Coordinated cases are needed for blocks that carry preregistration requests alongside other request types: deposits, withdrawals, consolidations and builder requests. Those cases check requests_hash ordering and content. Other interactions only need local compatibility checks. |
Confidence: Medium Uncertainty: The final type byte is TBD, so its exact position in the ordering is unknown. Interacting EIPs: EIP-7685, EIP-6110, EIP-7002, EIP-7251, EIP-8282, EIP-1559 |
| Transition-tool interface changesUnder-specified | 1 | The meaning of the existing requests output field is extended to include a new type. No new mechanism is needed, since the system-call and request plumbing already exist from 7002/7251. |
Confidence: Low Uncertainty: If an output for a new request type does not count as a semantic field change, this would be 0. No transition-tool documentation was supplied. |
| Patterns affecting pre-existing tests | 1 | Empty request data is excluded from the commitment, so ordinary baseline tests keep their expected outputs. Rework is limited to request-bus cases, such as tests that enumerate request types and their ordering or that test missing system-contract code. That is localized rework. |
Confidence: Medium Uncertainty: Post-state roots change because the new contract's storage is written (the excess moves from the inhibitor to 0). Fixture filling normally absorbs this, but some tests that assert explicit post-state could be affected. |
| New invariant on pre-existing tests | 1 | New outputs (the request entry and contract storage) only matter to assertions in the request-related subset of tests. Ordinary baseline tests produce no preregistration requests. |
Confidence: Medium Uncertainty: An argument could be made that every test should check the system-contract storage writes, which would be level 2. |
| New test-framework primitives | 1 | The framework needs a new request-type helper and a predeploy entry, which are local extensions of existing request primitives. The EL does not verify BLS, so test data can be arbitrary bytes. |
Confidence: Medium |
| Security risksUnder-specified | 1 | The EL-side security conditions (system-call robustness, fee gating, inhibitor, faithful request ordering) can be checked locally and follow the 7002 pattern. The enforcement security model lives on the CL. |
Confidence: Medium Uncertainty: The cross-layer dependence of deposit-protection guarantees on accurate EL request transport could justify level 2. |
| Performance risks | 1 | One more bounded per-block system call and contract workload, which component benchmarks can cover. CL-side BLS cost is out of EL scope. |
Confidence: Medium Uncertainty: Bytecode is TBD, so actual gas and timing cannot be measured yet. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | Placeholders (address, type byte, bytecode, deployment) leave concrete expected values open. The pseudocode still fixes one intended behavior, with no competing normative interpretations. |
Confidence: Medium Uncertainty: Because bytecode is TBD, the gas consumed by calls is consensus-visible but undetermined, which could argue for level 2. |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No new opcodes. |
|
| Modified opcodes | 0 | No opcode changes. |
|
| Added precompiles | 0 | No new precompiles. |
|
| Modified precompiles | 0 | No precompile changes. |
|
| Modified system contracts | 0 | No existing system contract's rules, code or storage change on the EL. |
Uncertainty: The new end-of-block call joins the existing sequence of request system calls, and its relative order is unspecified, but it does not appear to change outcomes. |
| EVM Gas rule changes | 0 | No execution-gas charging, metering or settlement rule changes. The system-call gas exemption is inherited and the fee is a contract-level charge. |
|
| State-access ordering within opcode execution | 0 | No opcode ordering changes and no new ordering rule. |
|
| Blob gas accounting changes | 0 | No blob-gas changes. |
|
| State gas accounting changes | 0 | Uses unchanged state-writing operations and adds no state-gas mechanism. |
|
| New EVM gas refund | 0 | No new refund mechanism. |
|
| New transaction types | 0 | No new transaction type. |
|
| New or modified transaction validity mechanisms | 0 | No consensus rule on transaction validity or intrinsic gas changes. |
|
| New block / header fields | 0 | No new header or block field. |
|
| Block syncing changes | 0 | No RLP decoding or structural header/block rule changes. The new invalidity conditions are execution-derived. The rubric says ordinary execution-rule changes alone do not count. |
Uncertainty: If the no-code and system-call-failure rules were treated as block validation, this could be 1. |
| New fork activation mechanismUnder-specified | 0 | Deployment is ordinary and the first-call inhibitor reset is part of recurring processing. No activation-specific EL state transition is specified. |
Uncertainty: Deployment is TBD. If the final design installs code at the fork (as a mandated predeploy), this becomes 3. |
| Engine API changes | 0 | No Engine API field or endpoint change is specified. The new type travels through the existing requests field. |
Uncertainty: No Engine API specification was supplied. |
| Cryptography | 0 | BLS verification happens only on the CL. The EL reuses an unchanged hash commitment. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@6dac5e7491EIPS/eip-8205.md committed 2026-10-07 · information cutoff 2026-10-07T22:23:55Z- Rubric
- Checklist revision 3 ·
ethspecs/pm@fe2f793b03 - Evaluator
- Opus 5.5 (
claude-opus-5-5) at high effort, one tool-less call per EIP · isolationbubblewrap_claude_p_no_tools_v1 - Source record
- Frozen research record
research/tasks/10-opus-v3-reassessment/prospective/outputs/assessments/hegota-2026-10-08/eip-8205.yaml· sha256af94351f003d - Supporting documents supplied with the EIP
supporting/eip-1559.md,supporting/eip-4788.md,supporting/eip-6110.md,supporting/eip-7002.md,supporting/eip-7251.md,supporting/eip-7685.md,supporting/eip-7732.md,supporting/eip-7843.md,supporting/eip-8282.md