# Geth: EIP-7708 and EIP-8246 public-source review

## Result and scope

**No candidate retained.** Static comparison did not establish a Geth/spec difference in the two assigned Amsterdam features. Static public-source review only; no client, node, RPC or transaction execution. No claim that all public tests pass.

Review date: 2026-10-27 UTC. Scope: the two assigned EIPs, with receipt, gas, rollback and BAL interactions. No candidate entries or live-code findings.

## Pins and specification versions

Heads resolved via GitHub API; code read from pinned raw.githubusercontent.com URLs.

| Source | Branch | Commit | Pin API |
|---|---|---|---|
| Geth | master | `8817f99f92852f8ac53e596de6202dd9e3494065` | [commits/master](https://api.github.com/repos/ethereum/go-ethereum/commits/master) |
| execution-specs | forks/bogota | `7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b` | [commits/forks/bogota](https://api.github.com/repos/ethereum/execution-specs/commits/forks/bogota) |
| Nethermind | master | `d48833af88ec4224c86afadd1c596e8f619c406b` | [commits/master](https://api.github.com/repos/NethermindEth/nethermind/commits/master) |
| EIPs | master | `d4c575521d99ec881a444ab3af604e684b5f0743` | [commits/master](https://api.github.com/repos/ethereum/EIPs/commits/master) |
| consensus-specs (fork context only) | master | `8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2` | [commits/master](https://api.github.com/repos/ethereum/consensus-specs/commits/master) |

Compared the Amsterdam subtree of default branch `forks/bogota`: [repository metadata](https://api.github.com/repos/ethereum/execution-specs).

[EIP-7773](https://eips.ethereum.org/EIPS/eip-7773#eips-scheduled-for-inclusion) lists these 18 scheduled EIPs: 2780, 7688, 7708, 7732, 7778, 7843, 7928, 7954, 7976, 7981, 7997, 8024, 8037, 8038, 8045, 8061, 8246, 8282. Its separate networking/informational sections are not extra entries in that scheduled list. Pinned meta source: [EIPS/eip-7773.md#L21-L61][E1]. The EL Amsterdam change list includes the two assigned EIPs: [__init__.py#L1-L43][S32]. CL fork context is Gloas, with fork version `0x07000000` and epoch still TBD in [specs/gloas/fork.md#L19-L30][C1]; no CL conformance review is implied.

| Assigned EIP | Current text reviewed | Version identity |
|---|---|---|
| 7708, ETH Transfers Emit a Log | [EIP text](https://eips.ethereum.org/EIPS/eip-7708); Last Call, deadline 2026-11-01 | [EIPS/eip-7708.md#L1-L39][E2]; latest file-changing commit at lookup: `f1ade090fd315895461fc3e249cb1a675aeb55a9` (2026-10-22). [File history API](https://api.github.com/repos/ethereum/EIPs/commits?path=EIPS/eip-7708.md&per_page=1) |
| 8246, Remove SELFDESTRUCT Burn | [EIP text](https://eips.ethereum.org/EIPS/eip-8246); Last Call, deadline 2026-11-04 | [EIPS/eip-8246.md#L1-L48][E3]; latest file-changing commit at lookup: `f1ade090fd315895461fc3e249cb1a675aeb55a9` (2026-10-22). [File history API](https://api.github.com/repos/ethereum/EIPs/commits?path=EIPS/eip-8246.md&per_page=1) |

Last Call is document maturity, not evidence of mainnet activation. The pinned Geth mainnet chainspec omits Amsterdam activation: [params/chainspecs/mainnet.json#L1-L51][G47].

## Rules checked and found consistent

Static path checks; spec paths below are relative to Amsterdam. The normative ETH-log field definition and movement list are [EIP-7708 specification](https://eips.ethereum.org/EIPS/eip-7708#specification); finalization semantics are [EIP-8246 specification](https://eips.ethereum.org/EIPS/eip-8246#specification).

| Rule / edge | Specification evidence | Geth evidence and conclusion |
|---|---|---|
| Transaction value, including creation transactions and all envelope types | Nonzero value to a distinct account; log precedes execution. [vm/interpreter.py#L133-L216][S1]; [vm/interpreter.py#L395-L440][S2] | Transaction execution funnels into CALL/CREATE; both transfer before running code/initcode. [core/state_transition.go#L835-L865][G1]; [core/state_transition.go#L895-L925][G2]; [core/vm/evm.go#L283-L360][G3]; [core/vm/evm.go#L585-L650][G4] |
| CALL; chronological ordering; zero and self transfers | [vm/interpreter.py#L395-L440][S2]; [vm/__init__.py#L247-L283][S4] | Shared helper appends only if Amsterdam, nonzero, and sender differs from recipient. Nested calls use the same path, before child code. [core/evm.go#L143-L149][G5]; [core/vm/evm.go#L283-L360][G3] |
| CALLCODE, DELEGATECALL, STATICCALL | CALLCODE uses executing account as recipient; sender equals recipient, so no movement log. DELEGATECALL disables value transfer; STATICCALL has zero value. [vm/instructions/system.py#L610-L620][S5]; [vm/instructions/system.py#L680-L695][S6]; [vm/instructions/system.py#L860-L872][S7]; [vm/instructions/system.py#L960-L975][S8] | CALLCODE checks affordability but does not call Transfer; delegated/static calls do not transfer. A subsequent CALL/CREATE executed by their code can emit normally using the execution context as sender. [core/vm/evm.go#L364-L491][G7] |
| CREATE and CREATE2 endowments; failure | Shared generic creation passes should_transfer_value=True and created address as target. [vm/instructions/system.py#L59-L185][S9]; [vm/interpreter.py#L324-L392][S10] | Shared create routine transfers after collision checks and snapshot; initialization failure reverts snapshot. Zero endowment suppressed by helper. [core/vm/evm.go#L585-L650][G4]; [core/evm.go#L143-L149][G5] |
| Precompiles and EIP-7702 delegated targets | Value goes to current_target, while code_address may differ; transfer occurs before precompile/code dispatch. [vm/interpreter.py#L133-L216][S1]; [vm/interpreter.py#L395-L440][S2]; [vm/eoa_delegation.py#L84-L109][S13] | CALL transfers to addr before choosing code; resolveCode follows delegation without changing recipient. Failed precompile rolls back transfer and log. Delegation to a precompile does not redirect the value to its code address. [core/vm/evm.go#L283-L360][G3]; [core/vm/evm.go#L724-L748][G10] |
| Protocol system calls | Top-level system transaction value is zero; its output does not enter ordinary transaction receipts. [fork.py#L724-L782][S14]; [fork.py#L1060-L1093][S15] | System caller bypasses top-level Transfer. Protocol system call sites use zero value and do not create transaction receipts. [core/vm/evm.go#L275-L277][G11]; [core/vm/evm.go#L283-L360][G3]; [core/state_processor.go#L380-L405][G13]; [core/state_processor.go#L420-L440][G14] |
| Withdrawals, priority fees, gas purchase/refund, base fee | EIP-7708 rationale excludes fee and withdrawal logs; fork credits withdrawals outside transaction output. [fork.py#L1060-L1093][S15]; [fork.py#L1095-L1118][S17] | These credit/debit balance directly, bypassing the logging Transfer helper. [core/state_processor.go#L232-L250][G15]; [core/state_transition.go#L513-L519][G16]; [core/state_transition.go#L801-L818][G17]; [core/state_transition.go#L1092-L1105][G18] |
| Log address, three topics, uint256 data | SYSTEM_ADDRESS, TRANSFER_TOPIC, zero-left-padded addresses, 32-byte big-endian amount. [vm/__init__.py#L247-L283][S4] | Same constant emitter/topic; BytesToHash pads the 20-byte addresses; Bytes32 copies the amount. No extra burn or destruction event. [core/types/log.go#L68-L81][G19]; [params/protocol_params.go#L246-L247][G20]; [params/protocol_params.go#L278-L279][G21] |
| No extra LOG3 opcode charge | Emitter appends a log without charging gas. Normal Amsterdam intrinsic and CALL/state costs still apply. [vm/__init__.py#L247-L283][S4]; [transactions.py#L689-L798][S18] | Transfer helper, constructor, and SELFDESTRUCT log append contain no gas charge; they do not invoke the LOG3 opcode. [core/evm.go#L143-L149][G5]; [core/types/log.go#L68-L81][G19]; [core/vm/instructions.go#L933-L968][G23] |
| Logs disappear on revert/exception; failed child caught by parent | [vm/interpreter.py#L395-L440][S2]; [vm/interpreter.py#L449-L469][S20]; [vm/__init__.py#L210-L245][S21] | CALL/CREATE snapshots precede value-log append; errors revert snapshots. AddLog is journaled; rollback removes the log and decrements logSize. Surviving earlier parent logs remain. [core/vm/evm.go#L283-L360][G3]; [core/vm/evm.go#L585-L650][G4]; [core/state/statedb.go#L254-L274][G26]; [core/state/journal.go#L618-L626][G27] |
| Receipt inclusion, bloom, log index | Receipt uses tx_output.logs; block logs aggregate the same tuple; bloom derives from address/topics. Log index is RPC metadata rather than a receipt consensus field. [fork.py#L632-L660][S22]; [fork.py#L1060-L1093][S15]; [bloom.py#L62-L85][S23] | Normal log list is used for receipt; indices assigned on append and restored on rollback; bloom and receipt trie digest consume the receipt list. [core/state/statedb.go#L254-L274][G26]; [core/state_processor.go#L315-L341][G29]; [core/types/bloom9.go#L107-L135][G30]; [core/digest_pipeline.go#L83-L111][G31]; [core/block_validator.go#L158-L171][G32] |
| SELFDESTRUCT to a different beneficiary; zero balance | move_ether; emit only for different originator/beneficiary; zero suppressed by emitter. Originator means the executing account, not transaction origin. [vm/instructions/system.py#L757-L775][S24] | Reads executing contract address, moves whole balance, logs the original amount once if nonzero and distinct. Applies to both newly created and old contracts. [core/vm/instructions.go#L933-L968][G23] |
| SELFDESTRUCT to self; deletion eligibility | Self balance remains unchanged under 8246; mark for clearing only if created this transaction. [vm/instructions/system.py#L757-L775][S24]; [state_tracker.py#L606-L641][S25] | New-contract self branch subtracts balance only before Amsterdam; no self-transfer log. Existing contracts are not marked. [core/vm/instructions.go#L933-L968][G23]; [core/vm/evm.go#L585-L650][G4] |
| Finalization; late funding; nonce/code/storage; empty account deletion | [fork.py#L1060-L1093][S15]; [state_tracker.py#L494-L538][S27] | Nonzero residual balance is copied to a fresh state object; zero residual balance is deleted. This preserves funding received after destruction, including repeated funding/destruction within one transaction. [core/state/statedb.go#L855-L907][G35]; [core/state/state_object.go#L101-L116][G36] |
| Later CREATE2 to a preserved balance-only account | Cleared nonce and code allow subsequent recreation; storage is wiped. [state_tracker.py#L494-L538][S27] | Collision check uses nonce/code, not balance; snapshot/CreateContract/nonce initialization occurs before initcode. [core/vm/evm.go#L585-L650][G4] |
| Dead-beneficiary execution and state gas | Charge NEW_ACCOUNT plus ACCOUNT_WRITE only for a non-alive beneficiary and nonzero originator balance; execution before state gas. [vm/instructions/system.py#L721-L755][S28] | Empty (EIP-161 dead), not merely absent; balance must be nonzero. Dynamic execution/state charges are separate. [core/vm/gas_table.go#L646-L679][G38]; [core/vm/eips.go#L612-L613][G39] |
| BAL: final account balance/nonce/code; emitter is not an accessed account | Clear before incorporating transaction into BAL; compare final values against pre-index state. Transfer log emitter is only a constant log address. [fork.py#L1060-L1093][S15]; [block_access_lists.py#L765-L835][S29]; [vm/__init__.py#L247-L283][S4] | Record final account values after replacement/deletion; no account lookup for log emitter. Balance comparison suppresses self-transfer no-ops and reverted transfers. [core/state/statedb.go#L825-L853][G40]; [core/state/statedb.go#L855-L907][G35]; [core/types/log.go#L68-L81][G19] |
| BAL: slots of created-then-destroyed contracts | [state_tracker.py#L494-L538][S27] | GetCommittedState records reads, including implicit SSTORE reads. Destruction branches skip obj.finalise(), so its dirty slots never become BAL writes; reads survive. [core/state/state_object.go#L172-L190][G42]; [core/state/state_object.go#L227-L238][G43]; [core/state/state_object.go#L254-L285][G44]; [core/state/statedb.go#L855-L907][G35] |
| Activation boundary | EIPs are scheduled for this hard fork, not active rules for earlier blocks. Amsterdam specification declares Unscheduled fork criterion. [__init__.py#L1-L43][S32] | Helper, SELFDESTRUCT self exception and finalization select Amsterdam rules. Mainnet chainspec has no amsterdamTime. Instruction set inherits Cancun SELFDESTRUCT and overrides Amsterdam pricing. [params/config.go#L741-L744][G45]; [params/config.go#L1297-L1310][G46]; [params/chainspecs/mainnet.json#L1-L51][G47]; [core/vm/jump_table.go#L106-L133][G48]; [core/state/statedb.go#L779-L782][G49] |

## Independent comparison and disproof pass

Nethermind independently enables both EIPs in Amsterdam: [Nethermind.Specs/Forks/25_Amsterdam.cs#L9-L27][N1]. This cross-check was used to challenge the interpretation, not as a replacement for the specification.

- **CALLCODE omission disproved:** EELS uses the executing context as recipient, making it a self-transfer. Geth agrees. Nethermind explicitly excludes CALLCODE/DELEGATECALL: [Nethermind.Evm/VirtualMachine.ExecutionHandlers.cs#L78-L83][N2].
- **Burn/late funding loss disproved:** opcode and finalization must be read together. Amsterdam leaves self-target balance untouched and preserves the final residual balance. Nethermind agrees: [Nethermind.Evm/Instructions/EvmInstructions.ControlFlow.cs#L450-L473][N3]; [Nethermind.Evm/TransactionProcessing/TransactionProcessor.cs#L102-L117][N4].
- **Destroyed-account BAL writes disproved:** writes enter BAL in stateObject.finalise, which destruction skips; implicit reads already exist. See BAL rows.
- **Revert/index leakage disproved:** snapshots precede transfer; addLogChange rollback removes the log and decrements logSize. See rollback row.
- **Dead-but-existing beneficiary undercharge disproved:** Geth uses Empty, not !Exist, matching EELS. Nethermind agrees: [Nethermind.Evm/Instructions/EvmInstructions.ControlFlow.cs#L412-L428][N5].

Static confidence: high for movement/encoding/rollback; medium for finalization/BAL. No differing result established, so no severity assigned.

Specification caveat: [EIP-7928 transaction handling](https://eips.ethereum.org/EIPS/eip-7928#transaction-handling) still describes a destroyed account's positive pre-transaction balance changing to zero. That conflicts with the explicit balance-preservation update in EIP-8246. Geth and pinned Amsterdam EELS both preserve the final balance; the table follows that specific update rather than treating the older zero-balance wording as a new burn requirement. This is a documentation inconsistency, not an established Geth deviation from the assigned EIP-8246 semantics.

## Known-check and public test evidence

No retained candidate needs a candidate-specific known/not-found label. Discovery searches covered open/closed issues and PRs, with complete results within one 100-item page:

| Query (all states, issues and PRs) | Results at lookup |
|---|---|
| [`repo:ethereum/go-ethereum 7708`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fgo-ethereum%207708&per_page=100) | 13 |
| [`repo:ethereum/go-ethereum 8246`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fgo-ethereum%208246&per_page=100) | 5 |
| [`repo:ethereum/go-ethereum "transfer logs"`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fgo-ethereum%20%22transfer%20logs%22&per_page=100) | 16 |
| [`repo:ethereum/go-ethereum "selfdestruct burn"`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fgo-ethereum%20%22selfdestruct%20burn%22&per_page=100) | 8 |
| [`repo:ethereum/go-ethereum "ETH Transfers Emit a Log"`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fgo-ethereum%20%22ETH%20Transfers%20Emit%20a%20Log%22&per_page=100) | 0 |
| [`repo:ethereum/go-ethereum "Remove SELFDESTRUCT Burn"`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fgo-ethereum%20%22Remove%20SELFDESTRUCT%20Burn%22&per_page=100) | 1 |
| [`repo:ethereum/execution-specs "Test Release Tracker"`](https://api.github.com/search/issues?q=repo%3Aethereum%2Fexecution-specs%20%22Test%20Release%20Tracker%22&per_page=100) | 36 |

Relevant known history, checked against current code rather than re-reported as new:

- **Known, closed issue:** [Geth #34623](https://github.com/ethereum/go-ethereum/issues/34623), missing tracing hook for former burn logs. Current 8246 semantics remove those burn logs; this is not evidence of missing transfer receipt logs.
- **Known, merged/closed:** [Geth #33645](https://github.com/ethereum/go-ethereum/pull/33645), original 7708 implementation, merged 2026-03-23. 
- **Known, merged/closed:** [Geth #35219](https://github.com/ethereum/go-ethereum/pull/35219), 8246 implementation, merged 2026-06-30. [#35192](https://github.com/ethereum/go-ethereum/pull/35192) and [#35218](https://github.com/ethereum/go-ethereum/pull/35218) are closed, unmerged alternatives/superseded work. Current finalization was read directly.
- **Known, merged/closed:** [Geth #35617](https://github.com/ethereum/go-ethereum/pull/35617), duplicate synthetic/protocol transfer logs in `eth_simulateV1`, merged 2026-10-07. [#35668](https://github.com/ethereum/go-ethereum/pull/35668), Amsterdam simulation alignment, also merged 2026-10-07. These are known RPC simulation work, not new block-execution findings.
- **Open tracking issue:** [Geth #33661](https://github.com/ethereum/go-ethereum/issues/33661), “Amsterdam Tracking,” includes an old SELFDESTRUCT corner-case checklist. An unchecked tracking box does not by itself show that pinned code is wrong.

Glamsterdam tracker bodies and comments read (all closed except open #3217): [2915](https://github.com/ethereum/execution-specs/issues/2915), [3001](https://github.com/ethereum/execution-specs/issues/3001), [3043](https://github.com/ethereum/execution-specs/issues/3043), [3049](https://github.com/ethereum/execution-specs/issues/3049), [3034](https://github.com/ethereum/execution-specs/issues/3034), [3132](https://github.com/ethereum/execution-specs/issues/3132), [3147](https://github.com/ethereum/execution-specs/issues/3147), [3123](https://github.com/ethereum/execution-specs/issues/3123), [3167](https://github.com/ethereum/execution-specs/issues/3167), [3295](https://github.com/ethereum/execution-specs/issues/3295), [3311](https://github.com/ethereum/execution-specs/issues/3311), [3452](https://github.com/ethereum/execution-specs/issues/3452), [3479](https://github.com/ethereum/execution-specs/issues/3479), [3518](https://github.com/ethereum/execution-specs/issues/3518), [3217](https://github.com/ethereum/execution-specs/issues/3217).

Specific relevant context: #3001 comments document adapting 8038 tests to 8246; #3043 documents the zero-balance-precompile value-transfer state-gas boundary correction; #3167 documents folding transfer-log intrinsic cost into TX_VALUE_COST. #3217 lists `tests@v21.0.0` as released and `v8.1.4` as latest devnet release, while final execute-mode/all-client sweeps remain unchecked. 

**Public Hive results unavailable:** fetching [hive.ethpandaops.io/glamsterdam/listing.jsonl](https://hive.ethpandaops.io/glamsterdam/listing.jsonl) returned HTTP 403 Forbidden. No listing entries, individual test results, or client pass rates were obtained. Consequently the requested independent Hive result cross-check is incomplete. No clean-Hive claim is made, and the report's no-candidate result comes from the static review, not a missing-results assumption.

## URLs read and validation

Cited pins, searches, EIPs, files, issues/PRs and trackers are the evidence inventory. Issue/PR bodies were read through public REST `/repos/{owner}/{repo}/issues/{number}` or `/pulls/{number}` and tracker comments through `/issues/{number}/comments?per_page=100`. Code citation URLs correspond to raw downloads at `https://raw.githubusercontent.com/{owner}/{repo}/{sha}/{path}`; GitHub HTML was not used to read code.

Context also read: [EthSkills](https://ethskills.com/SKILL.md), [protocol](https://ethskills.com/protocol/SKILL.md), [security](https://ethskills.com/security/SKILL.md), [Forkcast](https://forkcast.org/upgrade/glamsterdam). These are not normative conformance evidence. Attempted CL `specs/gloas/README.md` returned 404; the fork document was read instead.

Checked UTF-8, pinned citation line bounds, file existence and size below 30,000 bytes. No assigned behavioral checker exists; no client tests were run.

[S1]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/interpreter.py#L133-L216
[S2]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/interpreter.py#L395-L440
[G1]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_transition.go#L835-L865
[G2]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_transition.go#L895-L925
[G3]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/evm.go#L283-L360
[G4]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/evm.go#L585-L650
[S4]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/__init__.py#L247-L283
[G5]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/evm.go#L143-L149
[S5]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L610-L620
[S6]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L680-L695
[S7]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L860-L872
[S8]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L960-L975
[G7]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/evm.go#L364-L491
[S9]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L59-L185
[S10]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/interpreter.py#L324-L392
[S13]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/eoa_delegation.py#L84-L109
[G10]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/evm.go#L724-L748
[S14]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/fork.py#L724-L782
[S15]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/fork.py#L1060-L1093
[G11]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/evm.go#L275-L277
[G13]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_processor.go#L380-L405
[G14]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_processor.go#L420-L440
[S17]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/fork.py#L1095-L1118
[G15]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_processor.go#L232-L250
[G16]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_transition.go#L513-L519
[G17]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_transition.go#L801-L818
[G18]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_transition.go#L1092-L1105
[G19]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/types/log.go#L68-L81
[G20]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/params/protocol_params.go#L246-L247
[G21]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/params/protocol_params.go#L278-L279
[S18]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/transactions.py#L689-L798
[G23]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/instructions.go#L933-L968
[S20]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/interpreter.py#L449-L469
[S21]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/__init__.py#L210-L245
[G26]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/statedb.go#L254-L274
[G27]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/journal.go#L618-L626
[S22]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/fork.py#L632-L660
[S23]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/bloom.py#L62-L85
[G29]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state_processor.go#L315-L341
[G30]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/types/bloom9.go#L107-L135
[G31]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/digest_pipeline.go#L83-L111
[G32]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/block_validator.go#L158-L171
[S24]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L757-L775
[S25]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/state_tracker.py#L606-L641
[S27]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/state_tracker.py#L494-L538
[G35]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/statedb.go#L855-L907
[G36]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/state_object.go#L101-L116
[S28]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/vm/instructions/system.py#L721-L755
[G38]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/gas_table.go#L646-L679
[G39]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/eips.go#L612-L613
[S29]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/block_access_lists.py#L765-L835
[G40]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/statedb.go#L825-L853
[G42]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/state_object.go#L172-L190
[G43]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/state_object.go#L227-L238
[G44]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/state_object.go#L254-L285
[S32]: https://github.com/ethereum/execution-specs/blob/7f2f4c9bf6d73b09ecb8b24eb14d08bf0cf0247b/src/ethereum/forks/amsterdam/__init__.py#L1-L43
[G45]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/params/config.go#L741-L744
[G46]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/params/config.go#L1297-L1310
[G47]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/params/chainspecs/mainnet.json#L1-L51
[G48]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/vm/jump_table.go#L106-L133
[G49]: https://github.com/ethereum/go-ethereum/blob/8817f99f92852f8ac53e596de6202dd9e3494065/core/state/statedb.go#L779-L782
[E1]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-7773.md#L21-L61
[C1]: https://github.com/ethereum/consensus-specs/blob/8a80ffa82bd49aac0dd6db17f9e8150aa257fbc2/specs/gloas/fork.md#L19-L30
[E2]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-7708.md#L1-L39
[E3]: https://github.com/ethereum/EIPs/blob/d4c575521d99ec881a444ab3af604e684b5f0743/EIPS/eip-8246.md#L1-L48
[N1]: https://github.com/NethermindEth/nethermind/blob/d48833af88ec4224c86afadd1c596e8f619c406b/src/Nethermind/Nethermind.Specs/Forks/25_Amsterdam.cs#L9-L27
[N2]: https://github.com/NethermindEth/nethermind/blob/d48833af88ec4224c86afadd1c596e8f619c406b/src/Nethermind/Nethermind.Evm/VirtualMachine.ExecutionHandlers.cs#L78-L83
[N3]: https://github.com/NethermindEth/nethermind/blob/d48833af88ec4224c86afadd1c596e8f619c406b/src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.ControlFlow.cs#L450-L473
[N4]: https://github.com/NethermindEth/nethermind/blob/d48833af88ec4224c86afadd1c596e8f619c406b/src/Nethermind/Nethermind.Evm/TransactionProcessing/TransactionProcessor.cs#L102-L117
[N5]: https://github.com/NethermindEth/nethermind/blob/d48833af88ec4224c86afadd1c596e8f619c406b/src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.ControlFlow.cs#L412-L428
