Evaluated on: · Spec revision: 2025-10-07 · c47ae3be21
Scope at the cutoff. At the information cutoff, this Draft proposed repricing seven existing state-creation-related gas parameters spanning contract creation, new accounts, storage, self-destruction, and EIP-7702 delegation. It also made contract-deployment charging depend on whether the exact runtime bytecode already existed in live state, adding warm/cold lookup and hashing costs while waiving the code-deposit charge for duplicates. To avoid the per-transaction cap constraining contract size, it required an independent two-dimensional gas/code-deposit-gas meter derived from EIP-8011 and relied on EIP-2780 to close the fresh-account funding bypass.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 11 criteria affected
- Plausible range
- 29–45 (High)
- Assessment cutoff
- 2025-10-16 · EIP revision
c47ae3be21(2025-10-07)
Score bands · Checklist revision 2
- 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
- EVM Gas rule changes3
- State gas accounting changes3
- Patterns affecting pre-existing tests3
- Security risks3
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: Material behavior is missing or internally unresolved. The draft does not define the code_deposit_gas meter's limit, exhaustion, fee, refund/revert, block aggregation, or transition-tool exposure, and its EIP-8011 reference conflicts with the statement that this gas contributes to neither the transaction nor block gas limit. CodeExists is also not defined across same-transaction creations, reverts, deletion or emptiness, and the text does not identify what becomes warm or when the lookup is recorded relative to charging and failure.
Plausible total
29–45
recorded score 35 · plausible tiers High
Affected criteria (11)
- State-access ordering within opcode execution (2)
- State gas accounting changes (3)
- New or modified transaction validity mechanisms (2)
- New block / header fields (0)
- Encoding changes (RLP/SSZ) (0)
- Block syncing changes (0)
- Engine API changes (0)
- Transition-tool interface changes (2)
- New invariant on pre-existing tests (2)
- New test-framework primitives (2)
- Unspecified behavior requiring cross-client consensus (3)
Unresolved questions at the cutoff (5)
- Is code_deposit_gas charged toward the transaction gas limit, a separate limit, no limit, or a spill path, and how is it converted into the fee paid?
- Does the required two-dimensional EIP-8011 variant import max_gas_metered, the header extension, base-fee rule, and block-validity rule, or only an internal execution counter?
- What precise live-state condition makes CodeExists true after creation, revert, deletion, empty-code return, or another creation earlier in the same transaction?
- What state object is warm or cold for storage_access_cost, is that access recorded, and at what point relative to gas charging and possible failure?
- How are code_deposit_gas and its failure or success outcome represented in the transition-tool and test-framework interfaces?
Notable ambiguities noted by the assessor (3)
- “Derived from” and “consistent with” EIP-8011 do not establish which of that draft's transaction, block, header, and base-fee mechanics EIP-8037 imports.
- The Backwards Compatibility section refers to “new calldata cost rules” and “floor cost values,” although the EIP's specification defines state-creation and code-deposit changes rather than a calldata floor.
- The test matrix for the new lookup is multiplicative across CREATE/CREATE2, new/duplicate/empty runtime code, warm/cold status, same-block order, success/revert, and ordinary-gas versus code-deposit-gas boundaries.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| EVM Gas rule changes | 3 | This is anchor 3: it introduces a new multidimensional gas-accounting mechanism and makes it interact with existing creation accounting, while also repricing several existing mechanisms and therefore their gas tests. |
Confidence: High Uncertainty: The existence of the new mechanism is explicit, although its complete limit and exhaustion semantics are not. |
| State gas accounting changesUnder-specified | 3 | This is anchor 3: code deposit is state writing, and the proposal introduces a new independent charging mechanism for it while changing existing state creation costs and their tests. |
Confidence: Medium Uncertainty: The draft does not formally define the second meter's budget, exhaustion, fee, or spill relationship with ordinary execution gas. |
| Patterns affecting pre-existing tests | 3 | This is anchor 3 because a major and diverse body of pre-existing gas and state-transition tests across opcode, transaction, storage, account, and delegation paths must be reworked rather than only a contrived subset. |
Confidence: High Uncertainty: The sealed sources do not inventory existing tests, so the exact number of affected vectors is not available; the breadth follows from the listed consensus paths. |
| Security risks | 3 | This is anchor 3 because the mechanism touches several critical components— transaction and block resource bounds, contract deployment, persistent state, gas estimation, and denial-of-service protection—and requires broad security review, adversarial boundary tests, and performance fuzzing. |
Confidence: High Uncertainty: The absence of defined meter limits or mitigations leaves the exact attack envelope unresolved. |
| Performance risks | 3 | This is anchor 3: the uncapped meter and size-dependent hashing/state work cannot be validated wholly in isolation and have complex interactions with existing transaction limits, block limits, contract-size bounds, state storage, and deployment performance. |
Confidence: High Uncertainty: The proposal itself says benchmarking and possible mitigations remain to be determined, so the magnitude is open even though the risk class is explicit. |
| Edge/boundary conditions | 3 | This is anchor 3. Multiple boundary-prone mechanisms combine multiplicatively, especially code existence, same-block order, warmness, creation path, runtime length, success or failure, and meter exhaustion. |
Confidence: High Uncertainty: Exact exhaustion semantics of the independent meter are unspecified, which increases uncertainty about the final boundary matrix without reducing its evident breadth. |
| Cross-EIP interactions | 3 | This is anchor 3 because five identified EIPs participate in size-boundary, intrinsic-gas, delegation-refund, transaction-cap, and multidimensional- metering behavior that needs coordinated tests. There are two EIPs beyond the first three, so the uncapped row's +1-per-three rule adds no bonus. |
Confidence: High Uncertainty: EIP-170 is a bounded size interaction rather than a dependency, but it still supplies a coordinated contract-size boundary used by this proposal. Interacting EIPs: EIP-170, EIP-2780, EIP-7702, EIP-7825, EIP-8011 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 3 | This is anchor 3. Previously unobservable code-storage/deduplication details become consensus-visible through gas charging, while constructible cases involving reverts, same-transaction lifecycle, warmness, empty code, and second-meter exhaustion require client agreement before stable vectors can be baselined. |
Confidence: High Uncertainty: The draft gives an intended same-block and exact-bytecode reading, but does not settle all observable state-lifecycle and multidimensional-meter cases. |
| State-access ordering within opcode executionUnder-specified | 2 | This is anchor 2 because a new state access and gas-charge sequence applies to multiple creation operations. The ordering must be exercised at gas boundaries for both CREATE and CREATE2, rather than for only one opcode. |
Confidence: Medium Uncertainty: The draft does not identify which address or code object is warmed, whether the lookup is recorded as an access, or the exact ordering at failure and out-of-gas boundaries. |
| New or modified transaction validity mechanismsUnder-specified | 2 | This is anchor 2 because the modified intrinsic-gas calculation affects existing transaction-validity vectors and requires targeted updates across transaction types, but the localized predicate does not itself require a redesign of the whole testing infrastructure. |
Confidence: Medium Uncertainty: The separate code-deposit meter's relationship to transaction gas limits and out-of-gas validity is not formally defined and could expand this row. |
| Transition-tool interface changesUnder-specified | 2 | This is anchor 2: testing an additional consensus gas dimension requires a new transition-tool mechanism, not merely one unrelated scalar input field. |
Confidence: Low Uncertainty: EIP-8037 never specifies the transition-tool fields or whether the complete EIP-8011 return-vector interface is imported. |
| New invariant on pre-existing testsUnder-specified | 2 | This is anchor 2 because the broad category of pre-existing contract- creation tests gains a mechanically checkable second-meter invariant in addition to its original state and ordinary-gas results. |
Confidence: Medium Uncertainty: The EIP does not say how code_deposit_gas is surfaced to tests, so the exact assertion plumbing and whether every creation vector exposes it are open. |
| New test-framework primitivesUnder-specified | 2 | This is anchor 2 because reusable expectations or modifiers are needed for code-deposit-gas outcomes and live-state code-existence setup within this EIP's suite; these go beyond writing only ordinary scalar-gas test functions. |
Confidence: Medium Uncertainty: The historical text does not describe the test framework, so it is unclear how much of the state setup can already be represented by existing helpers. |
| Cryptography | 1 | This is anchor 1: deployment functionality gains a new consensus use of the well-known Keccak hash, but no novel cryptographic primitive is introduced. |
Confidence: High |
Show 14 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | This is anchor 0 because no opcode is added. |
|
| Modified opcodes | 0 | This is anchor 0 under this row's explicit exclusion of gas changes. At sufficient gas, the deployed account still receives the exact runtime code; the new-versus-duplicate distinction changes charging and code-object storage linkage rather than an opcode result. |
Uncertainty: The draft describes linking an account to an existing code object, but does not specify a non-gas state-transition result distinct from the normal codeHash outcome. |
| Added precompiles | 0 | This is anchor 0 because no precompile is added. |
|
| Modified precompiles | 0 | This is anchor 0 because neither precompile logic nor a precompile gas schedule is modified. |
|
| Added system contracts | 0 | This is anchor 0 because no system contract is added. |
|
| Modified system contracts | 0 | This is anchor 0 because the proposal specifies neither a direct system- contract modification nor an identifiable indirect effect on one. |
|
| Blob gas accounting changes | 0 | This is anchor 0 because the proposal changes execution and state-creation charging, not blob gas accounting. |
|
| New EVM gas refund | 0 | This is anchor 0. EIP-8037 changes the numerical inputs to an existing EIP-7702 refund, but it does not introduce a new gas-refund mechanism. |
|
| New transaction types | 0 | This is anchor 0 because no new transaction type is introduced. |
|
| New block / header fieldsUnder-specified | 0 | This is anchor 0 on the best-supported EIP-8037 reading: no new header field is specified, and its uncapped code-deposit meter does not directly require the referenced EIP-8011 max field. |
Uncertainty: It is unresolved whether “a two-dimensional version of EIP-8011” imports the EIP-8011 header field despite EIP-8037's statement that code-deposit cost does not contribute to the block gas limit. |
| Encoding changes (RLP/SSZ)Under-specified | 0 | This is anchor 0 on the primary reading because EIP-8037 does not introduce a transaction-, block-, or interface-level encoding change. |
Uncertainty: The reference to a two-dimensional EIP-8011 variant does not say whether EIP-8011's header extension is imported; importing it would change this row. |
| Block syncing changesUnder-specified | 0 | This is anchor 0 on the primary reading because EIP-8037 introduces no explicit block-RLP validation mechanism requiring sync tests. |
Uncertainty: A full two-dimensional import of EIP-8011 could imply a header extension, but EIP-8037 does not state that import and says code-deposit cost is outside the block gas limit. |
| New fork activation mechanism | 0 | This is anchor 0 because ordinary fork-gated rule activation is used without a special fork-block state or internal-variable modification. |
|
| Engine API changesUnder-specified | 0 | This is anchor 0 because the proposal does not specify any Engine API field or new Engine API communication mechanism. |
Uncertainty: The omitted block-level semantics of the second meter leave open whether a later specification would need to carry anything through execution payloads. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@c47ae3be21EIPS/eip-8037.md committed 2025-10-07 · information cutoff 2025-10-16T08:11:36Z- Rubric
- Checklist revision 2 ·
ethspecs/pm@3d8c0128c5 - Evaluator
- gpt-5.6-sol at xhigh reasoning effort · isolation
bubblewrap_one_eip_capsule_v1 - Source record
- Frozen research record
research/tasks/05-retrospective-complexity-assignment/outputs/fork-eips/amsterdam/eip-8037.yaml· sha25687330dd8901e - Supporting documents in the sealed package
supporting/eip-170.md,supporting/eip-2780.md,supporting/eip-7702.md,supporting/eip-7825.md,supporting/eip-8011.md