Retrospective LLM-Based Complexity Evaluations

EIP complexity assessment

EIP-8037: State Creation Gas Cost Increase

Assessed in Amsterdam / Glamsterdam. The score describes the EIP text available at the assessment cutoff, not the EIP as it stands today.

RetrospectiveAmsterdam / GlamsterdamAssessment cutoff 2025-10-16Included by cutoffLayers: execution
LLM Completescore 35
Human Completescore 28 · Checklist revision 1· merged checklist

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.

35HighHigh
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

  1. EVM Gas rule changes3
  2. State gas accounting changes3
  3. Patterns affecting pre-existing tests3
  4. 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.

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

EIP-8037 Amsterdam / Glamsterdam: LLM criterion scores and rationale
CriterionScoreWhy this scoreEvidence / uncertainty
EVM Gas rule changes3This 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.
  • eip.md · Specification / Parameter changes, lines 30-46 Seven existing gas parameters are increased and an independent code-deposit-gas meter is introduced alongside ordinary gas.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-59 Deployment charging becomes conditional on live-state code existence and adds warm/cold lookup and runtime hashing charges for CREATE, CREATE2, and creation transactions.
Confidence: High
Uncertainty: The existence of the new mechanism is explicit, although its complete limit and exhaustion semantics are not.
State gas accounting changesUnder-specified3This 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.
  • eip.md · Specification, lines 30-55 The proposal reprices storage-producing operations and introduces an independent code-deposit meter whose charge depends on whether runtime code must newly be stored.
  • eip.md · Rationale / Harmonization across state creation, lines 75-89 State-writing rates are derived from a unit cost of 1,900 gas per new state byte for code, account, storage-slot, and authorization growth.
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 tests3This 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.
  • eip.md · Specification / Parameter changes, lines 32-42 Repricing reaches CREATE, CREATE2, contract-creation transactions, fresh account funding, SELFDESTRUCT, SSTORE, and EIP-7702 delegation.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-59 All deployment paths gain conditional duplicate-code charging, state lookup, and hashing behavior.
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 risks3This 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.
  • eip.md · Security Considerations, lines 143-155 The draft identifies application usability and pricing-bypass concerns and warns that uncapped very large contract creation could be exploited to stress the network, with mitigations still undetermined.
  • eip.md · Rationale / Multidimensional metering, lines 91-97 The independent meter deliberately changes the interaction between code deposit, EIP-7825's transaction cap, and ordinary gas accounting.
Confidence: High
Uncertainty: The absence of defined meter limits or mitigations leaves the exact attack envelope unresolved.
Performance risks3This 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.
  • eip.md · Security Considerations / Independent metering for code deposit costs, lines 153-155 Because deposit cost is outside block and transaction limits, the draft warns that an attacker could create very large contracts that stress the network and explicitly calls for more benchmarking and analysis.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-59 Every deployment adds a live-state existence lookup and runtime hashing, including a separate runtime hash for CREATE2.
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 conditions3This 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.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-59 Charging branches on new versus duplicate code, warm versus cold access, runtime length rounding, and CREATE versus CREATE2 hashing.
  • eip.md · Rationale / Duplicated bytecode discount, lines 99-104 Same-block first/subsequent deployments, exact byte identity, and empty code are called out as distinct boundary cases.
  • supporting/eip-170.md · Specification, lines 14-21 Contract creation also has a maximum-code-size boundary at 24,576 bytes.
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 interactions3This 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.
  • eip.md · Front matter and Rationale, lines 1-11 and 63-97 EIP-2780 is required; the pricing table and meter design directly use the EIP-170 size limit, EIP-7702 delegation costs, EIP-7825 transaction cap, and EIP-8011 multidimensional model.
  • eip.md · Security Considerations / Mispricing with respect to ETH transfers, lines 147-155 EIP-2780 is needed to prevent bypassing the new-account charge, while the independent meter changes the protection afforded by transaction and block gas bounds.
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-specified3This 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.
  • eip.md · Motivation, lines 18-20 The proposal observes that duplicate code may not be stored again by clients even though this implementation detail previously had no charging consequence.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-55 CodeExists against live state now determines a consensus gas charge, but the meaning, access target, and lifecycle of that predicate are not fully defined.
  • eip.md · Rationale and Security Considerations, lines 91-104 and 153-155 The draft simultaneously refers to EIP-8011-style multidimensional metering and says deposit cost contributes to neither the transaction nor block gas limit, without specifying complete reconciliation semantics.
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-specified2This 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.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-59 Contract creation first checks CodeExists against live state, then applies conditional deposit charging plus a warm/cold access charge and a runtime hash charge; the text expressly covers both CREATE and CREATE2.
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-specified2This 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.
  • eip.md · Security Considerations / Mispricing with respect to ETH transfers, lines 147-151 EIP-8037 requires the EIP-2780 rule that adds the repriced GAS_NEW_ACCOUNT to intrinsic gas for value transfers to fresh accounts.
  • supporting/eip-2780.md · Specification / New-account surcharge and Intrinsic gas computation, lines 68-108 The required EIP defines state-dependent conditions under which existing transaction types add GAS_NEW_ACCOUNT during intrinsic-gas calculation.
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-specified2This is anchor 2: testing an additional consensus gas dimension requires a new transition-tool mechanism, not merely one unrelated scalar input field.
  • eip.md · Specification / Multidimensional metering for code deposit gas, lines 44-46 The state transition must independently meter ordinary gas and code-deposit gas.
  • supporting/eip-8011.md · Specification / Gas accounting, lines 61-80 The referenced multidimensional design tracks a gas-used vector and returns it in addition to scalar gas used from transaction execution.
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-specified2This 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.
  • eip.md · Specification / Multidimensional metering for code deposit gas, lines 44-53 Contract creation now produces a separate code-deposit-gas result, which is zero for code already present and proportional to length for new code.
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-specified2This 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.
  • eip.md · Specification / Contract deployment cost calculation, lines 44-55 Tests must express a second gas dimension and distinguish new from pre-existing runtime code, including warm/cold lookup and hash charges.
  • eip.md · Rationale / Duplicated bytecode discount, lines 99-104 The required cases include same-block ordering, exact-code identity, and special handling of empty code.
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.
Cryptography1This is anchor 1: deployment functionality gains a new consensus use of the well-known Keccak hash, but no novel cryptographic primitive is introduced.
  • eip.md · Specification / Contract deployment cost calculation, lines 50-59 Duplicate detection is a consensus decision keyed by keccak256 of exact runtime bytecode, and CREATE2 must perform this runtime hash separately from its existing init-code hash.
