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
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
- 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 <email@example.com>.
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.
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.
Methods to Merge Ethereum Blockchains Together
This EIP defines methods that can be adopted to merge two Ethereum-like blockchains together.
EVM Feature Probe
Feature probe opcode on Ethereum Virtual Machine.
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.
Disallow Deployment of Unused Opcodes
Add an extra validation step on contract deployment to disallow deployment of unused opcodes.
Redesign the Immutability Boundary for Ethereum Virtual Machine
Define a clear and hard-to-misuse EVM boundary for better support of future upgrades.
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.
Generalized Account Versioning Scheme
Introduce account versioning for smart contracts so upgrading the VM or introducing new VMs can be easier.
Account Versioning Extension for Contract Creation Transaction
Specification for an extension of 43-VER to allow contract creation transaction to create multiple versions.
Account Versioning Extension for CREATE and CREATE2
Specification for an extension of 43-VER to allow an EVM contract to create multiple versions.
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.
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.
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.
Mnemonic code for public address
This extends BIP-39 for public addresses on the Ethereum Classic network.
Ethereum Virtual Machine JSON-RPC
This specification describes the JSON-RPC API that should be provided by an EVM implementation.
Filesystem Library on Ethereum Virtual Machine
This RFC provides a filesystem specification that can be built on top of the Ethereum Virtual Machine.
Low-level Ethereum Virtual Machine Assembly
This RFC aims to provide an assembly language that closely assembles EVM opcodes.
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.