Internet Computer Improvement Proposal Process

The Internet Computer enables the development of smart contracts leveraging the blockchain at web-speed for the first time. Recent discussion in a variety of forms highlighted the need for standards to promote the uniform consumption of the certain types of smart contracts (e.g. the services they offer and the data they exchange).

Discussion around the representation of Non-fungible tokens (NFTs) and blog post/tweet content ownership were two areas of recent engagement. We have seen a few people draft initial proposals in the absence of a defined process.

Improvement proposals have successfully supported the maturation of various platforms. The Ethereum Improvement Proposals (EIPs) Github repository, the Bitcoin Improvement Proposals (BIPs), the Python Enhancement Proposals (PEPs) process, and the Internet Engineering Task Force (IETF) Request for Comment (RFCs) are examples where the community has benefitted from a defined process.

Some questions:

  • Would it be reasonable first step to define an ICIP process and template?
  • Would the establishment of a git repository be worthwhile to contain the template and proposals?
  • Would the voting on a proposal be something within the NNS (e.g. those whose have staked vote) or outside of the NNS? Where?
  • Who would “own” this process?

I am just kicking off a discussion today.


Here is update on recent discussion around Internet Computer Improvement Proposals during the weekly developers chat on Discord…

The NNS has a method to put forward “Motions” for ratification as part of the Internet Computer governance framework. A motion that is not accepted results in forfeiting the cost of putting the motion forward to the NNS. The fee is returned to the motion maker when a motion is accepted. Requiring a fee is the mechanism to thwart advancing spurious/bogus/weak proposals.

Advancing sound proposals having wide community support would be more efficient and effective. An approach suggested during the Discord DFINITY DEV School #stream would be use a community platform to build community consensus prior to submitting the motion to the NNS for approval. This would provide visibility to the entire improvement proposal life-cycle (e.g. initial draft proposal notification, review, comments, amendments, voting resulting in and final submission to the NNS as a motion).

OpenCan was put forward as a platform that could support community consensus building. It is an Open Zeppelin like environment and is live today here at

In addition, the repository for this active project can be found here GitHub - OpenCan-io/opencan



1 Like

I’d vote for the repo living outside of Dfinity for the reason that we want to decouple what happens with the IC from what Dfinity is doing.

In the case of OpenCan and as @northman summarize, we talked about how it could be its own neuron with a governance token owned by developers like us who work on such proposals and push them to the NNS as a “motion” from the OpenCan canister once a proposal is deemed “worthy” of the NNS vote.

My hope is that OpenCan would become a decentralized neuron with the third highest amount of voting power behind Dfinity & IC foundation neurons.

@Hazel has also today added a proposal as an open issue on the OpenCan repo and I plan to follow her lead with another today.


FYI – An article was published on the Internet Computer Association (ICA) site. It describes the details on how the community can submit two types of proposals to the NNS: “Authorize-to-subnet” and “Motion” proposals.

We also just launched the Governance forum on to enable community discussion on Motion proposals: About the Governance category.