Confidence: High
Show 14 zero-score criteria
Zero-score criteria (Checklist revision 2)
CriterionScoreWhy this scoreEvidence / uncertainty
Added opcodes0This is anchor 0 because no opcode is added.
  • eip.md · Specification / Parameter changes, lines 34-42 The operation table only reprices existing CREATE, CREATE2, SELFDESTRUCT, and SSTORE paths plus existing transaction and delegation paths.
Modified opcodes0This 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.
  • eip.md · Specification / Contract deployment cost calculation, lines 48-59 CREATE and CREATE2 gain conditional deposit, lookup, and hash charges, but the described externally observable distinction is their gas charging.
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 precompiles0This is anchor 0 because no precompile is added.
  • eip.md · Specification, lines 28-59 The complete specification adds gas and deployment rules and identifies no new precompile address or callable precompile behavior.
Modified precompiles0This is anchor 0 because neither precompile logic nor a precompile gas schedule is modified.
  • eip.md · Specification / Parameter changes, lines 30-42 No precompile appears in the complete list of repriced operations or gas parameters.
Added system contracts0This is anchor 0 because no system contract is added.
  • eip.md · Specification / Parameter changes, lines 30-46 The proposal modifies protocol gas parameters and metering and does not introduce a privileged contract address or system-contract code.
Modified system contracts0This is anchor 0 because the proposal specifies neither a direct system- contract modification nor an identifiable indirect effect on one.
  • eip.md · Specification / Parameter changes, lines 30-42 The affected objects are generic creation, account, storage, destruction, and delegation operations; no pre-existing system contract is identified.
Blob gas accounting changes0This is anchor 0 because the proposal changes execution and state-creation charging, not blob gas accounting.
  • eip.md · Specification / Multidimensional metering for code deposit gas, lines 44-46 The only dimensions introduced by this proposal are ordinary gas and code-deposit gas; no blob resource or blob-gas rule is introduced.
New EVM gas refund0This 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.
  • eip.md · Specification / Parameter changes, lines 34-42 PER_EMPTY_ACCOUNT_COST and PER_AUTH_BASE_COST are repriced, but no refund rule is added by EIP-8037.
  • supporting/eip-7702.md · Specification / Behavior, lines 104-124 EIP-7702 already defines the refund as the difference between those two parameters when an authority is non-empty.
New transaction types0This is anchor 0 because no new transaction type is introduced.
  • eip.md · Specification / Parameter changes, lines 34-42 The proposal reprices existing contract-creation transactions and EIP-7702 delegation rather than defining a new typed transaction envelope.
New block / header fieldsUnder-specified0This 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.
  • eip.md · Security Considerations / Independent metering for code deposit costs, lines 153-155 The draft says code-deposit cost is outside traditional metering and does not contribute to the block gas limit, and it specifies no header field.
  • supporting/eip-8011.md · Specification / Block header extension, lines 82-97 The referenced full EIP-8011 design does define max_gas_metered as a new header field, exposing an unresolved difference from EIP-8037's text.
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-specified0This is anchor 0 on the primary reading because EIP-8037 does not introduce a transaction-, block-, or interface-level encoding change.
  • eip.md · Specification, lines 28-59 The specification defines parameter and execution-accounting changes but no transaction, block, or interface RLP/SSZ 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-specified0This is anchor 0 on the primary reading because EIP-8037 introduces no explicit block-RLP validation mechanism requiring sync tests.
  • eip.md · Specification, lines 28-59 The specified changes concern gas parameters, an internal meter, and contract-deployment charging; no block RLP validation rule is stated.
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 mechanism0This is anchor 0 because ordinary fork-gated rule activation is used without a special fork-block state or internal-variable modification.
  • eip.md · Specification / Parameter changes, lines 30-42 Activation switches gas parameter values; no one-time state migration or modification of an existing internal variable is specified.
Engine API changesUnder-specified0This is anchor 0 because the proposal does not specify any Engine API field or new Engine API communication mechanism.
  • eip.md · Specification, lines 28-59 No Engine API endpoint, payload field, or communication mechanism appears among the specified parameter, meter, and deployment changes.
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@c47ae3be21 EIPS/eip-8037.md committed 2025-10-07 · information cutoff 2025-10-16T08:11:36Z
Current master · File history · blob 5d0192d263 · sha256 03b57db0f703
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 · sha256 87330dd8901e
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

Evaluated on: · Spec revision: 2025-10-07 · c47ae3be21

Scope at the cutoff. At the sealed historical cutoff, draft EIP-8037 reprices seven state-creation-related gas parameters, adds separate code-deposit gas metering, and discounts deployments whose runtime bytecode already exists. It requires EIP-2780 and explicitly interacts with EIPs 170, 7702, 7825, and 8011.

21HighHigh
Evaluator
LLMChecklist v1
Confidence
Medium
Under-specified at assessment cutoff
Yes — 10 criteria affected
Plausible range
17–30 (Medium–High)
Assessment cutoff
2025-10-16 · EIP revision c47ae3be21 (2025-10-07)
Score bands · Checklist revision 1
  • Low <10
  • Medium 10–19
  • High ≥20

24 criteria scored 0–3 (4 in exceptional cases; cross-EIP interactions is uncapped); nominal maximum 72.

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

  1. EVM Gas rule changes3
  2. New or modified transaction validity mechanisms3
  3. Patterns affecting pre-existing tests3
  4. 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: The proposal requires a two-dimensional gas model but does not normatively define how code_deposit_gas is accumulated, limited, charged, refunded, exposed, or validated at transaction and block boundaries. It also leaves failure/revert lifecycle details for code-existence-based charging implicit. The referenced EIP-8011 model is itself six-dimensional and contains header and validity machinery that EIP-8037 does not explicitly adopt.

Unresolved questions at the cutoff (4)
  • What exact transaction- and block-level limits, fee rules, refund rules, and out-of-gas conditions apply to code_deposit_gas?
  • Does the required two-dimensional EIP-8011 variant inherit max_gas_metered, its block-header encoding, block-validity rule, and base-fee update rule?
  • Must a transition tool expose or accept the second dimension, and if so through which fields or mechanism?
  • How do failed or reverted creations affect CodeExists observations and charges, including repeated creations within one transaction or block?
Notable ambiguities noted by the assessor (3)
  • "A two-dimensional version of EIP-8011" is required if EIP-8011 is absent, but the proposal does not say which parts of the six-dimensional design are inherited or replaced.
  • CodeExists(keccak256(R), live_state) is not defined precisely enough to settle failed/reverted creation behavior or the boundary between consensus state and client code-storage deduplication.
  • The Backwards Compatibility section refers to "updated gas parameters," "new calldata cost rules," and "new floor cost values," although the specification does not define calldata or floor-cost rules.

Criterion breakdown

