Core Improvement Proposals
Core Improvement Proposal (CIP) describes standards for the Core platform, including core protocol specifications, client APIs, and contract standards.
First you can open your proposal under issues of this repository.
How to start
- Fork this repository.
- Change the template cip-0 and move it to
- Submit a Pull Request to Core's CIP repository.
Put any graphical content into CIP image directory
/cip/images/cip-x under your cip-x (x is the cip number). You can link images with path
Drafta CIP that is open for consideration.
Accepteda CIP that is planned for immediate adoption, i.e. expected to be included in the next hard fork (for Core/Consensus layer CIPs).
Finala CIP that has been adopted in a previous hard fork (for Core/Consensus layer CIPs).
Deferreda CIP that is not being considered for immediate adoption. May be reconsidered in the future for a subsequent hard fork.
CIPs are separated into a number of types, and each has its own list of CIPs.
- Improvements requiring a consensus fork, as well as changes that are not necessarily consensus critical but may be relevant to “core dev” discussions.
- Includes improvements around devp2p, network protocol specifications of whisper and swarm.
- Includes improvements around client API/RPC specifications and standards, and also certain language-level standards like method names and contract ABIs. The label “interface” aligns with the interfaces repo. Discussion should primarily occur in that repository before a CIP is submitted to the CIPs repository.
- Application-level standards and conventions, including contract standards such as token standards, name registries, URI schemes, library/package formats and wallet formats.
- Describes a Core design issue, or provides general guidelines or information to the Core community, but does not propose a new feature. Informational CIPs do not necessarily represent Core community consensus or a recommendation, so users and implementers are free to ignore Informational CIPs or follow their advice.
- Describes a process surrounding Core or proposes a change to (or an event in) a process. Process CIPs are like Standards Track CIPs but apply to areas other than the Core protocol itself. They may propose an implementation, but not to Core's codebase; they often require community consensus. Unlike Informational CIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Core development. Any meta-CIP is also considered a Process CIP.