This is the Ethereum Classic Improvement Proposals project in That World and Ethoxy. Please feel free to contribute new specifications. You can join discussions about ECIPs at #ecips:matrix.org.

We collect specifications for APIs, file formats, protocols, processes and compositions of them. We welcome and encourage Ethereum-compatible blockchain developers to contribute specifications for wider community to review.

Goals

  • Shared innovation: it wastes review efforts to duplicate specifications between EIPs and ECIPs. Sharing innovations across teams and blockchains can be more effective.
  • Focus on standardization: Sepcifications should be less political. Arguments won't be on whether a certain technology should happen, but how it would happen.

Process

We currently use an informal IETF-like process, following RFC 2026. Every specification has its maturity level:

  • A new specification is sent in a pull request. The editor checks and helps the author to move the specification into an acceptable quality. After that, the specification is merged in Raw maturity level. In this process, the specification gets its RFC number in the format of $number-$feature.
  • When at least one implementation is done for a particular specification, it is moved to Draft maturity level.
  • When significant implementations and successful operational experiences have been obtained, the specification is moved to Stable maturity level.
  • Specifications can be moved to Deprecated, Retired or Deleted status based on various conditions.

The current editor is Wei Tang <hi@that.world>.

Technically this process also support non-standards track, but currently we assume all submitted specifications are on the standards track.

Core

  1. 22-EVMJETS

    Jets in Ethereum Virtual Machine

    Jets are optimization marks. Using jets, users can place optmization marks in an EVM program. An EVM interpreter will then verify the optimization mark claim, and if the verification passes, execute a native code version of the program that is equivalent to the original program.

  2. 25-DIOP

    Disallow Deployment of Unused Opcodes

    This proposal disallows deployment of unused opcodes, to avoid unintended behaviors.

  3. 26-VER

    Use Version Byte Prefix for Contract Account Versioning

    Provide an alternative scheme for account versioning with the least amount of changes required.

  4. 27-MINERVOTE

    Generalized Version Bits Voting for Consensus Soft and Hard Forks

    The following ECIP tries to bring the best practices about how Bitcoin deals with consensus hard fork into Ethereum Classic.

  5. 28-CARBONVOTE

    Combined CarbonVote and MinerVote for Consensus Soft and Hard Forks

    The following ECIP tries to combine a enforced version of Ethereum CarbonVote and the best practices about how Bitcoin deals with consensus hard fork into Ethereum Classic using smart contracts.

  6. 29-CARBONALT

    A CarbonVote and MinerVote Contract for Consensus Soft and Hard Forks

    This contract provides a way to implement CarbonVote and MinerVote based solely on smart contract.

  7. 30-UNCLEGHOST

    Include Uncles in Total Difficulty Calculation

    This proposes to include uncle difficulty in total difficulty calcuation.

  8. 35-VERALT

    Maintain Existing Account Compatibility While Hard Forking

    This defines a method of hard forking while maintaining the exact functionality of existing account by allowing multiple versions of the virtual machines to execute in the same block.

Informational

  1. 24-ECIPURI

    URI Marker for Federated Ethereum Classic Improvement Proposals

    This specification proposes a solution for a decentralized Ethereum Classic Improvement Proposal via federation, while preserving the current proposal structures and allowing easy aggregator setup.

  2. 31-SYSTEM

    Include Uncles in Total Difficulty Calculation

    This gives a standardized view of SYSTEM transactions – transactions that are enforced by block validity rules (i.e. if the transaction is not included, it is considered invalid) but not executed by users.

  3. 32-READADDR

    Readable Address and Transaction Hash

    This defines convertion of address and transaction hash in Ethereum Classic network to readable strings, similar to how Urbit handles its ship names.

  4. 33-MNEMONIC

    Mnemonic code for public address

    This extends BIP-39 for public addresses on the Ethereum Classic network.

Interface

  1. 16-EVMJSON

    Ethereum Virtual Machine JSON-RPC

    This specification describes the JSON-RPC API that should be provided by an EVM implementation.

  2. 19-EVMFILE

    Filesystem Library on Ethereum Virtual Machine

    This RFC provides a filesystem specification that can be built on top of the Ethereum Virtual Machine.

  3. 21-LEASM

    Low-level Ethereum Virtual Machine Assembly

    This RFC aims to provide an assembly language that closely assembles EVM opcodes.

  4. 23-RLPMEDIA

    Recursive Length Prefix Media Type

    Defining a media type for Recursive Length Prefix (RLP) to allow a RESTful HTTP server to return raw RLP information directly.

Other ECIP Repositories

The ECIP process is decentralized, meaning this is only one of the ECIP repositories in the wild. Currently, other known ECIP repositories include:

Below is our best attempt to aggregate all current ECIPs in those locations.

  1. ECIP-1000

    ECIP Process

  2. ECIP-1010

    Delay Difficulty Bomb Explosion

  3. ECIP-1013

    ETC On-Chain Cryptographic Signing and Authentication Protocol

  4. ECIP-1015

    Long-term gas cost changes for IO-heavy operations to mitigate transaction spam attacks

  5. ECIP-1016

    ETC Improvement Proposal Management

  6. ECIP-1017

    Monetary Policy and Final Modification to the Ethereum Classic Emission Schedule

  7. ECIP-1018

    Monetary Policy and Final Modification to the Ethereum Classic Emission Schedule

  8. ECIP-1019

    Monetary Policy and Final Modification to the Ethereum Classic Emission Schedule

  9. ECIP-1021

    Token standard

  10. ECIP-1025

    Precompiled Contracts for zkSNARK Verification

  11. ECIP-1026

    Modexp Precompiled Contract

  12. ECIP-1027

    Scaling ETC with Sidechains

  13. ECIP-1028

    Private Sidechain checkpoints

  14. ECIP-1035

    Ethereum Classic Privacy Enhanced Stealth Address Schema

  15. ECIP-1036

    Fallback Complete Difficulty Bomb Diffusion

  16. ECIP-1037

    Simple Interactive URI Scheme

  17. ECIP-1039

    Monetary policy rounding specification

  18. ECIP-1041

    Remove Difficulty Bomb

  19. ECIP-1042

    GASPAY opcode

  20. ECIP-1043

    Fixed DAG limit restriction

  21. ECIP-1044

    Formalize IPFS hash into ECNS (Ethereum Classic Name Service resolver)

  22. ECIP-1045

    Support for ETH Byzantium & Constantinople EVM and Protocol Upgrades

  23. ECIP-1046

    Precompiled contract for verification of Merkle Inclusion Proofs

  24. ECIP-1047

    Reduce Gas Limit to 1 Million

  25. ECIP-1048

    Clique proof-of-authority consensus protocol

  26. ECIP-1049

    Change the ETC Proof of Work Algorithm to Keccak256

  27. ECIP-1050

    Status Codes

  28. ECIP-1051

    Ethereum Classic Treasury system

  29. ECIP-1052

    Smart-contract Security Auditing core

  30. ECLIP#2

    Byzantium EVM upgrades (and Tx Receipt status)

  31. ECLIP#3

    OpenRPC