EIP-8037 Amsterdam / Glamsterdam: LLM criterion scores and rationale
CriterionScoreWhy this scoreEvidence / uncertainty
EVM Gas rule changesUnder-specified3This introduces a new gas-accounting mechanism and changes existing CREATE, CREATE2, creation-transaction, SSTORE, SELFDESTRUCT, account-creation, and EIP-7702 charging, necessarily affecting existing mechanisms and their tests; this matches score 3.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Specification > Parameter changes; Multidimensional metering for code deposit gas Seven existing gas parameters are repriced and a separate code_deposit_gas dimension is introduced for contract deployment.
  • eip.md · Specification > Contract deployment cost calculation CREATE-family charging now depends on runtime-code existence, warm/cold access, runtime hashing, and bytecode length.
Confidence: High
Uncertainty: The exact mechanics of the second gas dimension are under-specified, but the presence and broad interaction of the new mechanism are explicit.
New or modified transaction validity mechanismsUnder-specified3Existing intrinsic-gas validity changes across transaction families and a new gas dimension must be represented outside the ordinary per-transaction limit, requiring extensive test rework and multidimensional test support; this meets score 3.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Specification > Parameter changes; Multidimensional metering for code deposit gas Intrinsic and execution-related costs across existing transaction forms are repriced, while code-deposit gas is split from ordinary transaction gas.
  • supporting/eip-2780.md · Specification > New-account surcharge; Intrinsic gas computation Required EIP-2780 adds GAS_NEW_ACCOUNT to intrinsic gas for value transfers creating accounts, and EIP-8037 increases that parameter.
  • supporting/eip-7825.md · Specification > Gas Cap; Changes to EVM Behavior The existing transaction gas-limit cap is a validity rule; EIP-8037's separate meter is introduced specifically so code-deposit costs do not constrain deployments under that cap.
Confidence: Medium
Uncertainty: The exact validity, fee, and failure semantics of code_deposit_gas are not fully specified, making the needed infrastructure clear in kind but uncertain in detail.
Patterns affecting pre-existing tests3Existing tests across diverse transaction and opcode paths, gas-estimation cases, warm/cold access, and contract deployment must be reworked, meeting the major-and-diverse score-3 anchor.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Specification > Parameter changes Repricing spans contract creation, new-account funding, SELFDESTRUCT account creation, SSTORE, and EIP-7702 delegation.
  • eip.md · Specification > Contract deployment cost calculation; Backwards Compatibility Contract-deployment charging gains new code-existence branches, and the proposal is explicitly backwards incompatible for gas estimation.
Confidence: High
Uncertainty: The package contains no test inventory, so the exact count is unknown, but the affected categories are explicit and diverse.
Security risksUnder-specified3The new accounting interacts with critical transaction validity, block resource limits, contract creation, and state-growth protections, substantially changing gas-based security assumptions across multiple components; this warrants the extensive-review score of 3.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Security Considerations > Mispricing with respect to ETH transfers Repricing account creation creates an avoidance path unless the EIP-2780 intrinsic surcharge is coordinated with this proposal.
  • eip.md · Security Considerations > Independent metering for code deposit costs The proposal explicitly identifies an attacker path using very large contracts outside the traditional block and transaction gas limits and says mitigations may be needed.
Confidence: High
Uncertainty: The proposal itself says more analysis is needed and does not define any additional mitigation for the independent-meter attack surface.
Performance risksUnder-specified3The mechanism interacts with block throughput, transaction caps, hashing, state/database growth, and maximum-size deployments and cannot be validated in isolation; the stated network-stress concern and benchmark requirement meet score 3.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Security Considerations > Independent metering for code deposit costs Code-deposit cost is excluded from traditional block and transaction gas limits, potentially allowing very large contracts that stress the network; benchmarking and analysis are required.
  • eip.md · Motivation; Rationale > Multidimensional metering The repricing targets long-run database growth at much higher block limits and deliberately changes the transaction-cap treatment of contract deployments.
Confidence: High
Uncertainty: The package supplies estimates but no benchmark results, and the final second-dimension limits are unresolved.
Edge/boundary conditionsUnder-specified3Multiple boundary-prone mechanisms interact across creation forms, state visibility, bytecode sizes, and access status, with the code-deduplication branch requiring an elevated matrix of cases; this matches score 3.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Specification > Contract deployment cost calculation; CREATE vs CREATE2 Charging branches on code existence and warm/cold state, rounds length to words, and distinguishes CREATE2's init-code hash from the runtime-code hash.
  • eip.md · Rationale > Duplicated bytecode discount The proposal calls out same-block ordering, exact-byte equality, repeated deployments, mandatory hashing, and empty-code handling.
Confidence: High
Uncertainty: Revert and failed-creation effects on code-existence accounting are not explicitly described, adding further test uncertainty without changing the anchor selection.
Cross-EIP interactionsUnder-specified3Correct behavior requires coordinated testing across several strongly coupled proposals: account creation and intrinsic gas, delegation costs/refunds, transaction caps, contract size, and the multidimensional metering model. This meets score 3.

Exceptional score: Not applicable; score is not 4.

  • eip.md · Front matter requires; Rationale > Multidimensional metering; Security Considerations EIP-8037 requires EIP-2780, depends on or derives behavior from EIPs 7825 and 8011, and changes EIP-7702 parameters.
  • supporting/eip-170.md · Specification EIP-170's maximum code size is part of the deployment-size behavior that independent code-deposit metering is intended to preserve.
  • supporting/eip-7702.md · Specification > Parameters; Set code transaction > Gas Costs EIP-7702 uses both parameters repriced by EIP-8037 in intrinsic charging and refund behavior.
Confidence: High
Uncertainty: The exact inheritance boundary from EIP-8011 is unresolved, increasing coordination risk rather than changing the clear presence of multiple strong interdependencies.
Show 17 zero-score criteria
Zero-score criteria (Checklist revision 1)
CriterionScoreWhy this scoreEvidence / uncertainty
Added opcodes0No new opcode is introduced, matching score 0.
  • eip.md · Specification > Parameter changes Existing CREATE, CREATE2, SELFDESTRUCT, and SSTORE operations are repriced; no opcode is added.
Uncertainty: No material uncertainty in the sealed sources.
Modified opcodes0The historical definition explicitly excludes gas changes from modified-opcode scoring; no non-gas opcode behavior modification or deprecation is specified, so score 0 applies.
  • eip.md · Specification > Parameter changes; Contract deployment cost calculation Existing opcodes receive new gas amounts and gas-accounting branches, while their execution semantics and availability are not otherwise changed.
Uncertainty: Runtime-code deduplication changes charging and storage implementation treatment, but the resulting account codeHash semantics described by the proposal remain the same.
Added precompiles0No precompile is added, matching score 0.
  • eip.md · Specification No new precompile address, input, behavior, or gas schedule is specified.
