ECIP 1121: Execution Client Specification Alignment (Olympia Hardfork)
| Author | Ethereum Classic Community |
|---|---|
| Discussions-To | https://github.com/ethereumclassic/ECIPs/discussions/530 |
| Status | Draft |
| Type | Meta |
| Created | 2025-12-14 |
Abstract
ECIP-1121 documents the Ethereum execution-layer protocol specifications that Ethereum Classic execution clients implement in order to remain execution-client parallel with Ethereum, excluding fee-market governance and blob-based data availability mechanics.
This ECIP serves as the execution-layer bookend for the Olympia ECIP option set (ECIP-1111, ECIP-1112, ECIP-1113, ECIP-1114, ECIP-1115, ECIP-1116, ECIP-1117, ECIP-1118, ECIP-1119 and ECIP-1120), consolidating execution semantics that are independent of consensus, treasury policy, or data-availability design choices.
This ECIP documents and scopes execution-layer specifications for coordination purposes. This document proposes the following blocks at which to implement these changes in the Ethereum Classic networks:
TBD on Mordor testnet TBD on Ethereum Classic mainnet
For more information on the opcodes and their respective EIPs and implementations, please see the Specification section of this document.
Motivation
Ethereum Classic has historically adopted a conservative, explicitly documented approach to protocol upgrades, as demonstrated in the Spiral and Mystique hard forks. Execution-layer compatibility with Ethereum improves tooling interoperability, client robustness, and auditability, while preserving Ethereum Classic’s Proof-of-Work consensus and economic neutrality.
Since Spiral and Mystique, and continuing through Ethereum’s Fusaka execution-layer upgrades, a set of execution client specifications has emerged that:
- Do not depend on Proof-of-Stake
- Do not mandate blob data availability
- Do not alter Ethereum Classic’s monetary or treasury policy
These execution semantics are already implemented or are directly implementable in Ethereum Classic execution clients. ECIP-1121 consolidates them into a single reference document.
Scope
This ECIP:
- Applies to execution-layer behavior only
- Excludes fee market governance defined in the Olympia ECIP set
- Explicitly defers blob data availability mechanics
- Does not modify consensus rules
- Does not define activation blocks (TBD)
Relationship to Prior ECIPs
ECIP-1121 is complementary to the following ECIPs:
| ECIP | Description | Included / Excluded |
|---|---|---|
| ECIP-1111 | Olympia meta-specification | Included |
| ECIP-1112 | Treasury contract option | TBD |
| ECIP-1113 | Treasury governance option | TBD |
| ECIP-1114 | Funding flow option | TBD |
| ECIP-1115 | Treasury operational constraints | TBD |
| ECIP-1116 | Fee-handling alternative (draft) | TBD |
| ECIP-1117 | Fee-handling alternative (draft) | TBD |
| ECIP-1118 | Fee-handling alternative (draft) | TBD |
| ECIP-1119 | International Sanctions Compliance | TBD |
| ECIP-1120 | Base fee smoothing option | TBD |
ECIP-1121 does not supersede any of the above ECIPs and does not define economic or governance behavior.
Prior Fork Validation
The EIPs listed in this ECIP:
- Were not activated in Spiral or Mystique
- Were not explicitly excluded in prior ECIPs
- Are execution-layer only
- Are compatible with Proof-of-Work block production
ETH Forks Covered:
Execution Client Specifications
Gas Accounting and State Access
| EIP | Short Description |
|---|---|
| EIP-7702 - Set EOA account code | Add a new tx type that permanently sets the code for an EOA |
| EIP-7623 - Increase calldata cost | Increase calldata cost to reduce maximum block size |
| EIP-7825 Transaction Gas Limit Cap | Introduce a protocol-level cap on the maximum gas used by a transaction to 16,777,216 (2^24) |
| EIP-7883 MODEXP gas cost increase | Increases cost of ModExp precompile |
| EIP-7935 - Set default gas limit to 60 million | Recommend a new gas limit value for Fusaka and update execution layer client default configs |
EVM Safety and Forward Compatibility
| EIP | Short Description |
|---|---|
| EIP-7934 RLP Execution Block Size Limit | Introduce a protocol-level cap on the maximum RLP-encoded block size to 10 MiB, including a 2 MiB margin for beacon block size. |
| EIP-6780 - SELFDESTRUCT only in same transaction | SELFDESTRUCT will recover all funds to the target but not delete the account, except when called in the same transaction as creation |
| EIP-7642: eth/69 - history expiry and simpler receipts | Adds history serving window and removes bloom filter in receipt |
| EIP-7910 - eth_config JSON-RPC Method | A JSON-RPC method that describes the configuration of the current and next fork |
Cryptographic and Precompile Enhancements
| EIP | Short Description |
|---|---|
| EIP-2537 - Precompile for BLS12-381 curve operations | Adds operation on BLS12-381 curve as a precompile in a set necessary to efficiently perform operations such as BLS signature verification. |
| EIP-7951 Precompile for secp256r1 Curve Support | Add precompiled contract for secp256r1 ECDSA signature verification with proper security checks |
Execution Context Optimizations
| EIP | Short Description |
|---|---|
| EIP-5656 - MCOPY - Memory copying instruction | An efficient EVM instruction for copying memory areas |
| EIP-2935 - Save historical block hashes in state | Store and serve last 8191 block hashes as storage slots of a system contract to allow for stateless execution |
| EIP-1153 - Transient storage opcodes | Add opcodes for manipulating state that behaves almost identically to storage but is discarded after every transaction |
Deferred Specifications
The following execution-adjacent EIPs are explicitly deferred because Ethereum Classic does not implement blob-based data availability:
| EIP | Reason for Deferral |
|---|---|
| Any blob-dependent EIP | ETC does not implement blobs |
| EIP-4788 - Beacon block root in the EVM | ETC does not implement blobs |
| EIP-4844 - Shard blob transactions (Proto-Danksharding) | ETC does not implement blobs |
| EIP-7516 - BLOBBASEFEE opcode | ETC does not implement blobs |
| EIP-4844 - Shard blob transactions | ETC does not implement blobs |
| EIP-7691 - Blob throughput increase | ETC does not implement blobs |
| EIP-7840 - Add blob schedule to EL config files | ETC does not implement blobs |
| EIP-7892 Blob Parameter Only Hardforks | ETC does not implement blobs |
| EIP-7918 Blob base fee bounded by execution cost | ETC does not implement blobs |
Deferral does not imply rejection.
Explicit Exclusions
The following specifications are intentionally excluded and governed elsewhere:
- Fee market governance (ECIP-1111, ECIP-1112, ECIP-1113, ECIP-1114, ECIP-1115, ECIP-1120)
- EIP-1559
- EIP-3198
The following specifications are related to one or more of the following and are not applicable to ETC
- Proof-of-Stake consensus mechanisms
- Beacon Chain dependencies
- Engine API proposer-validator separation
- MEV-Boost and proposer-builder separation
| EIP | Reason for Omission |
|---|---|
| EIP-4788 - Beacon block root in the EVM | ETC does not implement POS |
| EIP-7044 - Perpetually valid signed voluntary exits | ETC does not implement POS |
| EIP-7045 - Increase max attestation inclusion slot | ETC does not implement POS |
| EIP-7514 - Add max epoch churn limit | ETC does not implement POS |
| EIP-7251 - Increase the MAX_EFFECTIVE_BALANCE | ETC does not implement POS |
| EIP-7002 - Execution layer triggerable exits | ETC does not implement POS |
| EIP-7685 - General purpose execution layer requests | ETC does not implement POS |
| EIP-6110 - Supply validator deposits on chain | ETC does not implement POS |
| EIP-7549 - Move committee index outside Attestation | ETC does not implement POS |
| EIP-7917 Deterministic proposer lookahead | ETC does not implement POS |
Rationale
Separating execution-layer semantics from economic and governance policy:
- Preserves Ethereum Classic’s Proof-of-Work integrity
- Improves client and tooling interoperability
- Reduces governance coupling
- Mirrors the successful structure of Spiral and Mystique ECIPs
References
- Ethereum Improvement Proposals: https://eips.ethereum.org
- Ethereum Roadmap – Fusaka: https://ethereum.org/roadmap/fusaka/
- Ethereum Classic ECIPs: https://ecips.ethereumclassic.org
- Core-Geth: https://github.com/etclabscore/core-geth
Copyright
Copyright and related rights waived via
CC0.