Home

Awesome

What is a IIP?

IIP stands for IoTeX Improvement Proposal. An IIP is a design document providing information to the IoTeX community, or describing a new feature for IoTeX or its processes or environment. The IIP should provide a concise technical specification of the feature and a rationale for the feature.

We intend IIPs to be the primary mechanisms for proposing new features, for collecting community input on an issue, and for documenting the design decisions that have gone into IoTeX. The IIP author is responsible for building consensus within the community and documenting dissenting opinions.

Because the IIPs are maintained as text files in a versioned repository, their revision history is the historical record of the feature proposal.

IIP Types

There are three kinds of IIP:

IIP Status

There are four kinds of status:

IIP Formats and Templates

IIPs should be written in markdown format, and the file should be named iip-X.md, where X is IIP number. Image files should be included assets/iip-X folder. When linking to an image in the IIP, use relative links such as assets/iip-X/image.png.

Each IIP must begin with an RFC 822 style header preamble. The headers must appear in the following order. Headers marked with * are optional and are described below. All other headers are required.

  IIP: <IIP number>
  Title: <IIP title>
  Author: <list of authors' real names and optionally, email addrs>
* Discussions-To: <URL to the discussion thread>
  Status: <Draft | Accepted | Final | Deferred | Closed>
  Type: <Standards Track | Informational | Process>
  Created: <date created on, in ISO 8601 (yyyy-mm-dd) format>
* Replaces: <IIP number>
* Superseded-By: <IIP number>
* Resolution: <url>

Refer to the example for details.

Process of creating a new IIP

  1. Review the IIPs public repo This will help you ensure that your idea is unique and has not already been proposed or discussed. It will also give you an idea of the standard of other successful proposals.

  2. Determine the next IIP number: To avoid conflicts, find the current latest IIP and use the next number for your proposal (don't forget to check any PRs with pending proposals).

  3. Draft your proposal: Try using the same format as the existing IIP documents you find the repository to draft yours. When in doubt, feel free to reach out to any IoTeX team member on Discord, on X, Telegram, or on the community forum. Not sure where to look? Start here: https://iotex.io

  4. Submit for discussion: Once your proposal is ready, post it to the IoTeX Community Forum for discussion under the Governance Proposals category: https://community.iotex.io/c/governance-proposals

  5. Voting and implementation: Based on the feedback received, you may need to make revisions to your proposal. Once the IIP is finalized, it will go through community voting on the IoTeX snapshot: https://snapshot.org/#/iotex.eth

  6. Implementation: Once the voting is passed, it will be implemented into the relevant IoTeX ecosystem protocol.

Acknowledgement

Thanks for those who contribute to BIPs, EIPs and EEPs, where we have learned and borrowed clauses heavily.

Changelog

2019-05-20: Drafted the initial version of IIP guideline.

2019-06-11: Added the IIP sample file.