Uncertainty: No material uncertainty in the sealed sources.
Modified precompiles0No pre-existing precompile is modified, matching score 0.
  • eip.md · Specification > Parameter changes The complete parameter table covers state-creation and delegation costs and does not modify any precompile gas schedule or logic.
Uncertainty: No material uncertainty in the sealed sources.
Added system contracts0No system contract is added, matching score 0.
  • eip.md · Specification The proposal changes gas parameters and contract-creation accounting without introducing any system-contract address, code, state, or action.
Uncertainty: No material uncertainty in the sealed sources.
Modified system contracts0No modification or evidenced indirect effect on a pre-existing system contract is introduced.
  • eip.md · Specification > Parameter changes; Contract deployment cost calculation All listed effects concern general state-creation operations and contract deployment; no pre-existing system contract is identified as directly or indirectly affected.
Uncertainty: No material uncertainty in the sealed sources.
Blob gas accounting changes0No blob gas accounting change is specified, matching score 0.
  • eip.md · Specification > Parameter changes; Multidimensional metering for code deposit gas The changes concern execution gas and code-deposit gas; no blob-gas rule is introduced or modified.
Uncertainty: No material uncertainty in the sealed sources.
New EVM gas refund0EIP-8037 changes inputs to an existing EIP-7702 refund but introduces no new gas-refund mechanism, which is the score-0 anchor.
  • eip.md · Specification > Parameter changes PER_EMPTY_ACCOUNT_COST and PER_AUTH_BASE_COST are repriced, but no refund procedure is added.
  • supporting/eip-7702.md · Specification > Set code transaction > Behavior, step 7 EIP-7702 already defines the refund based on the difference between those two parameters.
Uncertainty: The resulting existing refund amount changes; the historical row is specifically framed around introduction of a new refund mechanism.
New transaction types0No new transaction type is introduced, matching score 0.
  • eip.md · Specification > Parameter changes Existing contract-creation transactions, account-funding transactions, and EIP-7702 transactions are affected; no transaction type is defined.
Uncertainty: No material uncertainty in the sealed sources.
New block / header fieldsUnder-specified0No new block or header field is introduced in the assigned proposal, so score 0 applies.
  • eip.md · Specification > Multidimensional metering for code deposit gas The proposal names two metering dimensions but specifies no block or header field.
  • supporting/eip-8011.md · Specification > Block header extension The referenced six-dimensional proposal defines max_gas_metered, but EIP-8037 does not explicitly adopt that field.
Uncertainty: It is unresolved whether the required two-dimensional EIP-8011 variant is intended to inherit max_gas_metered.
Encoding changes (RLP/SSZ)Under-specified0No encoding change is specified by the assigned proposal, so the binary score is 0.
  • eip.md · Specification EIP-8037 specifies gas and state/code-existence accounting but no transaction, block, or interface RLP/SSZ encoding change.
  • supporting/eip-8011.md · Specification > Block header extension Full EIP-8011 includes a header encoding extension, but the assigned EIP neither copies that rule nor says its two-dimensional variant inherits it.
Uncertainty: The incomplete reference to a two-dimensional EIP-8011 variant leaves possible header encoding behavior unresolved.
Block syncing changesUnder-specified0With no block RLP validation mechanism specified for the assigned proposal, score 0 is the conservative historical-checklist result.
  • eip.md · Specification > Multidimensional metering for code deposit gas EIP-8037 introduces a code-deposit meter but does not specify a block RLP field or a new block RLP validation rule.
  • supporting/eip-8011.md · Specification > Block header extension; Block validity condition The referenced full EIP-8011 design has a header extension, but EIP-8037 does not state that this portion is inherited by its two-dimensional variant.
Uncertainty: The phrase "two-dimensional version of EIP-8011" leaves unclear whether EIP-8011's block header and validation machinery would be inherited.
New fork activation mechanism0A normal scheduled rule change without an activation-block state or internal-variable transition does not introduce the mechanism described by the score-3 anchor, so score 0 applies.
  • eip.md · Specification > Parameter changes; Backwards Compatibility The new rules apply upon a scheduled network upgrade, but no one-time state mutation, existing internal-variable mutation, or special activation-block transition is specified.
Uncertainty: Existing gas constants change at activation, but the proposal describes no special one-time activation operation beyond selecting the new rules.
Engine API changes0No Engine API addition or change is introduced, matching score 0.
  • eip.md · Specification The normative changes are execution gas parameters, code-deposit metering, and contract deployment charging; no Engine API field, endpoint, or communication mechanism is specified.
Uncertainty: No material uncertainty in the sealed sources.
Engine API encoding changes0Conservatively applying the undefined row from its label and global score range, the absence of any Engine API encoding change supports score 0.
  • eip.md · Specification No Engine API payload, field, endpoint, or encoding is described among the proposal's execution-layer changes.
Uncertainty: The historical rubric contains this checklist row but provides no dedicated definition, so the score cannot be anchored more precisely.
Transition-tool interface changesUnder-specified0No modification to the transition-tool interface is specified, so the conservative package-grounded score is 0.
  • eip.md · Specification > Multidimensional metering for code deposit gas The proposal names internal gas and code_deposit_gas dimensions but specifies no field or mechanism for a transition-tool interface.
Uncertainty: The second-dimension execution model is incomplete and could ultimately require an interface mechanism, but no such requirement is present in the sealed proposal.
Cryptography0Use of the existing runtime-code hash does not introduce new cryptography, matching score 0.
  • eip.md · Specification > Contract deployment cost calculation; CREATE vs CREATE2 The proposal uses keccak256 of runtime bytecode for code-existence checking and charges for that hashing; it does not define a new cryptographic mechanism.
Uncertainty: No material uncertainty in the sealed sources.
Assessment provenance
Assessed EIP revision
ethereum/EIPs@c47ae3be21 EIPS/eip-8037.md committed 2025-10-07 · information cutoff 2025-10-16T08:11:36Z
Current master · File history · blob 5d0192d263 · sha256 03b57db0f703
Rubric
Checklist revision 1 · ethspecs/pm@d936bcb349
Evaluator
gpt-5.6-sol at xhigh reasoning effort · isolation bubblewrap_one_eip_capsule_v1
Source record
Frozen research record research/tasks/05c-amsterdam-human-assessment-alignment/outputs/automated/eip-8037.yaml · sha256 ae29010b277a
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

Evaluated on: Not recorded · Spec revision: 2025-10-28 · dee539a58f

