Canisters are just Smart Contracts. Canisters can be a website, a webapp, or any web service.

Upgrading the stack, modifying the stack and anything on the ICP requires Network Nervous System or NNS.

The NNS is a stack based open governance system, basically a Decentralised Autonomous Organisation or DAO. Therefore, it governs ICP.

How it works


Anyone that can stake or lock ICP tokens and participate


Suggestions on how to update and evolve Internet Computer Protocol.

Proposal Lifecycle

flowchart LR
  A[Proposal] --stake and lock--> B[Voting] --> C
  A --> C[Voting Power] --more number of stakes--> D[Proposal accepted]

How it is adopted are based on the following conditions

  • Standard majority
    • Requires participation
    • Requires that the voting period is over
    • Requires 50% of voted YES
    • Plus 3% of total voting power YES
  • Immediate majority
    • Requires just 50% voting power YES
    • As long as voting period is not yet over

This decision is automatically accepted and there is no need for human intervention.

Frontend Interaction

Anyone can create and build a frontend to interact with the NNS even command line tools.

An example would be a dapp like This is fully on-chain.

Another is the ICP dashboard — This is off-chain.