This repository contains specifications maintained by Wei Tang, designed for various projects such as Ethereum, Ethereum Classic, Solri, Kulupu and Sedbin,
Goals
- Shared innovation
- Focus on standardization
Process
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 <hi@that.world>
.
Core
-
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.
-
26-VER
Use Version Byte Prefix for Contract Account Versioning
Provide an alternative scheme for account versioning with the least amount of changes required.
-
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.
-
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.
-
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.
-
30-UNCLEGHOST
Include Uncles in Total Difficulty Calculation
This proposes to include uncle difficulty in total difficulty calcuation.
-
36-STATEVOTE
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.
-
37-MERGE
Methods to Merge Ethereum Blockchains Together
This EIP defines methods that can be adopted to merge two Ethereum-like blockchains together.
-
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.
-
40-UNUSED
Disallow Deployment of Unused Opcodes
Add an extra validation step on contract deployment to disallow deployment of unused opcodes.
-
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.
-
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.
-
43-VER
Generalized Account Versioning Scheme
Introduce account versioning for smart contracts so upgrading the VM or introducing new VMs can be easier.
-
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.
-
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.
Informational
-
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.
-
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.
-
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.
-
33-MNEMONIC
Mnemonic code for public address
This extends BIP-39 for public addresses on the Ethereum Classic network.
Interface
-
16-EVMJSON
Ethereum Virtual Machine JSON-RPC
This specification describes the JSON-RPC API that should be provided by an EVM implementation.
-
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.
-
21-LEASM
Low-level Ethereum Virtual Machine Assembly
This RFC aims to provide an assembly language that closely assembles EVM opcodes.
-
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.