28HighHigh
Evaluator
HumanChecklist v1
Confidence
Not recorded
Under-specified at assessment cutoff
Not recorded in the checklist
Checklist published
2025-12-04 · EIP at dee539a58f
Score bands · Checklist revision 1
  • Low <10
  • Medium 10–19
  • High ≥20

24 criteria scored 0–3 (4 in exceptional cases; cross-EIP interactions is uncapped); nominal maximum 72.

Complexity profile

Each segment is one criterion's contribution to the Human total. Hover or focus a segment for its score and rationale.

Top complexity drivers

  1. Patterns affecting pre-existing tests9
  2. EVM Gas rule changes8
  3. New or modified transaction validity mechanisms4
  4. Edge/boundary conditions3

Criterion breakdown

EIP-8037 Amsterdam / Glamsterdam: Human criterion scores and rationale
CriterionScoreWhy this scoreNotes
Patterns affecting pre-existing testsExceptional9CREATE, CALL, and SSTORE are values that have not been updated since Frontier. This change will break an excessive amount of static tests (https://github.com/ethereum/execution-specs/tree/forks/osaka/tests/static) and will require some rework in existing python tests. Counting each of these as a multiplier for this row.
EVM Gas rule changesExceptional8GAS_CREATE + GAS_CODE_DEPOSIT can be considered the same category of change; CALL by itself requires testing must be separated; SSTORE requires its own testing plus the new multidimensional metering logic; EOA changes are simple and reduced in scope.
New or modified transaction validity mechanismsExceptional4Modifies the contract creation from a contract-creating transaction, and the EOA delegation cost.
Edge/boundary conditions3Bundling all changes into this single row since they are similar.
New EVM gas refund2Refund tests are indirectly affected by the SSTORE change.
Cross-EIP interactions2Considering contract creation and account calling are so fundamental, this will require oversight on other EIPs that are CFI'd.
Show 18 zero-score criteria
Zero-score criteria (Checklist revision 1)
CriterionScoreWhy this scoreNotes
Added opcodes0No rationale recorded.
Blank cell read as zero because the published total proves it.
Modified opcodes0No rationale recorded.
Blank cell read as zero because the published total proves it.
Added precompiles0No rationale recorded.
Blank cell read as zero because the published total proves it.
Modified precompiles0No rationale recorded.
Blank cell read as zero because the published total proves it.
Added system contracts0No rationale recorded.
Blank cell read as zero because the published total proves it.
Modified system contracts0No rationale recorded.
Blank cell read as zero because the published total proves it.
Blob gas accounting changes0No rationale recorded.
Blank cell read as zero because the published total proves it.
New transaction types0No rationale recorded.
Blank cell read as zero because the published total proves it.
New block / header fields0No rationale recorded.
Blank cell read as zero because the published total proves it.
Encoding changes (RLP/SSZ)0No rationale recorded.
Blank cell read as zero because the published total proves it.
Block syncing changes0No rationale recorded.
Blank cell read as zero because the published total proves it.
New fork activation mechanism0No rationale recorded.
Blank cell read as zero because the published total proves it.
Engine API changes0No rationale recorded.
Blank cell read as zero because the published total proves it.
Engine API encoding changes0No rationale recorded.
Blank cell read as zero because the published total proves it.
Transition-tool interface changes0No rationale recorded.
Blank cell read as zero because the published total proves it.
Security risks0No rationale recorded.
Blank cell read as zero because the published total proves it.
Performance risks0No rationale recorded.
Blank cell read as zero because the published total proves it.
Cryptography0No rationale recorded.
Blank cell read as zero because the published total proves it.
Assessment provenance
Assessed EIP revision
ethereum/EIPs@dee539a58f EIPS/eip-8037.md committed 2025-10-28
EIP master revision at the time of the human checklist commit; the checklist itself does not pin an EIP revision.
Current master · File history · blob 176cab4eca · sha256 8ee674c5e6bb
Rubric
Checklist revision 1 · ethspecs/pm@d936bcb349
Evaluator
STEEL team · ethspecs/pm complexity_assessments
Source record
Merged checklist ethspecs/pm@eb0d24aec5 complexity_assessments/EIPs/EIP-8037.md · committed 2025-12-04
blob 55fd5115c9 · sha256 f37704066cae
Research record
research/tasks/05c-amsterdam-human-assessment-alignment/inputs/human/eip-8037.yaml · sha256 2836f7a456c4

Both assessments applied Checklist revision 1 (24 criteria) to EIP-8037 in Amsterdam / Glamsterdam. Δ is LLM minus Human.

LLM21High
Human28High
Δ total−7Same tier
Criteria17/24agree exactly · 2 differ by 1 · 5 differ by 2+
Confounded comparison. The human checklist evaluated the EIP as it stood when the checklist was written; the LLM evaluated the sealed historical revision. Input alignment: substantive drift; human hindsight exposure: high exposure. The study's primary LLM score under checklist revision 2 is 35; it uses a different criterion inventory and thresholds and is not directly comparable to either total here.
Exposure evidence

The assessment links the execution-specs static-test tree and describes rework of existing Python tests.

Substantive intervening revisions: Defines success-vs-failure gas accounting for contract deployment: GAS_NEW_ACCOUNT, GAS_CODE_DEPOSIT*L and HASH_COST(L) are charged only on the success path, with explicit total-gas formulas and check ordering; removes the duplicated-code deposit-exemption sentence from the abstract; reformats the parameter table. | Changes GAS_NEW_ACCOUNT's affected operations to CALL*, removes GAS_SELF_DESTRUCT_NEW_ACCOUNT (replaced by GAS_NEW_ACCOUNT), and corrects the deployment cost example accordingly.

Complexity profiles side by side

LLM
Human

Largest disagreements: Patterns affecting pre-existing tests (−6), EVM Gas rule changes (−5), Performance risks (+3), Security risks (+3), New EVM gas refund (−2)

Per-criterion scores, Human versus LLM, ordered by the size of the difference
CriterionLLMHumanΔAgreementRationale from each source
Patterns affecting pre-existing tests39−6Differ by 2+
Show rationale

LLM Existing tests across diverse transaction and opcode paths, gas-estimation cases, warm/cold access, and contract deployment must be reworked, meeting the major-and-diverse score-3 anchor.

Human CREATE, CALL, and SSTORE are values that have not been updated since Frontier. This change will break an excessive amount of static tests (https://github.com/ethereum/execution-specs/tree/forks/osaka/tests/static) and will require some rework in existing python tests. Counting each of these as a multiplier for this row.

EVM Gas rule changes38−5Differ by 2+
Show rationale

LLM This introduces a new gas-accounting mechanism and changes existing CREATE, CREATE2, creation-transaction, SSTORE, SELFDESTRUCT, account-creation, and EIP-7702 charging, necessarily affecting existing mechanisms and their tests; this matches score 3.

Human GAS_CREATE + GAS_CODE_DEPOSIT can be considered the same category of change; CALL by itself requires testing must be separated; SSTORE requires its own testing plus the new multidimensional metering logic; EOA changes are simple and reduced in scope.

Security risks30+3Differ by 2+
Show rationale

LLM The new accounting interacts with critical transaction validity, block resource limits, contract creation, and state-growth protections, substantially changing gas-based security assumptions across multiple components; this warrants the extensive-review score of 3.

Human No rationale recorded.

Performance risks30+3Differ by 2+
Show rationale

LLM The mechanism interacts with block throughput, transaction caps, hashing, state/database growth, and maximum-size deployments and cannot be validated in isolation; the stated network-stress concern and benchmark requirement meet score 3.

Human No rationale recorded.

New EVM gas refund02−2Differ by 2+
Show rationale

LLM EIP-8037 changes inputs to an existing EIP-7702 refund but introduces no new gas-refund mechanism, which is the score-0 anchor.

Human Refund tests are indirectly affected by the SSTORE change.

New or modified transaction validity mechanisms34−1Differ by 1
Show rationale

LLM Existing intrinsic-gas validity changes across transaction families and a new gas dimension must be represented outside the ordinary per-transaction limit, requiring extensive test rework and multidimensional test support; this meets score 3.

Human Modifies the contract creation from a contract-creating transaction, and the EOA delegation cost.

Cross-EIP interactions32+1Differ by 1
Show rationale

LLM Correct behavior requires coordinated testing across several strongly coupled proposals: account creation and intrinsic gas, delegation costs/refunds, transaction caps, contract size, and the multidimensional metering model. This meets score 3.

Human Considering contract creation and account calling are so fundamental, this will require oversight on other EIPs that are CFI'd.

Added opcodes000Agree
Show rationale

LLM No new opcode is introduced, matching score 0.

Human No rationale recorded.

Modified opcodes000Agree
Show rationale

LLM The historical definition explicitly excludes gas changes from modified-opcode scoring; no non-gas opcode behavior modification or deprecation is specified, so score 0 applies.

Human No rationale recorded.

Added precompiles000Agree
Show rationale

LLM No precompile is added, matching score 0.

Human No rationale recorded.

Modified precompiles000Agree
Show rationale

LLM No pre-existing precompile is modified, matching score 0.

Human No rationale recorded.

Added system contracts000Agree
Show rationale

LLM No system contract is added, matching score 0.

Human No rationale recorded.

Modified system contracts000Agree
Show rationale

LLM No modification or evidenced indirect effect on a pre-existing system contract is introduced.

Human No rationale recorded.

Blob gas accounting changes000Agree
Show rationale

LLM No blob gas accounting change is specified, matching score 0.

Human No rationale recorded.

New transaction types000Agree
Show rationale

LLM No new transaction type is introduced, matching score 0.

Human No rationale recorded.

New block / header fields000Agree
Show rationale

LLM No new block or header field is introduced in the assigned proposal, so score 0 applies.

Human No rationale recorded.

Encoding changes (RLP/SSZ)000Agree
Show rationale

LLM No encoding change is specified by the assigned proposal, so the binary score is 0.

Human No rationale recorded.

Block syncing changes000Agree
Show rationale

LLM With no block RLP validation mechanism specified for the assigned proposal, score 0 is the conservative historical-checklist result.

Human No rationale recorded.

New fork activation mechanism000Agree
Show rationale

LLM A normal scheduled rule change without an activation-block state or internal-variable transition does not introduce the mechanism described by the score-3 anchor, so score 0 applies.

Human No rationale recorded.

Engine API changes000Agree
Show rationale

LLM No Engine API addition or change is introduced, matching score 0.

Human No rationale recorded.

Engine API encoding changes000Agree
Show rationale

LLM Conservatively applying the undefined row from its label and global score range, the absence of any Engine API encoding change supports score 0.

Human No rationale recorded.

Transition-tool interface changes000Agree
Show rationale

LLM No modification to the transition-tool interface is specified, so the conservative package-grounded score is 0.

Human No rationale recorded.

Edge/boundary conditions330Agree
Show rationale

LLM Multiple boundary-prone mechanisms interact across creation forms, state visibility, bytecode sizes, and access status, with the code-deduplication branch requiring an elevated matrix of cases; this matches score 3.

Human Bundling all changes into this single row since they are similar.

Cryptography000Agree
Show rationale

LLM Use of the existing runtime-code hash does not introduce new cryptography, matching score 0.

Human No rationale recorded.

Criterion legend and glossary

Every stacked bar, comparison matrix, and criterion table on this site uses the same criterion colours, abbreviations, and order. Colour marks the criterion group; the abbreviation and name identify the criterion. Scores are 0–3 per criterion (4 is exceptional; cross-EIP interactions is uncapped).

EVM surface

Opcodes, precompiles, and system contracts that are added or modified.

  • Added opcodes
    Introduces new opcodes
    Score anchors
    0
    No new opcodes are introduced.
    1
    A new simple opcode is introduced (no data portion, no complex stack mechanics, and a constant gas cost).
    2
    Multiple new simple opcodes are introduced, or a single new complex opcode is introduced (has data portion, or complex stack mechanics, or a dynamic gas cost).
    3
    Multiple new opcodes are introduced, and at least one of them is complex (has data portion, or complex stack mechanics, or a dynamic gas cost).
    • Cryptography opcodes are not considered complex by default. Refer to the "Cryptography" section for a separate assessment.
  • Modified opcodes
    Modifies pre-existing opcodes
    Score anchors
    0
    No pre-existing opcode modifications are introduced.
    3
    At least one pre-existing opcode's behavior is modified (not including gas changes) or a pre-existing opcode is deprecated.
  • Added precompiles
    Introduces new precompiles
    Score anchors
    0
    No new precompiles are introduced.
    1
    A new simple precompile is introduced (constant input length, constant gas cost).
    2
    Multiple new simple precompiles are introduced, or a single new complex precompile is introduced (dynamic input length or dynamic gas cost).
    3
    Multiple new precompiles are introduced, and at least one of them is complex (dynamic input length or dynamic gas cost).
    • Cryptography precompiles are not considered complex by default. Refer to the "Cryptography" for a separate assessment.
  • Modified precompiles
    Modifies pre-existing precompiles logic or gas-accounting
    Score anchors
    0
    No pre-existing precompiles are modified.
    1
    At least one pre-existing precompile has its gas schedule modified.
    2
    Multiple pre-existing precompiles have their gas schedule modified, or a single pre-existing precompile has its behavior modified.
    3
    The behavior of multiple pre-existing precompiles, or a single complex pre-existing precompile modified.
  • Added system contracts
    Introduces new system contract, stateful or not
    Score anchors
    0
    No new system contracts are introduced.
    1
    A new system contract is introduced that is not stateful nor does it trigger a new system action (e.g. requests to the consensus layer).
    2
    Multiple new system contracts are introduced or a single new system contract that is either stateful or triggers a new system action (e.g. requests to the consensus layer).
    3
    Multiple new system contracts are introduced and at least one of them is either stateful or triggers a new system action (e.g. requests to the consensus layer).
  • Modified system contracts
    Modifies pre-existing system contracts
    Score anchors
    0
    No modifications to pre-existing system contracts are introduced, directly or indirectly.
    1
    Does not directly modify any system contract, but its behavior has minor indirect effects on one or more system contracts.
    2
    Does not directly modify any system contract, but its behavior has major indirect effects on one or more system contracts.
    3
    At least one pre-existing system contract code or state is modified, which would involve irregular state transition or a similarly complex transition methodology.

Gas and accounting

Execution, blob, and state gas rules, refunds, and where charges happen inside opcodes.

  • EVM Gas rule changes
    New EVM gas accounting rules
    Score anchors
    0
    No gas accounting changes.
    1
    Existing gas accounting mechanism is updated.
    2
    A new gas accounting mechanism is introduced but it does not affect existing mechanisms nor does it affect existing tests.
    3
    A new gas accounting mechanism is introduced and affects existing mechanisms which in turn affect existing tests.
  • State-access ordering within opcode execution · Checklist revision 2 only
    Changes *where inside an opcode's execution* state is accessed, or where gas is charged relative to that access. Because a state access is recorded in the block-level access list only if execution had enough gas to reach it, this ordering is consensus-critical: moving it changes the BAL at every gas boundary of every affected opcode.
    Score anchors
    0
    No change to where state is accessed, or to where gas is charged relative to a state access, within any opcode.
    1
    A single opcode's state-access or gas-charge ordering changes.
    2
    Multiple opcodes' ordering changes, or a new state-accessing operation is introduced whose position in the order must be settled.
    3
    The ordering rule changes for a whole class of state-accessing opcodes at once, or what counts as a recordable state access is redefined — requiring existing BAL vectors to be re-derived across opcodes and forks.
    • Distinct from "Modified opcodes", which asks whether an opcode's **result** changed. This row asks about the **path to the result**, which is observable even when the result is identical. An EIP can be 0 on that row and 3 on this one.
    • Score changes **to** the ordering. Do not score the fact that state accesses are observable — they always are.
    • Each boundary must be re-tested against every other dimension that can change the answer (cold/warm, static/non-static, delegated/direct, revert/success), so the case count grows multiplicatively rather than additively. Note this explicitly under Special Considerations.
  • Blob gas accounting changes
    New Blob gas accounting rules which potentially affect pre-existing tests
    Score anchors
    0
    No blob gas accounting changes.
    1
    Existing blob gas accounting mechanism is updated.
    2
    A new blob gas accounting mechanism is introduced but it does not affect existing mechanisms nor does it affect existing tests.
    3
    A new blob gas accounting mechanism is introduced and affects existing mechanisms which in turn affect existing tests.
  • State gas accounting changes · Checklist revision 2 only
    New state gas accounting rules. State gas is the cost of *writing* state, as opposed to accessing or executing it: `StateGasCosts`, `COST_PER_STATE_BYTE`, the block-level state gas budget, and the spill path into execution gas.
    Score anchors
    0
    No state gas accounting changes.
    1
    An existing state gas cost or `STATE_BYTES_PER_*` rate is adjusted.
    2
    A new state-gas-charging site is introduced, or the block-level state gas budget or reservoir allocation is modified.
    3
    A new state gas charging mechanism is introduced, or the spill interaction between state gas and execution gas is modified, affecting existing gas tests.
    • Harder to test than blob gas: the spill path means state gas cannot be metered independently of execution gas, and some costs (e.g. `NEW_ACCOUNT`) are state-dependent.
  • New EVM gas refund
    New gas-refund mechanism
    Score anchors
    0
    No new gas-refund mechanisms are introduced.
    1
    A new simple gas-refund mechanism is introduced that does not affect either existing tests or existing gas-refund mechanisms.
    2
    A new complex gas-refund mechanism is introduced or a simple mechanism that affects existing tests or existing gas-refund mechanisms.
    3
    A new complex gas-refund mechanism is introduced that affects existing tests or existing gas-refund mechanisms.

Blocks, transactions, and encoding

Transaction types and validity, block and header fields, encodings, syncing, and activation-time changes.

  • New transaction types
    Introduces a new transaction type
    Score anchors
    0
    No new transaction types are introduced.
    3
    A new transaction type is introduced.
  • New or modified transaction validity mechanisms
    Creates new or modifies pre-existing transaction types' validation mechanisms
    Score anchors
    0
    No changes are introduced to the validity rules of existing transaction types or to their intrinsic gas cost calculation.
    1
    Minor adjustments are introduced to validity rules or intrinsic gas cost calculation, but they do not significantly affect existing tests.
    2
    Changes to validity rules or intrinsic gas cost calculation affect existing tests, but require only limited updates to test cases and no redesign of the testing infrastructure.
    3
    Changes to validity rules or intrinsic gas cost calculation require extensive rework or redesign of the tests or testing infrastructure.
  • New block / header fields
    Introduces new block or block header fields
    Score anchors
    0
    No new block or header fields are introduced.
    3
    A new block or header field is introduced.
  • Encoding changes (RLP/SSZ)
    Introduces encoding changes at the transaction/block/interfaces level
    Score anchors
    0
    No encoding changes are introduced at the transaction, block, or interfaces levels.
    3
    An encoding change is introduced at transaction, block or interfaces level (e.g. RLP -> SSZ).
    • "Interfaces level" includes the Engine API. Score an Engine API encoding change (e.g. JSON -> SSZ) here.
  • Block syncing changes
    Modifies block RLP validation mechanisms that require test client syncing.
    Score anchors
    0
    No new RLP validation mechanism is introduced.
    1
    A single simple RLP validation mechanism is introduced.
    2
    Multiple simple RLP validation mechanisms are introduced or a single complex one.
    3
    Multiple RLP validation mechanisms are introduced and at least one of them is deemed complex.
  • New fork activation mechanism
    Modifies state, internal variables, or similar, at the fork activation block
    Score anchors
    0
    No state modifications, internal variables or similar are modified at the fork activation block.
    3
    Either a state modification or internal variables are modified at the fork activation block.
    • Initialization of new internal variable is not considered a modification.

Client interfaces

Engine API and transition-tool interface changes.

  • Engine API changes
    Introduces new fields to the Engine API directives
    Score anchors
    0
    No new fields or communication mechanisms are introduced to the Engine API.
    1
    A single new field is introduced in one of the Engine API endpoints.
    2
    Multiple fields are introduced to one or multiple Engine API end points, or a new Engine API end-point is introduced.
    3
    Multiple fields are introduced to one or multiple Engine API end points and a new Engine API end-point is introduced.
  • Engine API encoding changes · Checklist revision 1 only
    Engine API encoding changes (the revision-1 template defines no anchor text for this row).
  • Transition-tool interface changes
    Modifies or adds new fields to the transition tool interface.
    Score anchors
    0
    No modifications to the transition tool interface are required.
    1
    A single new field needs to be introduced to the transition tool interface.
    2
    Multiple new fields or a new mechanism has to be introduced to the transition tool interface.
    3
    Multiple new fields and a new mechanism has to be introduced to the transition tool interface.
    • Special consideration must be paid to this section if the EIP introduces a mechanism that requires the state transition tool to be aware whether the block it is processing is the fork-activation block.

Testing impact

Rework, new invariants, and new primitives required in the test framework.

  • Patterns affecting pre-existing tests
    Implements a new validation mechanism or rule that translates in reworking pre-existing tests
    Score anchors
    0
    No pre-existing tests are affected by this change.
    1
    Minor subset of existing tests are affected by this change.
    2
    Considerable subset of existing tests are affected by this change but involves only a contrived category of tests.
    3
    Major subset of existing tests are affected, including diverse category of tests (benchmarks, static, multiple forks, etc.).
  • New invariant on pre-existing tests · Checklist revision 2 only
    Tests that are **not about this EIP** must nonetheless assert something this EIP produces. Their logic does not change; they gain a new thing to check.
    Score anchors
    0
    Pre-existing tests assert nothing new.
    1
    A narrow, contrived category of pre-existing tests gains a new assertion.
    2
    A broad category gains a new assertion, applied mechanically.
    3
    Every test in the fork gains the assertion regardless of what it tests, and pre-fork vectors must be re-derived to satisfy it.
    • Paired with the row above, and easy to confuse with it. "Patterns affecting pre-existing tests" asks whether existing tests must be **reworked**; this row asks whether they must **additionally assert something new**. Score both — an EIP can be low on one and high on the other.
  • New test-framework primitives · Checklist revision 2 only
    Requires new abstractions in the test framework itself — expectation types, modifiers, helpers — beyond writing test functions with what already exists.
    Score anchors
    0
    Existing test primitives suffice.
    1
    Existing primitives need minor extension.
    2
    New expectation or modifier primitives are required, reusable within this EIP's own test suite.
    3
    New framework-level primitives are required that become a permanent part of the framework and are used by other EIPs' tests.

Risk and validation

Security, performance, boundary conditions, and cryptography that need validation.

  • Security risks
    Introduces or modifies mechanisms that could compromise the security of the chain, users, validators, or other stakeholders, if not implemented properly.
    Score anchors
    0
    No new mechanisms are introduced that could pose a security risk.
    1
    The introduced mechanisms are self-contained, can be validated in isolation, and do not alter existing invariants that could pose a security risk for any stakeholders.
    2
    The introduced mechanisms interact with a limited number of existing components, slightly altering their security assumptions and requiring a targeted security review or fuzzing.
    3
    The introduced mechanisms interact with multiple existing components, including critical ones, substantially altering their security assumptions and requiring an extensive security review and fuzzing.
  • Performance risks
    Introduces or modifies mechanisms and requires performance validation.
    Score anchors
    0
    No new mechanisms are introduced that require performance validation.
    1
    The introduced mechanisms can be benchmarked in isolation and do not affect existing performance behavior.
    2
    The introduced mechanisms cannot be fully benchmarked in isolation, but they only have a limited impact on the existing performance benchmarks.
    3
    The introduced mechanisms cannot be benchmarked in isolation and have a substantial impact on existing performance benchmarks or have complex interactions with existing mechanisms.
  • Edge/boundary conditions
    Feature contains edge/boundary conditions.
    Score anchors
    0
    No discernible edge cases or boundary conditions are introduced.
    1
    A single edge-case or boundary-condition prone mechanism is introduced.
    2
    Multiple edge-case or boundary-condition prone mechanisms are introduced, but none of them requires an elevated number of cases to test.
    3
    Multiple edge-case or boundary-condition prone mechanisms are introduced and at least one of them requires an elevated number of cases to test.
  • Cryptography
    Introduces new cryptography mechanisms or modifies existing functionality that involves cryptography
    Score anchors
    0
    No cryptography mechanisms are introduced.
    1
    A new cryptography mechanism is introduced but it is a well known mechanism that is known to have vast resources to aid on its testing.
    2
    Multiple new cryptography mechanisms are introduced that are well-known or a single but novel mechanism is introduced that is either untested or has limited resources.
    3
    Multiple new cryptography mechanisms are introduced and at least one of them is a novel mechanism.

Coordination

Cross-EIP interactions and behavior that clients must agree on before tests exist.

  • Cross-EIP interactions
    Introduces or modifies mechanisms that affect other EIPs in either the same or past forks.
    Score anchors
    0
    Fully self-contained EIP that does not depend on, modify, or conflict with any other EIP.
    1
    The EIP interacts with one or more other EIPs in a non-critical and limited way but can be tested independently for the most part.
    2
    The EIP depends on or modifies one or more other EIPs such that coordinated testing and consideration is required, but interactions are limited in scope and not complex.
    3
    The EIP has strong interdependencies with multiple EIPs, requiring extensive coordinated cross-EIP testing as well as potential re-design of existing test vectors.
    • +1 for every 3 additional interacting EIPs beyond the first 3, each of which requires its own coordinated test cases. List the EIPs in the rationale.
    • This row is intentionally uncapped, unlike every other anchor: each interacting EIP is another axis of the test matrix, so a ceiling would make a 12-EIP product indistinguishable from a 3-EIP one.
  • Unspecified behavior requiring cross-client consensus · Checklist revision 2 only
    The EIP text does not determine the answer for cases a test can construct. Clients must agree on a previously unspecified detail before tests can be baselined. The cost here is coordination and re-baselining, not test writing.
    Score anchors
    0
    The EIP text determines the answer for every case a test could construct.
    1
    A few details are unspecified but have an obvious intended reading.
    2
    Details require client agreement before tests can be written, but they are localized.
    3
    A previously unspecified *and previously unobservable* behavior becomes consensus-critical; expect tests to be re-baselined on each round of EIP amendment.
    • Score this from the EIP's state at assessment time: whether it has client implementations, whether it has been through a devnet, and how many open questions remain on its discussion thread.