Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Assessment of the execution-layer complexity of draft EIP-7819 as sealed in the Hegota PFI snapshot, limited to its new SETDELEGATE opcode and the package-grounded interactions of the delegation accounts it creates.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 4 criteria affected
- Plausible range
- 20–23 (Medium–High)
- Snapshot
- 2026-08-25 · EIP revision
ac450a4ab2(2026-08-25)
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
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 draft leaves material execution-layer outcomes unresolved: it does not define state-gas charging for durable code and nonce writes, uses the unqualified result "Halt" at two consensus-visible failure sites, and does not anchor trie existence to original or current transaction state for its refund.
Plausible total
20–23
recorded score 21 · plausible tiers Medium, High
Unresolved questions at the cutoff (3)
- Does SETDELEGATE charge state gas for the 23-byte code write, account creation, or nonce initialization, and at which exact charge points?
- Does "Halt" in steps 2 and 6 mean an exceptional halt, a revert, or a successful stop, and which gas, accessed-address, and state effects survive?
- For step 7, is "already exists in the trie" evaluated against transaction original state or the current journaled state after earlier SETDELEGATE executions and rollbacks?
Notable ambiguities noted by the assessor (2)
- Step 6 accepts any non-empty code that starts with 0xEF0100, while the text elsewhere describes delegation indicators as exactly 23 bytes; the intended eligibility of a longer prefixed code value is not expressly reconciled.
- The recommendation that only the creator should be able to destroy a delegation is not a protocol check; authority is instead determined entirely by possession of the same executing address and salt path.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Security risks | 3 | Contract-controlled, immediately effective code replacement interacts with multiple critical mechanisms: account code and nonce state, delegation execution, access journaling, refunds, upgrade authorization, and deletion assumptions. Mistakes can change which code executes or who controls an account, requiring extensive security review and fuzzing across components. |
Confidence: High Uncertainty: Factory-level authorization policy is intentionally outside the protocol, so application guarantees vary, but the protocol integration risks are explicit and broad. |
| Edge/boundary conditions | 3 | Multiple boundary-prone mechanisms combine, and repeated same-location changes multiply success, failure, revert, refund, warm/cold, target, and call-timing cases. At least this repeated-update mechanism requires an elevated test matrix. |
Confidence: High Uncertainty: Ambiguous halt and trie-existence semantics make some expected boundary results unresolved, but clearly do not reduce the number of boundaries. |
| Cross-EIP interactions | 3 | SETDELEGATE strongly extends EIP-7702's shared delegation object, must coordinate access warming with EIP-2929 and non-empty-account preservation with EIP-7523, relies on the EIP-3541 marker convention, and is explicitly integrated into EIP-8141 deployment and mempool validation. These multiple interdependencies require coordinated cross-EIP execution, failure, introspection, and deployment tests. |
Confidence: High Uncertainty: ERC-721, ERC-1155, ERC-1167, ERC-1967, and ERC-4337 are cited as use cases or comparisons, not counted as protocol-test interactions requiring their own coordinated vectors. Interacting EIPs: EIP-2929, EIP-3541, EIP-7523, EIP-7702, EIP-8141 |
| Added opcodes | 2 | A single opcode is added, but its state-dependent net gas, multi-step stack behavior, state access, code/nonce mutation, and failure paths make it a complex opcode under the rubric. |
Confidence: High Uncertainty: The classification remains complex regardless of the unresolved details of halt and refund semantics. |
| EVM Gas rule changes | 2 | The opcode introduces its own gas-accounting rule, including a state-dependent refund, while leaving the gas rules of existing opcodes unchanged. This is a new mechanism confined to the new operation. |
Confidence: High Uncertainty: The treatment of repeated writes to an account that begins absent is not fully determined by the phrase "already exists in the trie," but the presence and general scope of the new gas rule are clear. |
| State-access ordering within opcode executionUnder-specified | 2 | SETDELEGATE is a new state-accessing operation whose charge, warm-access, read, refund, and write positions require boundary testing. It does not change the ordering rule for an existing class of opcodes, so score 2 rather than 3 applies. |
Confidence: High Uncertainty: The word "Halt" does not say whether the warm-address update at step 5 is retained or rolled back when step 6 rejects the location, increasing the uncertainty at that particular boundary. |
| New EVM gas refundUnder-specified | 2 | This is a simple conditional refund, but it shares the global refund counter with existing refund behavior and has state-dependent interactions under repeated writes, so targeted mixed-refund and cap testing is required. |
Confidence: Medium Uncertainty: The proposal does not define whether "already exists in the trie" refers to original or current transaction state, so the refund outcome for repeated creation, clearing, and rollback is uncertain. |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Clients need agreement on localized, constructible cases: the exact failure semantics and rollback boundary of both halt sites, and original-versus-current existence for refunds. Most other opcode behavior is specified, so the gaps are material but localized rather than a wholesale redefinition. |
Confidence: High Uncertainty: The separate omission of state-gas charging is recorded under under_specification and is not used again to inflate this row. |
| Patterns affecting pre-existing tests | 1 | Existing fork/opcode-validity coverage for byte 0xf6 must distinguish the activation boundary and the new behavior. That is a minor, localized subset of pre-existing tests; the broader SETDELEGATE matrix consists of new tests. |
Confidence: Medium Uncertainty: The package contains no implementation test inventory, so the exact number of pre-existing vectors requiring rework cannot be established. |
| Performance risks | 1 | The new opcode's hashing, state access, fixed-size code write, and delegated call path require benchmarking, but the operation is bounded and can be benchmarked in isolation; the delegated execution mechanism already comes from EIP-7702. |
Confidence: Medium Uncertainty: The package supplies motivations but no benchmark results for SETDELEGATE, so the size of its runtime and state-backend impact is not established. |
Show 18 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 0 | SETDELEGATE adds another way to create an already-defined delegation object; it does not itself modify the behavior of a pre-existing opcode. |
Uncertainty: Existing opcode suites need new SETDELEGATE-created fixtures, but the sealed text says their delegated-object semantics are identical rather than changed. |
| Added precompiles | 0 | No precompile is introduced. |
Uncertainty: No precompile-addition ambiguity is present. |
| Modified precompiles | 0 | Existing precompile behavior and gas schedules are not modified. |
Uncertainty: The inherited edge case requires tests but is specified by EIP-7702. |
| Added system contracts | 0 | No system contract is introduced. |
Uncertainty: No system-contract addition is described. |
| Modified system contracts | 0 | The proposal has no direct or specified indirect system-contract modification. |
Uncertainty: No system-contract interaction is identified in the package. |
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified. |
Uncertainty: No blob-gas ambiguity is visible in the sealed proposal. |
| State gas accounting changesUnder-specified | 0 | As written, EIP-7819 neither adjusts an existing state-gas rate nor defines a new state-gas charging site. The apparent omission for its durable code and nonce writes is recorded as material under-specification rather than repaired by assigning an unstated mechanism. |
Uncertainty: It is unresolved whether SETDELEGATE should receive a new state-gas charge for code and account-state growth in the Hegota setting; such a resolution could move this row to score 2. |
| New transaction types | 0 | No new transaction type is introduced. |
Uncertainty: No transaction-type ambiguity is present. |
| New or modified transaction validity mechanisms | 0 | Runtime opcode failure conditions do not modify transaction-envelope validity. |
Uncertainty: The meaning of runtime "Halt" is uncertain but does not create a static validity rule. |
| New block / header fields | 0 | The proposal introduces no new block or header field. |
Uncertainty: No header-surface uncertainty is present. |
| Encoding changes (RLP/SSZ) | 0 | No RLP, SSZ, or other interface-level encoding change is introduced. |
Uncertainty: No encoding uncertainty is visible in the package. |
| Block syncing changes | 0 | No block RLP validation mechanism requiring sync testing is introduced. |
Uncertainty: No syncing-surface ambiguity is present in the package. |
| New fork activation mechanism | 0 | Enabling a new opcode requires no special activation mechanism as written. |
Uncertainty: The proposal contains no activation procedure to assess beyond opcode availability. |
| Engine API changes | 0 | No Engine API surface is introduced or modified. |
Uncertainty: No Engine API uncertainty is present in the package. |
| Transition-tool interface changes | 0 | Existing transition-tool interface shapes are sufficient as specified. |
Uncertainty: The package does not prescribe tooling, but no new block or transaction input is needed to execute the opcode. |
| New invariant on pre-existing tests | 0 | The proposal does not require tests unrelated to SETDELEGATE to assert a new output or invariant. |
Uncertainty: The package has no test-suite mapping, but the specification states no universal per-test artifact or assertion. |
| New test-framework primitives | 0 | The EIP does not demonstrate a need for a new expectation type, modifier, or permanent framework abstraction beyond composing existing EVM state and execution checks. |
Uncertainty: No test-framework description is included in the package, so sufficiency of existing helpers cannot be confirmed from an implementation inventory. |
| Cryptography | 0 | Using an existing hash in a new derivation is not a new cryptographic mechanism. |
Uncertainty: No cryptographic mechanism is under-specified in this proposal. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-7819.md committed 2026-08-25 · information cutoff 2026-08-25T11:56:58Z- 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/08-hegota-prospective-complexity-assessment/outputs/assessments/hegota-pfi-2026-08-26/eip-7819.yaml· sha256aff55796c707 - Supporting documents in the sealed package
supporting/eip-721.md,supporting/eip-1155.md,supporting/eip-1167.md,supporting/eip-1967.md,supporting/eip-2929.md,supporting/eip-4337.md,supporting/eip-7523.md,supporting/eip-7702.md,supporting/eip-8141.md