This repository contains specifications maintained by Wei Tang, designed for various projects such as Ethereum, Ethereum Classic, Solri, Kulupu and Sedbin,


  • Shared innovation
  • Focus on standardization


We don’t accept specifications from external contributors. For various projects, you may want to look into EIP Process, ECIP Process, Solri specifications and Sedbin specifications.

The status of specifications listed in this repository follows an informal IETF-like process RFC 2026. Every specification has its maturity level:

  • Specifications starts with 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 <>.


  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. 26-VER

    Use Version Byte Prefix for Contract Account Versioning

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


    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.


    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.


    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.


    Include Uncles in Total Difficulty Calculation

    This proposes to include uncle difficulty in total difficulty calcuation.


    State-based Hard Fork Signaling

    This ECIP defines a hard fork procedure where rather than hard coding a block number, we fetch the hard fork status from a particular on-chain contract.

  8. 37-MERGE

    Methods to Merge Ethereum Blockchains Together

    This EIP defines methods that can be adopted to merge two Ethereum-like blockchains together.

  9. 38-PROBE

    EVM Feature Probe

    Feature probe opcode on Ethereum Virtual Machine.

  10. 39-UNGAS

    Unobservable Gas Cost and Trap Behaviour

    This hard fork change modifies the EVM design so that gas cost becomes unobservable in the whole VM execution lifecycle.

  11. 40-UNUSED

    Disallow Deployment of Unused Opcodes

    Add an extra validation step on contract deployment to disallow deployment of unused opcodes.

  12. 41-BOUNDARY

    Redesign the Immutability Boundary for Ethereum Virtual Machine

    Define a clear and hard-to-misuse EVM boundary for better support of future upgrades.

  13. 42-ENFORCE

    Enforce the Backward Compatibility Rule on Ethereum Classic

    This defines a way to enforce backward compatibility rule on on Ethereum Classic blockchain in protocol level.

  14. 43-VER

    Generalized Account Versioning Scheme

    Introduce account versioning for smart contracts so upgrading the VM or introducing new VMs can be easier.

  15. 44-VERTXN

    Account Versioning Extension for Contract Creation Transaction

    Specification for an extension of 43-VER to allow contract creation transaction to create multiple versions.

  16. 45-VEROP

    Account Versioning Extension for CREATE and CREATE2

    Specification for an extension of 43-VER to allow an EVM contract to create multiple versions.


  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.


  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.