Evaluated on: · Spec revision: 2026-08-25 · ac450a4ab2 · Inclusion status at snapshot: PFI
Scope at the cutoff. Execution-layer assessment of the sealed EIP-4758 snapshot. The proposal renames and changes the existing SELFDESTRUCT opcode to SENDALL so that it transfers the account's ETH without deleting code or storage or changing the nonce, and it removes SELFDESTRUCT-related refunds.
- Evaluator
- LLMChecklist v2
- Confidence
- Medium
- Under-specified at assessment cutoff
- Yes — 3 criteria affected
- Plausible range
- 12–17 (Medium)
- 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 proposal clearly removes destructive account effects and refunds, but it does not fully specify SENDALL's execution semantics. In particular, the beneficiary wording differs between the Abstract and Specification, and halting, detailed access sequencing, and target-account edge cases are not stated. These are recorded once here rather than reused as independent complexity mechanisms.
Plausible total
12–17
recorded score 14 · plausible tiers Medium
Unresolved questions at the cutoff (4)
- Is the beneficiary the opcode target, as the Specification states, or the caller, as the Abstract states?
- Does SENDALL retain SELFDESTRUCT's execution-halting behavior after the rename?
- What are the exact balance and account-touch semantics when the target is self, empty, or newly created?
- At what execution point do the balance accesses and transfer occur relative to gas charging and exceptional execution?
Notable ambiguities noted by the assessor (3)
- The Abstract says funds go to the caller, while the Specification says they go to the target.
- The word "immediately" does not define a complete execution or state-access sequence.
- The opcode's post-rename halting behavior and unchanged base gas treatment are not expressly stated.
Criterion breakdown
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Modified opcodes | 3 | The existing opcode's non-gas behavior is directly modified, which maps to the rubric's only nonzero score for this anchor. Exceptional score: Not applicable; score is below 4. |
Confidence: High Uncertainty: None material to the fact that existing opcode behavior changes. |
| Security risks | 3 | The changed opcode affects multiple security-relevant components and assumptions: account persistence, token balances, CREATE2 recreation, withdrawal gating, and upgrade patterns. Incorrect handling therefore calls for extensive review across critical account-lifecycle behavior. Exceptional score: Not applicable; score is below 4. |
Confidence: High Uncertainty: The package states that few applications are affected but gives no deployment inventory; this limits prevalence estimates, not the depth of the identified security interactions. |
| Edge/boundary conditionsUnder-specified | 2 | Whole-balance transfer with retained account state and the identified token, recreation, lifecycle, and upgrade patterns create multiple boundary-prone cases. The package does not establish that any one mechanism requires the elevated case count needed for score 3. Exceptional score: Not applicable; score is below 4. |
Confidence: Medium Uncertainty: Self-target, zero-balance, target-account, repeated-call, and execution-halting semantics are not expressly resolved by the short specification. |
| Cross-EIP interactions | 2 | EIP-20 token-state behavior and CREATE2-based address lifecycle behavior need coordinated consideration, but the package describes a limited interaction surface centered on SELFDESTRUCT-dependent patterns. Exceptional score: Not applicable; score is below 4. |
Confidence: Medium Uncertainty: The package does not provide a numbered EIP for CREATE2, and the supporting EIP-20 file contains no substantive token specification. Interacting EIPs: EIP-20 |
| Unspecified behavior requiring cross-client consensusUnder-specified | 2 | Test-constructible questions require localized agreement, including the caller-versus-target wording and whether renamed SENDALL retains terminating behavior. The core effect is defined, so the uncertainty is localized rather than a newly exposed fork-wide behavior. Exceptional score: Not applicable; score is below 4. |
Confidence: Medium Uncertainty: The package provides no implementation, devnet, or discussion evidence and the EIP status is Stagnant, so resolution of these questions cannot be inferred. |
| EVM Gas rule changes | 1 | Removing an existing opcode refund updates the existing EVM gas-accounting rules, but the proposal introduces no new gas-accounting mechanism. Exceptional score: Not applicable; score is below 4. |
Confidence: High Uncertainty: The text does not specify the opcode's remaining charge schedule, so this score is limited to the explicit refund-rule change. |
| Patterns affecting pre-existing tests | 1 | Pre-existing tests that exercise SELFDESTRUCT results, refunds, or same-address recreation need reworking, but the package characterizes the affected application set as small and ties it to a narrow opcode-focused subset. Exceptional score: Not applicable; score is below 4. |
Confidence: Medium Uncertainty: The package contains no test inventory, so the exact size of the affected subset cannot be established. |
Show 21 zero-score criteria
| Criterion | Score | Why this score | Evidence / uncertainty |
|---|---|---|---|
| Added opcodes | 0 | Renaming and redefining the existing opcode is a modification, not the introduction of an additional opcode. |
Uncertainty: The text does not state an opcode byte, but consistently frames SENDALL as a rename of SELFDESTRUCT rather than an addition. |
| Added precompiles | 0 | The proposal adds no precompile. |
Uncertainty: None; the proposal changes an opcode only. |
| Modified precompiles | 0 | No existing precompile behavior or gas accounting is modified. |
Uncertainty: None; precompiles are outside the stated scope. |
| Added system contracts | 0 | No system contract is introduced. |
Uncertainty: None; no system contract is part of the specified mechanism. |
| Modified system contracts | 0 | No direct modification or package-grounded indirect effect on a pre-existing system contract is identified. |
Uncertainty: The package does not inventory system-contract use of SELFDESTRUCT, so no such interaction can be inferred. |
| State-access ordering within opcode executionUnder-specified | 0 | The proposal changes which state effects the opcode produces, but it does not state a change to the relative ordering of a state access and a gas charge inside opcode execution. |
Uncertainty: The word "immediately" does not define the detailed access sequence or gas boundaries; that omission is recorded as under-specification rather than scored as an ordering change. |
| Blob gas accounting changes | 0 | No blob gas accounting mechanism is introduced or modified. |
Uncertainty: No blob-related behavior appears in the proposal. |
| State gas accounting changes | 0 | Changing the opcode's state result is not itself a change to a state-gas cost, rate, charging site, budget, reservoir, or spill mechanism. |
Uncertainty: The proposal specifies no state-gas accounting rules. |
| New EVM gas refund | 0 | The proposal removes refunds and introduces no new refund mechanism. |
Uncertainty: None material for whether a new refund is introduced. |
| New transaction types | 0 | The proposal adds no transaction type. |
Uncertainty: None; transaction envelopes are outside the specified change. |
| New or modified transaction validity mechanisms | 0 | No transaction validity mechanism or intrinsic gas rule changes. |
Uncertainty: None; consensus-rule modification alone does not imply transaction validity changes. |
| New block / header fields | 0 | The proposal adds no block or block-header field. |
Uncertainty: None; the proposal has no block-format surface. |
| Encoding changes (RLP/SSZ) | 0 | No RLP, SSZ, or other encoding change is introduced. |
Uncertainty: None; the specified behavior does not alter encoded data. |
| Block syncing changes | 0 | The proposal introduces no block RLP validation mechanism. |
Uncertainty: None; the specified change is confined to opcode execution and refunds. |
| New fork activation mechanism | 0 | Requiring fork activation is not itself a new activation mechanism under the anchor; no activation-block mutation is defined. |
Uncertainty: None; the text specifies no one-time activation action. |
| Engine API changes | 0 | The proposal requires no Engine API change on the evidence provided. |
Uncertainty: None; no cross-layer API surface appears in the proposal. |
| Transition-tool interface changes | 0 | No transition-tool interface modification is required by the text. |
Uncertainty: The package contains no transition-tool design, but the proposal exposes no new data that such an interface must carry. |
| New invariant on pre-existing tests | 0 | Tests of the changed opcode need different expectations, but tests unrelated to this proposal do not gain an additional invariant to assert. |
Uncertainty: No package evidence identifies a new assertion on unrelated tests. |
| New test-framework primitives | 0 | The proposal does not require a new expectation type, modifier, helper, or other test-framework abstraction. |
Uncertainty: No framework evidence is available in the package; the score rests on the absence of a novel observable data type in the specification. |
| Performance risks | 0 | The proposal removes the large destructive state operation and introduces no new mechanism that the package says requires performance validation. |
Uncertainty: The package contains no benchmarks, but it identifies no new performance-sensitive path beyond the narrowed balance-transfer behavior. |
| Cryptography | 0 | No cryptographic mechanism is introduced or modified. |
Uncertainty: None; cryptography is outside the stated change. |
Assessment provenance
- Assessed EIP revision
ethereum/EIPs@ac450a4ab2EIPS/eip-4758.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-4758.yaml· sha25678d6ec6f4430 - Supporting documents in the sealed package
supporting/eip-20.md