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 43
Human Completescore 28 · Checklist revision 1· merged checklist

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

Scope at the cutoff. EIP-8037 (revision c47ae3be, requires EIP-2780) reprices state creation using a cost of 1,900 gas per state byte. It raises GAS_CREATE, GAS_CODE_DEPOSIT, GAS_NEW_ACCOUNT, GAS_SELF_DESTRUCT_NEW_ACCOUNT, GAS_STORAGE_SET, and the EIP-7702 PER_EMPTY_ACCOUNT_COST and PER_AUTH_BASE_COST. It adds a two-dimensional metering scheme, derived from EIP-8011, with `gas` and `code_deposit_gas` dimensions, so that code deposit cost does not count against the EIP-7825 transaction cap or the block gas limit. It also changes how contract deployment is charged. A new code-existence lookup waives the code deposit charge for runtime bytecode that is already stored. A warm/cold storage-access charge and a keccak hash charge per word of runtime code are added for CREATE, CREATE2 and creation transactions.

43HighHigh
Evaluator
LLMChecklist v3
Confidence
Medium
Under-specified at assessment cutoff
Yes — 11 criteria affected
Plausible range
29–49 (High)
Assessment cutoff
2025-10-16 · EIP revision c47ae3be21 (2025-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

  1. EVM Gas rule changes3
  2. State gas accounting changes3
  3. New block / header fields3
  4. Encoding changes (RLP/SSZ)3

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 two-dimensional metering is specified only by reference to EIP-8011, and the target's own statements contradict that reference. The target says code deposit counts toward neither the transaction cap nor the block gas limit, while 8011 applies the transaction limit to the sum of dimensions and the block limit to the bottleneck dimension. As a result, transaction validity under the 7825 cap, header contents, block validity and base fee are unresolved. The dedup lookup's warm/cold semantics and the visibility of code from reverted or same-transaction creations are also undefined. The EIP-2780 GAS_NEW_ACCOUNT value conflicts with the target's value.

Unresolved questions at the cutoff (9)
  • Is code_deposit_gas deducted from the transaction's gas_limit? If so, how can a creation transaction exceed the EIP-7825 2^24 cap without its gasLimit field being invalid?
  • Does code_deposit_gas count toward the block gas limit (as 8011's bottleneck dimension would imply) or not (as the target's Security Considerations state)?
  • Is the 8011 max_gas_metered header field and base-fee rule adopted in the two-dimensional version?
  • What do 'warm' and 'cold' mean for the code-hash existence check, and is the hash added to any accessed set?
  • Does CodeExists see code stored by an earlier creation in the same transaction, or by a creation that was later reverted?
  • Do storage_access_cost and hash_cost apply when creation fails (out of gas, size limit exceeded) or returns empty code?
  • Does the EIP-2780 surcharge use 25,000 or the repriced 212,800 GAS_NEW_ACCOUNT?
  • Do SSTORE refunds derived from GAS_STORAGE_SET scale with the new 60,800 value?
  • Can code deposit cause an out-of-gas halt in the creating frame when it is metered separately?
Notable ambiguities noted by the assessor (6)
  • The target says code deposit gas 'doesn't contribute to the block gas limit or the individual transaction limit', but the EIP-8011 model it cites keeps a single transaction gas_limit over the sum of dimensions and caps blocks on the bottleneck dimension.
  • The rationale table counts '25,000 new account' within a deployment's cost, which is inconsistent with the price-impact example that charges only GAS_CREATE. It is unclear whether CREATE also charges GAS_NEW_ACCOUNT.
  • GAS_NEW_ACCOUNT is 25,000 in the supplied EIP-2780 and 212,800 in the target.
  • The Backwards Compatibility text refers to 'new calldata cost rules' and 'floor cost values', which this EIP does not define. This appears to be leftover text.
  • 'Empty code handling: Clients can treat empty code as a special case ... making it effectively free' is permissive language. It is unclear whether hash and access costs are charged for empty runtime code.
  • How the EIP-7702 refund (now 169,100 per existing authority) interacts with the global refund cap is not discussed.

Criterion breakdown

EIP-8037 Amsterdam / Glamsterdam: LLM criterion scores and rationale
CriterionScoreWhy this scoreEvidence / uncertainty
EVM Gas rule changes3The EIP adds new accounting mechanisms (separate code_deposit_gas metering, the dedup-dependent deposit charge, and access and hash charges at creation). It also changes the expected gas of many baseline operations (SSTORE set, CREATE/CREATE2, CALL to a new account, SELFDESTRUCT, EIP-7702 authorizations). This meets level 3.
  • eip.md · Parameter changes Seven existing gas parameters are repriced (e.g., GAS_CREATE 32,000→212,800, GAS_STORAGE_SET 20,000→60,800, PER_AUTH_BASE_COST 12,500→43,700).
  • eip.md · Multidimensional metering for code deposit gas Adds an independent metering of code deposit costs with two dimensions, gas and code_deposit_gas.
  • eip.md · Contract deployment cost calculation Adds a conditional code deposit charge (zero if the code already exists), plus storage_access_cost (warm/cold) and hash_cost = GAS_KECCAK256_WORD * ceil(L/32) for contract creation.
  • supporting/eip-7702.md · Behavior — step 7 Refund of PER_EMPTY_ACCOUNT_COST - PER_AUTH_BASE_COST; both terms are repriced by the target, so the refund changes from 12,500 to 169,100.
Confidence: High
Uncertainty: The exact semantics of the second dimension (whether it is deducted from the transaction's gas limit) are under-specified, but level 3 holds under any reading.
State gas accounting changes3Beyond changing state-byte rates (level 1), the EIP introduces a new charging mechanism for state writes: a separately metered code_deposit_gas dimension and a charge that is waived based on deduplication. This meets level 3.
  • eip.md · Harmonization across state creation — "set cost_per_state_byte to 1900" Introduces a unified state-byte rate from which all state-creation parameters are derived.
  • eip.md · Multidimensional metering for code deposit gas Code deposit gas is metered in its own dimension, separate from ordinary gas.
  • eip.md · Contract deployment cost calculation — "If CodeExists(...) == true, do not charge code-deposit storage gas" State-dependent deduplication decides whether a state-writing charge applies.
Confidence: Medium
Uncertainty: How the code_deposit_gas dimension interacts with the transaction gas limit and the block gas limit is not fully specified.
New block / header fieldsUnder-specified3The 8011-derived metering that the target requires adds an execution-header member (max_gas_metered) to the execution block header schema, so the score is 3.
  • supporting/eip-8011.md · Block header extension Adds max_gas_metered to the execution header.
  • eip.md · Multidimensional metering for code deposit gas — "The specification is derived from EIP-8011" The target adopts a two-dimensional version of 8011.
Confidence: Low
Uncertainty: The target does not explicitly require the header field. It might rely only on transaction-level separation, in which case the score would be 0.
Encoding changes (RLP/SSZ)Under-specified3The required 8011-derived metering appends a field to the execution block header RLP schema, so the score is 3.
  • supporting/eip-8011.md · Block header extension — "[..., parent_beacon_block_root, requests_hash, max_gas_metered]" The 8011 metering extends the header RLP sequence with a 64-bit field.
  • eip.md · Rationale — Multidimensional metering — "a two-dimensional version of EIP-8011 is still required" The target requires this metering.
Confidence: Low
Uncertainty: The target does not explicitly state that the header field is part of the two-dimensional version.
Block syncing changesUnder-specified3The required two-dimensional 8011 version brings several block-level rules: header decoding of the new field, a gas-limit validity check against metered gas, and a base-fee rule that depends on the parent block. At least two of these are complex (they depend on execution or on other blocks), so the score is 3.
  • supporting/eip-8011.md · Block header extension; Block validity condition; Base fee update rule Adds a header field, validates max_gas_metered <= gas_limit, and bases the base fee on parent.max_gas_metered.
  • eip.md · Security Considerations — Independent metering — "doesn't contribute to the block gas limit" Block gas limit validation must exclude code deposit gas.
Confidence: Low
Uncertainty: The target does not state whether the header field and base-fee change are adopted. If only the gas-used exclusion applies, the score could be 1 or 2.
Patterns affecting pre-existing tests3One common repricing of state creation forces rework of ordinary cases across distinct families: SSTORE gas tests, CREATE/CREATE2 and creation-transaction gas, CALL/value-transfer account creation, SELFDESTRUCT to a new beneficiary, and 7702 intrinsic gas and refunds. Any test that hardcodes gas or relies on contract deployment fitting in a gas budget is affected. This meets level 3.
  • eip.md · Parameter changes — "Operations affected" The changes affect CREATE, CREATE2, creation transactions, new-EOA funding, SELFDESTRUCT, SSTORE and EIP-7702 delegation.
  • eip.md · Contract deployment cost calculation Every contract creation picks up access and hash costs and a deposit charge that depends on deduplication.
Confidence: High
Performance risks3Code deposit bytes are no longer bounded by the block or transaction gas limit. This couples block size and propagation, code storage writes, hashing and the cost of dedup lookups in ways that existing gas-limit benchmarks do not cover. Adversarial blocks full of maximum-size deployments, with and without duplicates, need integrated stress testing across execution, database and networking, so the score is 3.
  • eip.md · Security Considerations — Independent metering — "doesn't contribute to the block gas limit or the individual transaction limit" The block gas limit no longer bounds code deposit work, and the EIP states that benchmarking is needed.
  • eip.md · Contract deployment cost calculation Every creation adds a database lookup of the code hash plus hashing.
  • supporting/eip-7825.md · Motivation The transaction cap exists to limit DoS and validation time. The target exempts code deposit from it.
Confidence: Medium
Uncertainty: The actual per-block bound on code deposit depends on the unspecified metering design.
Edge/boundary conditions3Several boundary-sensitive mechanisms change. These include the dedup existence boundary, warm/cold access cost, the per-word hash rounding, the out-of-gas point at code deposit, the 7825 cap versus the separately metered deposit gas, the EIP-170 size limit, and the 2780 new-account surcharge conditions. The dedup charge forms an elevated matrix over these dimensions: code existence (prior block, earlier transaction, same transaction, reverted creation) × warm/cold × CREATE/CREATE2/creation transaction × empty versus non-empty code × size near 24,576. These combinations change the outcome together, so the score is 3.
  • eip.md · Contract deployment cost calculation Deposit charge depends on code existence, the access charge on warm/cold status, and the hash cost on ceil(L/32).
  • eip.md · Rationale — Multidimensional metering — "this cap would limit the maximum contract size ... to roughly 6kb" Independent metering is meant to lift the 7825 cap for code deposit, changing the boundaries for maximum deployable size.
  • supporting/eip-170.md · Specification The MAX_CODE_SIZE 24,576 boundary still applies.
  • eip.md · Duplicated bytecode discount — "Ordering & same-block deployments" / "Empty code handling" Same-block ordering and empty-code special cases.
Confidence: Medium
Cross-EIP interactions3The target couples behavior from several EIPs: the 7825 cap, the 170 size limit and the 8011 metering jointly decide whether large deployments succeed; 2780's intrinsic surcharge uses the repriced new-account cost; and 7702's intrinsic cost and refund change. Each needs coordinated scenarios, so the score is 3.
  • eip.md · Rationale — Multidimensional metering Couples the EIP-7825 cap, EIP-170 maximum size and EIP-8011 metering.
  • eip.md · Mispricing with respect to ETH transfers Relies on the EIP-2780 surcharge using the repriced GAS_NEW_ACCOUNT.
  • eip.md · Parameter changes — PER_EMPTY_ACCOUNT_COST, PER_AUTH_BASE_COST Reprices EIP-7702 intrinsic cost and refund.
  • supporting/eip-7702.md · Gas Costs; Behavior step 7 Defines the per-authorization intrinsic cost and the refund formula affected by the repricing.
Confidence: Medium
Uncertainty: The 8011 interaction depends on how much of 8011 the two-dimensional version adopts.
Interacting EIPs: EIP-170, EIP-2780, EIP-7702, EIP-7825, EIP-8011
Unspecified behavior requiring cross-client consensus3Gas metering split across two dimensions is new and consensus-visible, and the rule is left unresolved. The target's statements contradict the 8011 model it adopts on how the transaction cap, transaction gas limit and block gas limit apply. Resolving this changes gas-used, validity and base-fee expectations across many families. Further open points include warm/cold semantics for code lookups, CodeExists for code created by reverted or same-transaction creations, and the interaction with the 2780 constant. This meets level 3.
  • eip.md · Multidimensional metering for code deposit gas Only says the design is derived from 8011 with two dimensions. It does not say how the transaction gas_limit, the 7825 cap, receipts' gas used, the block gas limit or the base fee treat code_deposit_gas.
  • supporting/eip-8011.md · Gas accounting — "A transaction still has the same one-dimensional gas_limit" In 8011, the transaction limit applies to the sum of dimensions and the block limit applies to the maximum dimension. This conflicts with the target's claim that deposit gas counts toward neither limit.
  • eip.md · Contract deployment cost calculation — "GAS_WARM_ACCESS (if warm) | GAS_COLD_SLOAD (if cold)" Does not define what warm or cold means for a code hash, or whether the access is recorded.
  • supporting/eip-2780.md · Parameters — GAS_NEW_ACCOUNT 25,000 The prerequisite fixes GAS_NEW_ACCOUNT at 25,000 while the target sets 212,800, and the target never states which value the surcharge uses.
Confidence: Medium
Uncertainty: Some gaps might be resolved by an unsupplied later version or two-dimensional 8011 text. They are judged as written.
State-access ordering within opcode executionUnder-specified2A new state-accessing step, the code-hash existence check, is added to the return path of CREATE, CREATE2 and creation transactions. It needs an ordering rule relative to the hash charge, the deposit charge and the out-of-gas point. This affects multiple operations, but no rule for an entire opcode class or for recordable accesses changes across operations, so the score is 2.
  • eip.md · Contract deployment cost calculation — "first check whether the code already exists in the state trie" Creation now performs a code-existence lookup in state and charges GAS_WARM_ACCESS or GAS_COLD_SLOAD relative to that access.
  • eip.md · CREATE vs CREATE2 The runtime-code hash and lookup apply to both CREATE and CREATE2, in addition to CREATE2's existing init-code hashing.
Confidence: Medium
Uncertainty: Several points are unspecified: what 'warm' means for a code hash, whether this access enters any access-tracking set, and the order of the hash, lookup and deposit charges.
New or modified transaction validity mechanismsUnder-specified2Intrinsic gas values change for creation transactions, 7702 transactions and 2780 new-account transfers. Lifting the 7825 cap for code deposit also changes how creation transactions are checked against the gas limit. These need dedicated cases, but the baseline validation sequence remains usable, so the score is 2.
  • eip.md · Parameter changes Intrinsic-relevant parameters change: GAS_CREATE (creation transactions) and PER_EMPTY_ACCOUNT_COST (per 7702 authorization).
  • eip.md · Mispricing with respect to ETH transfers The EIP-2780 state-dependent intrinsic surcharge applies GAS_NEW_ACCOUNT (repriced to 212,800).
  • eip.md · Rationale — Multidimensional metering — "allows to lift this limit for contract creation transactions" The EIP-7825 transaction gas cap must stop constraining code deposit gas.
  • supporting/eip-7825.md · Gas Cap Transactions with gasLimit > 16,777,216 are invalid.
Confidence: Medium
Uncertainty: How the 7825 cap applies to a transaction whose gas limit must cover code deposit is unspecified. Depending on the design, it could require restructuring validity checks (level 3) or be only a parameter change (level 1).
Transition-tool interface changesUnder-specified2The transition tool would need to report per-transaction code_deposit_gas (or a gas vector) and the block-level metered gas or header value. That is multiple fields with no new exchange mechanism, so the score is 2.
  • supporting/eip-8011.md · Gas accounting — "gas_used_vector ... is returned by the execute_transaction function" The metering returns a per-transaction gas vector in addition to gas_used.
  • eip.md · Multidimensional metering for code deposit gas Two dimensions (gas, code_deposit_gas) must be tracked.
Confidence: Low
Uncertainty: No supplied tool evidence exists, and which outputs are needed depends on the unspecified metering design.
New invariant on pre-existing testsUnder-specified2If the required two-dimensional metering carries the 8011-style per-block metered-gas output, every post-fork block test must check a new value (bottleneck metered gas). Pre-fork vectors are unaffected, so the score is 2.
  • eip.md · Rationale — Multidimensional metering — "a two-dimensional version of EIP-8011 is still required" The target requires the 8011-style metering mechanism, in two dimensions.
  • supporting/eip-8011.md · Block header extension In EIP-8011, the metering adds a max_gas_metered header field, computed per block from per-transaction gas vectors.
Confidence: Low
Uncertainty: The target does not state which 8011 outputs (header field, per-transaction vector) are required. If none are, no new assertion arises.
New test-framework primitivesUnder-specified2The target's test suite needs new expectation abstractions: a two-dimensional gas-used expectation for creations, and helpers that compute deposit, access and hash costs depending on whether the code already exists. This is level 2. Whether that representation must become a shared one that changes block-gas and base-fee checks across families depends on unresolved metering details.
  • eip.md · Multidimensional metering for code deposit gas Gas expectations now have two dimensions.
  • eip.md · Duplicated bytecode discount — "Ordering & same-block deployments" Tests must build pre-states with or without existing code objects and sequence deployments within a block.
Confidence: Low
Uncertainty: If the 8011-style header and block metering are adopted, the framework's block gas and base-fee model changes for all families, which would be level 3.
Security risksUnder-specified2Exempting code deposit from the transaction and block gas limits changes the DoS assumptions that EIP-7825 and block validation rely on. The dedup lookup and linking also introduce a state-dependent charge open to griefing (cold lookups, reorg and same-block visibility). Each of these is a bounded interaction that needs targeted integration and fuzzing review, so the score is 2.
  • eip.md · Security Considerations — Independent metering — "could potentially be exploited by an attacker to create very large contracts" The EIP acknowledges a DoS risk from gas that is outside the limits.
  • eip.md · Duplicated bytecode discount — "Hashing cost is necessary" Hash cost protects against abuse with large constructor outputs.
  • eip.md · Mispricing with respect to ETH transfers The repricing creates a cheaper way to create accounts that depends on EIP-2780 to close.
Confidence: Medium
Uncertainty: If code deposit truly has no block-level bound, the invariant that the gas limit bounds block work is broken across components, which would argue for level 3.
Engine API changesUnder-specified1If the header field is adopted, the execution payload would need one additional field. No endpoint-level change is indicated, so the score is 1.
  • supporting/eip-8011.md · Block header extension A new execution-header field (max_gas_metered) would need to be carried wherever header fields are exchanged.
  • eip.md · Multidimensional metering for code deposit gas The target requires a two-dimensional version of this metering.
Confidence: Low
Uncertainty: No supplied document mentions the Engine API. The score could be 0 if no header field is added.
Show 11 zero-score criteria
Zero-score criteria (Checklist revision 3)
CriterionScoreWhy this scoreEvidence / uncertainty
Added opcodes0No new opcode is introduced.
  • eip.md · Specification No new instructions are introduced.
Modified opcodesUnder-specified0The changes to CREATE, CREATE2, SSTORE and SELFDESTRUCT are gas-only or internal storage optimizations. Stack, memory/state effects and return values are unchanged.
  • eip.md · Contract deployment cost calculation — "simply link the new account's codeHash to the existing code object" Deduplication changes how code is stored and charged. The resulting account codeHash and observable code are the same.
  • eip.md · Parameter changes Changes to SSTORE, CREATE, CREATE2 and SELFDESTRUCT are gas parameter changes.
Uncertainty: If separate metering means code deposit no longer causes an out-of-gas halt in the creating frame, the exceptional-halt semantics of CREATE would change and the score would be 3. The text does not say.
Added precompiles0No new precompile is introduced.
  • eip.md · Specification No precompiles are introduced.
Modified precompiles0No precompile changes.
  • eip.md · Specification No precompile semantics or gas changes.
Added system contracts0No system contract is introduced.
  • eip.md · Specification No system contracts are introduced.
Modified system contracts0No system contract's rules or surrounding protocol behavior change.
  • eip.md · Specification No existing system contract is referenced or changed.
Blob gas accounting changes0The EIP does not change blob-gas accounting.
  • eip.md · Specification No blob-gas parameters or rules are mentioned.
  • supporting/eip-8011.md · Why are we choosing this resource split? — "not considering the blob resource" The metering scheme the target derives from explicitly excludes blobs.
New EVM gas refund0No additional refund mechanism is introduced. Repricing the existing EIP-7702 refund belongs under GAS.
  • eip.md · Specification No new refund mechanism is defined. Duplicate code is simply not charged rather than refunded.
  • supporting/eip-7702.md · Behavior — step 7 The existing 7702 refund is only repriced through changed parameters.
Uncertainty: It is unspecified whether the SSTORE restore refunds derived from GAS_STORAGE_SET scale with the new value. Either way, that is a repricing, not a new mechanism.
New transaction types0No new transaction type.
  • eip.md · Specification No new transaction envelope is defined.
New fork activation mechanism0No activation-specific state transition is required.
  • eip.md · Backwards Compatibility — "requires a scheduled network upgrade" Only rule and constant changes apply at activation. No state migration is required.
Cryptography0Only an existing hashing primitive is reused, and only its gas charge is new. No cryptographic rule changes.
  • eip.md · CREATE vs CREATE2 — "the runtime hash must be computed" keccak256 of runtime code is used for the existence lookup. This is an unchanged primitive already used for code hashes.
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 3 · ethspecs/pm@fe2f793b03
Evaluator
Opus 5.5 (claude-opus-5-5) at high effort, one tool-less call per EIP · isolation bubblewrap_claude_p_no_tools_v1
Source record
Frozen research record research/tasks/10-opus-v3-reassessment/retrospective/outputs/assessments/amsterdam/eip-8037.yaml · sha256 0fac3ba8fef0
Supporting documents supplied with the EIP
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

The LLM applied checklist revision 3 and the human reviewers revision 1 to EIP-8037 in Amsterdam / Glamsterdam. Revision 3 phrases the same criteria more precisely; differences cover the 23 criteria both revisions share, and each total keeps its own revision. Δ is LLM minus Human.

LLM43High
Human28High
Δ total+15Same tier
Criteria11/23agree exactly · 2 differ by 1 · 10 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.
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), Block syncing changes (+3), Encoding changes (RLP/SSZ) (+3), New block / header fields (+3)

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 One common repricing of state creation forces rework of ordinary cases across distinct families: SSTORE gas tests, CREATE/CREATE2 and creation-transaction gas, CALL/value-transfer account creation, SELFDESTRUCT to a new beneficiary, and 7702 intrinsic gas and refunds. Any test that hardcodes gas or relies on contract deployment fitting in a gas budget is affected. This meets level 3.

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 The EIP adds new accounting mechanisms (separate code_deposit_gas metering, the dedup-dependent deposit charge, and access and hash charges at creation). It also changes the expected gas of many baseline operations (SSTORE set, CREATE/CREATE2, CALL to a new account, SELFDESTRUCT, EIP-7702 authorizations). This meets level 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.

New block / header fields30+3Differ by 2+
Show rationale

LLM The 8011-derived metering that the target requires adds an execution-header member (max_gas_metered) to the execution block header schema, so the score is 3.

Human No rationale recorded.

Encoding changes (RLP/SSZ)30+3Differ by 2+
Show rationale

LLM The required 8011-derived metering appends a field to the execution block header RLP schema, so the score is 3.

Human No rationale recorded.

Block syncing changes30+3Differ by 2+
Show rationale

LLM The required two-dimensional 8011 version brings several block-level rules: header decoding of the new field, a gas-limit validity check against metered gas, and a base-fee rule that depends on the parent block. At least two of these are complex (they depend on execution or on other blocks), so the score is 3.

Human No rationale recorded.

Performance risks30+3Differ by 2+
Show rationale

LLM Code deposit bytes are no longer bounded by the block or transaction gas limit. This couples block size and propagation, code storage writes, hashing and the cost of dedup lookups in ways that existing gas-limit benchmarks do not cover. Adversarial blocks full of maximum-size deployments, with and without duplicates, need integrated stress testing across execution, database and networking, so the score is 3.

Human No rationale recorded.

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

LLM No additional refund mechanism is introduced. Repricing the existing EIP-7702 refund belongs under GAS.

Human Refund tests are indirectly affected by the SSTORE change.

New or modified transaction validity mechanisms24−2Differ by 2+
Show rationale

LLM Intrinsic gas values change for creation transactions, 7702 transactions and 2780 new-account transfers. Lifting the 7825 cap for code deposit also changes how creation transactions are checked against the gas limit. These need dedicated cases, but the baseline validation sequence remains usable, so the score is 2.

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

Transition-tool interface changes20+2Differ by 2+
Show rationale

LLM The transition tool would need to report per-transaction code_deposit_gas (or a gas vector) and the block-level metered gas or header value. That is multiple fields with no new exchange mechanism, so the score is 2.

Human No rationale recorded.

Security risks20+2Differ by 2+
Show rationale

LLM Exempting code deposit from the transaction and block gas limits changes the DoS assumptions that EIP-7825 and block validation rely on. The dedup lookup and linking also introduce a state-dependent charge open to griefing (cold lookups, reorg and same-block visibility). Each of these is a bounded interaction that needs targeted integration and fuzzing review, so the score is 2.

Human No rationale recorded.

Engine API changes10+1Differ by 1
Show rationale

LLM If the header field is adopted, the execution payload would need one additional field. No endpoint-level change is indicated, so the score is 1.

Human No rationale recorded.

Cross-EIP interactions32+1Differ by 1
Show rationale

LLM The target couples behavior from several EIPs: the 7825 cap, the 170 size limit and the 8011 metering jointly decide whether large deployments succeed; 2780's intrinsic surcharge uses the repriced new-account cost; and 7702's intrinsic cost and refund change. Each needs coordinated scenarios, so the score is 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.

Human No rationale recorded.

Modified opcodes000Agree
Show rationale

LLM The changes to CREATE, CREATE2, SSTORE and SELFDESTRUCT are gas-only or internal storage optimizations. Stack, memory/state effects and return values are unchanged.

Human No rationale recorded.

Added precompiles000Agree
Show rationale

LLM No new precompile is introduced.

Human No rationale recorded.

Modified precompiles000Agree
Show rationale

LLM No precompile changes.

Human No rationale recorded.

Added system contracts000Agree
Show rationale

LLM No system contract is introduced.

Human No rationale recorded.

Modified system contracts000Agree
Show rationale

LLM No system contract's rules or surrounding protocol behavior change.

Human No rationale recorded.

Blob gas accounting changes000Agree
Show rationale

LLM The EIP does not change blob-gas accounting.

Human No rationale recorded.

New transaction types000Agree
Show rationale

LLM No new transaction type.

Human No rationale recorded.

New fork activation mechanism000Agree
Show rationale

LLM No activation-specific state transition is required.

Human No rationale recorded.

Edge/boundary conditions330Agree
Show rationale

LLM Several boundary-sensitive mechanisms change. These include the dedup existence boundary, warm/cold access cost, the per-word hash rounding, the out-of-gas point at code deposit, the 7825 cap versus the separately metered deposit gas, the EIP-170 size limit, and the 2780 new-account surcharge conditions. The dedup charge forms an elevated matrix over these dimensions: code existence (prior block, earlier transaction, same transaction, reverted creation) × warm/cold × CREATE/CREATE2/creation transaction × empty versus non-empty code × size near 24,576. These combinations change the outcome together, so the score is 3.

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

Cryptography000Agree
Show rationale

LLM Only an existing hashing primitive is reused, and only its gas charge is new. No cryptographic rule changes.

Human No rationale recorded.

State-access ordering within opcode execution2n/a—Only in revision 3
Show rationale

LLM A new state-accessing step, the code-hash existence check, is added to the return path of CREATE, CREATE2 and creation transactions. It needs an ordering rule relative to the hash charge, the deposit charge and the out-of-gas point. This affects multiple operations, but no rule for an entire opcode class or for recordable accesses changes across operations, so the score is 2.

Human No rationale recorded.

State gas accounting changes3n/a—Only in revision 3
Show rationale

LLM Beyond changing state-byte rates (level 1), the EIP introduces a new charging mechanism for state writes: a separately metered code_deposit_gas dimension and a charge that is waived based on deduplication. This meets level 3.

Human No rationale recorded.

Engine API encoding changesn/a0—Only in revision 1—
New invariant on pre-existing tests2n/a—Only in revision 3
Show rationale

LLM If the required two-dimensional metering carries the 8011-style per-block metered-gas output, every post-fork block test must check a new value (bottleneck metered gas). Pre-fork vectors are unaffected, so the score is 2.

Human No rationale recorded.

New test-framework primitives2n/a—Only in revision 3
Show rationale

LLM The target's test suite needs new expectation abstractions: a two-dimensional gas-used expectation for creations, and helpers that compute deposit, access and hash costs depending on whether the code already exists. This is level 2. Whether that representation must become a shared one that changes block-gas and base-fee checks across families depends on unresolved metering details.

Human No rationale recorded.

Unspecified behavior requiring cross-client consensus3n/a—Only in revision 3
Show rationale

LLM Gas metering split across two dimensions is new and consensus-visible, and the rule is left unresolved. The target's statements contradict the 8011 model it adopts on how the transaction cap, transaction gas limit and block gas limit apply. Resolving this changes gas-used, validity and base-fee expectations across many families. Further open points include warm/cold semantics for code lookups, CodeExists for code created by reverted or same-transaction creations, and the interaction with the 2780 constant. This meets level 3.

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 · not in checklist revision 1
    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 · not in checklist revision 1
    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 · not in checklist revision 1
    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 · not in checklist revision 1
    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 · not in checklist revision 1
    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.