Evaluated on: · Spec revision: 2026-07-08 · 554d3325e3
Scope at the cutoff. EIP-8282 adds two new predeploys for EIP-7732 builders. One is a builder deposit contract that takes 184-byte calldata, checks that the amount is at least 1 ETH and that msg.value covers the fee plus the stake, queues the record and emits a LOG0. The other is a builder exit contract that takes a 48-byte pubkey, charges a fee and records msg.sender as source_address. Each contract reuses the EIP-7002/EIP-7251 request-bus storage layout, EIP-1559-style excess fee and EXCESS_INHIBITOR. An end-of-block SYSTEM_ADDRESS call drains each queue (up to 64 deposit and 16 exit records per block) into new EIP-7685 request types 0x03 and 0x04, which are committed in requests_hash. The remaining changes rewire consensus-layer handling of EIP-7732 builder onboarding and exits, and there is no reference bytecode yet.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 7 criteria affected
- Plausible range
- 18–30 (Medium–High)
- Assessment cutoff
- 2026-07-13 · EIP revision
554d3325e3(2026-07-08)
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: Several consensus-visible details are left open. There is no reference bytecode, so gas use, storage packing of the 184-byte deposit record, log data and the derived addresses are not fixed. The 0x03 type byte conflicts with EIP-7804 and its allocation is deferred. The order of the new system calls relative to the existing ones is not stated.
Plausible total
18–30
recorded score 22 · plausible tiers Medium, High
Unresolved questions at the cutoff (5)
- How are 184-byte deposit records laid out across storage slots from slot 4?
- What are the final bytecode, deployment transactions and addresses?
- Is 0x03/0x04 the final allocation, given the EIP-7804 conflict?
- In what order are the builder system calls made relative to the EIP-7002/7251 calls?
- Does the exit contract use its own excess state with TARGET=2, or the deposit contract's fee? The phrase 'same request fee as the deposit contract' is ambiguous.
Notable ambiguities noted by the assessor (4)
- The exit contract is said to charge 'the same request fee as the deposit contract', but it has its own TARGET_EXIT_REQUESTS_PER_BLOCK and its own excess slot.
- The system-call rule refers to a generic MAX_REQUESTS_PER_BLOCK and TARGET_REQUESTS_PER_BLOCK without naming per-contract values explicitly.
- Deployment addresses depend on bytecode that has not been audited or frozen, and the Reference Implementation section is a TODO.
- Overpayment beyond amount*1 gwei + fee is retained and not credited, so value boundaries need explicit vectors.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added system contracts | 3 | Multiple contracts are introduced, and both are stateful and trigger system actions (execution requests). |
Confidence: High |
| Encoding changes (RLP/SSZ) | 3 | These are new request payload schemas within the existing request-type scheme. |
Confidence: High |
| Edge/boundary conditions | 3 | Several independent boundary-sensitive mechanisms are introduced: calldata dispatch, the minimum deposit, the per-block caps, the excess/fee update and the inhibitor. The deposit funding check is an elevated matrix, because amount, fee/excess and msg.value interact and their combinations change acceptance. |
Confidence: Medium |
| Cross-EIP interactionsUnder-specified | 3 | The target couples the EIP-7685 commitment ordering with the EIP-6110, 7002 and 7251 request sources. Coordinated scenarios are needed: blocks mixing all request types, one transaction calling several predeploys, failure of any system call, and type ordering and empty-type exclusion. |
Confidence: Medium Uncertainty: Level 2 is also defensible if mixed-request tests are treated as simple extensions. Interacting EIPs: EIP-7685, EIP-7002, EIP-7251, EIP-6110, EIP-1559, EIP-7732, EIP-7804 |
| Block syncing changesUnder-specified | 2 | One complex validation, the requests_hash check that depends on execution state, changes content. The no-code and system-call-failure invalidity rules follow the existing pattern. |
Confidence: Medium Uncertainty: It is debatable whether a change to requests_hash content counts as structural validation rather than an ordinary execution rule. |
| Security risks | 2 | The EL contract's value and minimum checks, and its msg.sender recording, are trusted by CL builder stake crediting and exit authorization. This bounded cross-layer interaction needs targeted adversarial cases: underfunded deposits, spoofed source_address, and non-system dequeue. |
Confidence: Medium |
| Unspecified behavior requiring cross-client consensus | 2 | Several consensus-visible outcomes have competing possibilities: the storage packing of the 184-byte deposit record, the exact gas use and log layout, the final type byte, and the addresses. All of these need agreement or a reference implementation before expected results can be fixed. |
Confidence: Medium Uncertainty: The EIP states that the bytecode will be supplied later, so the gap is localized rather than spread across families. |
| Patterns affecting pre-existing testsUnder-specified | 1 | Blocks with no builder requests keep the same requests_hash. Rework is limited to fork pre-allocation and to request-bus tests that enumerate request types and their ordering, which are localized cases. |
Confidence: Medium Uncertainty: Whether adding the predeploys to pre-state is handled centrally by the framework, and whether the inhibitor-clearing writes change fork-transition expectations, cannot be established from the supplied evidence. |
| New invariant on pre-existing testsUnder-specified | 1 | Only fork-transition and request-bus cases need extra assertions: the predeploys' storage after the inhibitor is cleared, and the presence or absence of 0x03/0x04 requests. Ordinary tests gain no new output. |
Confidence: Medium Uncertainty: Post-state checks of the predeploy storage could apply more widely, depending on the fixture convention. |
| New test-framework primitives | 1 | These are local extensions of existing request-type helper primitives, as used for EIP-6110, 7002 and 7251. |
Confidence: Medium |
| Performance risks | 1 | Component benchmarks of the new system-call drain cost and the enqueue path cover the workload. The system calls use the existing dedicated-gas pattern. |
Confidence: Medium |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No new opcodes. |
|
| Modified opcodes | 0 | No opcode modifications. |
|
| Added precompiles | 0 | No precompiles. |
|
| Modified precompiles | 0 | None. |
|
| Modified system contracts | 0 | Existing contracts keep their rules, code and layout. The changed CL interpretation of 0xB0 deposits is CL-only. |
Uncertainty: The order of the new system calls relative to the EIP-7002/7251 calls is not stated. |
| EVM Gas rule changes | 0 | The system-call gas exemption is inherited from EIP-7002/7251, and the fee is an ordinary contract fee. No execution-gas accounting rule changes. |
|
| State-access ordering within opcode execution | 0 | No opcode's state-access or gas-charge ordering changes. |
|
| Blob gas accounting changes | 0 | No blob-gas accounting change. |
|
| State gas accounting changes | 0 | No state-gas mechanism or rate change. |
|
| New EVM gas refund | 0 | No new gas refund. |
|
| New transaction types | 0 | No new transaction type. |
|
| New or modified transaction validity mechanisms | 0 | No consensus transaction-validity rule changes. |
|
| New block / header fields | 0 | Adding a request type under an existing commitment is not a new header field. |
|
| New fork activation mechanismUnder-specified | 0 | Installation uses ordinary deployment transactions. Clearing the inhibitor is contract-internal recurring logic inherited from the EIP-7002 pattern, not a protocol-mandated state conversion. |
Uncertainty: The inhibitor clearing could be read as a one-time conversion embedded in a recurring system call. |
| Engine API changesUnder-specified | 0 | No Engine API field or endpoint is defined or changed. |
Uncertainty: The EIP does not say whether Engine API request-type validation lists need updating. |
| Transition-tool interface changesUnder-specified | 0 | New request types travel through the existing requests output, so no new field or mechanism is needed. |
Uncertainty: No transition-tool evidence is supplied. |
| Cryptography | 0 | No EL cryptographic mechanism changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@554d3325e3EIPS/eip-8282.md committed 2026-07-08 · information cutoff 2026-07-13T07:12:57Z- 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/retrospective/outputs/assessments/amsterdam/eip-8282.yaml· sha25696ad961a02b3 - Supporting documents supplied with the EIP
supporting/eip-1559.md,supporting/eip-6110.md,supporting/eip-7002.md,supporting/eip-7251.md,supporting/eip-7685.md,supporting/eip-7732.md,supporting/eip-7804.md