The NNS front-end Dapp is a dapp that provides a user friendly way to interact with the NNS of the Internet Computer. With it, you can:
- Send/receive ICP
- Stake neurons
- Create canisters
- Top up canisters with cycles
- View and vote on NNS proposals
- The Network Nervous System: Governing the Internet Computer
- The Internet Computer’s NNS Front-End Dapp Is Now Open Source
- How to Deploy Your First Canister Smart Contract Using the NNS Dapp
- The Community-Led Governance of the Internet Computer
- Earn Substantial Voting Rewards by Staking in the Network Nervous System
- Get Started Using the NNS Front-End Dapp and ICP Wallet on the Internet Computer
The official build should ideally be reproducible, so that independent parties can validate that we really deploy what we claim to deploy.
We try to achieve some level of reproducibility using a Dockerized build environment. The following steps should build the official Wasm image
./scripts/docker-build
sha256sum nns-dapp.wasm
The resulting nns-dapp.wasm
is ready for deployment as
qoctq-giaaa-aaaaa-aaaea-cai
, which is the reserved principal for this service.
Our CI also performs these steps; you can compare the SHA256 with the output there, or download the artifact there.
Development relies on the presence of a testnet that is setup with the II, governance, ledger, and cycle minting canisters. Fully local development is unfortunately not yet supported and the tools for setting up a testnet are not yet available publicly. It is on the roadmap to make these tools available publicly for developers.
When deploying the governance, ledger, and cycle minting canisters to the testnet you must first create a file called test-accounts.json
in the root of the IC repo whose contents is:
{
"init_ledger_accounts": [
"5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087"
]
}
Then run the following from the root directory of the IC repo:
./testnet/tools/icos_deploy.sh --git-revision <commit_id> nnsdapp --ansible-args "-e @$PWD/test-accounts.json"
To deploy the NNS Dapp canister to the testnet, run the following:
./deploy.sh testnet
You can now access the frontend using:
open "https://$(dfx canister --network testnet id nns-dapp).nnsdapp.dfinity.network"
To work on the UI locally, either use your IDE, or run the following:
cd frontend
npm ci
npm run dev
This environment varibale is deprecated and is due for removal.