Evaluated on: · Spec revision: 2026-10-07 · 6dac5e7491 · EIP-8081 list: DFI
Scope at the cutoff. EIP-7666 removes the identity precompile at 0x04. At the start of the fork block, the protocol sets that address's code to the 7-byte EVM program 0x365f5f37365ff3 (CALLDATASIZE PUSH0 PUSH0 CALLDATACOPY CALLDATASIZE PUSH0 RETURN). From that block on, 0x04 is no longer treated as a precompile. Return values are meant to stay the same, but the EIP says gas costs differ slightly. The program needs PUSH0 (EIP-3855), and the EIP cites MCOPY (EIP-5656) only as the reason the precompile is no longer needed.
- Evaluator
- LLMChecklist v3
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 5 criteria affected
- Plausible range
- 15–20 (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
- Modified precompiles3
- New fork activation mechanism3
- Patterns affecting pre-existing tests2
- Edge/boundary conditions2
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 specification only says to set code at 0x04 and stop treating it as a precompile. It does not state the account's nonce or other fields after installation, whether 0x04 is still pre-warmed, whether the activation write enters the block-level access list, or exact gas expectations.
Plausible total
15–20
recorded score 18 · plausible tiers Medium
Unresolved questions at the cutoff (4)
- Is 0x04 removed from the set of addresses pre-warmed at transaction start?
- What are the nonce and other account fields of 0x04 after installation? Must the account be created if it is absent?
- Must the activation-time code write be recorded in the block-level access list?
- Is the code installed before or after other start-of-block system operations, and does that ordering matter?
Notable ambiguities noted by the assessor (4)
- 'Should no longer be treated as a precompile' leaves 0x04's warm/cold status implicit.
- Block-level access-list treatment of the activation code installation is not specified.
- The EIP claims equivalent functionality but gives no exact gas formula. The new cost comes from CALLDATACOPY, memory expansion and base opcode costs in the callee.
- The discussions-to URL refers to EIP-7561. This looks like a stale reference, not a behavioral dependency.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified precompilesUnder-specified | 3 | Identity is complex: it takes variable-length input and has dynamic gas. Removing it as a native precompile changes its availability as a precompile and its failure rules, not just its gas. That meets level 3. |
Confidence: Medium Uncertainty: Because the returned output is meant to be identical, one could argue this is gas-only (level 1). |
| New fork activation mechanism | 3 | A one-time protocol-mandated code installation at 0x04 is an activation-specific state transition that differs from ordinary post-fork processing. |
Confidence: High |
| Patterns affecting pre-existing tests | 2 | Ordinary cases throughout the identity-precompile family need rework (gas, memory-expansion and OOG thresholds). Localized cases also need rework in several other families: EXTCODE* on precompile addresses, warm-precompile access, and tests that use 0x04 as a convenient call target. No single rewrite applies across families, so level 2 applies. |
Confidence: Medium Uncertainty: There is no supplied test suite, so the spread is estimated from the specification. |
| Edge/boundary conditions | 2 | Two independent boundary-sensitive rules change: the input-size gas function at 0x04 and the fork-activation boundary. Neither needs an interacting matrix, so level 2 applies. |
Confidence: Medium Uncertainty: Cold/warm status of 0x04 could be treated as another dimension that multiplies with input size. |
| Cross-EIP interactionsUnder-specified | 2 | Coordinated cases are needed for cold/warm access to 0x04 (with and without access-list entries) together with the new gas costs, and for code delegation targeting 0x04. These are the unnumbered interactions listed under cross_eip. PUSH0 needs only a local compatibility check, so level 2 applies. |
Confidence: Medium Uncertainty: The interacting precompile-related rules are not supplied, so their exact semantics could not be verified. Interacting EIPs: EIP-3855 |
| Added system contracts | 1 | This is exactly one stateless protocol-designated contract with no system action. |
Confidence: High |
| EVM Gas rule changesUnder-specified | 1 | Existing accounting rules now apply differently to 0x04: interpreter gas replaces precompile gas, and the address's warm/cold status changes. No new accounting mechanism is added, so level 1 applies. |
Confidence: Medium Uncertainty: The EIP does not say explicitly whether 0x04 stays in the pre-warmed address set. This assessment assumes it does not, based on 'no longer treated as a precompile'. |
| New test-framework primitives | 1 | The existing fork primitives (precompile list, expected fork pre-allocation and post-state) need a local extension. No new abstraction is needed. |
Confidence: Medium Uncertainty: Whether existing helpers already support this is unknown and was not assumed. |
| Security risks | 1 | The affected conditions (functional equivalence, behavior of 0x04 under DELEGATECALL, CALLCODE, STATICCALL and value transfer, and code-hash observability) can be checked locally. |
Confidence: Medium Uncertainty: Contracts or delegations that rely on 0x04 having precompile properties could be affected. Those are application or interaction concerns. |
| Performance risks | 1 | Component benchmarks of 0x04 calls under the new gas costs, with large inputs, are enough. No end-to-end assumption changes. |
Confidence: Low Uncertainty: No benchmark data is supplied, and level 0 is defensible. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 1 | Some details are omitted: nonce after installation, block-level access-list recording, and warm status. The surrounding text mostly supports one reading: set only the code and treat 0x04 as an ordinary account. |
Confidence: Medium Uncertainty: Block-level access-list recording of the activation write could have competing interpretations, which would make this level 2. |
Show 17 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | No new instruction is introduced. |
|
| Modified opcodes | 0 | Instruction semantics are unchanged. |
|
| Added precompiles | 0 | Not applicable. |
|
| Modified system contracts | 0 | Not applicable. |
|
| State-access ordering within opcode executionUnder-specified | 0 | CALL-family instructions keep their specified ordering. The only change is what runs at 0x04. |
Uncertainty: The supplied text does not say whether calls to 0x04 or the activation-time code write must now appear in the block-level access list. If they must, recordable-access expectations for 0x04 change. |
| Blob gas accounting changes | 0 | Blob gas accounting is unchanged. |
|
| State gas accounting changes | 0 | No state-gas charging rule is added or changed. |
|
| New EVM gas refund | 0 | There is no new refund mechanism. |
|
| New transaction types | 0 | Not applicable. |
|
| New or modified transaction validity mechanisms | 0 | Not applicable. |
|
| New block / header fields | 0 | Not applicable. |
|
| Encoding changes (RLP/SSZ) | 0 | Not applicable. |
|
| Block syncing changes | 0 | Only execution rules change. |
|
| Engine API changes | 0 | Not applicable. |
|
| Transition-tool interface changes | 0 | Fork-aware behavior is handled internally and needs no interface change. |
|
| New invariant on pre-existing tests | 0 | Changed values at 0x04 are rework, not a new assertion. |
|
| Cryptography | 0 | No cryptographic mechanism changes. |
|
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@6dac5e7491EIPS/eip-7666.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-7666.yaml· sha256b23dac6ee4f5 - Supporting documents supplied with the EIP
supporting/eip-3855.md