For AI agents: Documentation index at /llms.txt

Skip to content

NNS proposal types

Network Nervous System (NNS) proposals are grouped into topics that determine their reward weight, voting period, and how neurons can delegate their votes. Each proposal type specifies which canister method is called on adoption. For background on how proposals work, see Governance.

Manages canisters essential to the Internet Computer Protocol, including the NNS governance canister (rrkah-fqaaa-aaaaa-aaaaq-cai), NNS root (r7inp-6aaaa-aaaaa-aaabq-cai), the registry canister (rwlgt-iiaaa-aaaaa-aaaaa-cai), and the ICP ledger (ryjl3-tyaaa-aaaaa-aaaba-cai).

Proposal typeDescription
InstallCodeInstall, reinstall, or upgrade the code of an NNS-controlled canister.
UpdateCanisterSettingsUpdate the settings of an NNS-controlled canister.
StopOrStartCanisterStop or start an NNS-controlled canister.
HardResetNnsRootToVersionEmergency reset of the root canister to a specified Wasm. Intended as a break-glass mechanism when an open call context prevents normal upgrades.

Manages SNS canister code and the SNS Wasm modules canister (SNS-W, qaa6y-5yaaa-aaaaa-aaafa-cai).

Proposal typeDescription
InstallCodeSame as in ProtocolCanisterManagement, targeting SNS canisters.
UpdateCanisterSettingsSame as in ProtocolCanisterManagement, targeting SNS canisters.
StopOrStartCanisterSame as in ProtocolCanisterManagement, targeting SNS canisters.
AddSnsWasmAdd a new SNS canister Wasm to SNS-W, making it available for SNS instances to upgrade to.
InsertSnsWasmUpgradePathEntriesInsert custom upgrade path entries into SNS-W for all SNSes or for a specific SNS.

Manages NNS-controlled canisters not covered by the above topics.

Proposal typeDescription
InstallCodeSame as ProtocolCanisterManagement, targeting application canisters.
UpdateCanisterSettingsSame as ProtocolCanisterManagement, targeting application canisters.
StopOrStartCanisterSame as ProtocolCanisterManagement, targeting application canisters.
BitcoinSetConfigSet the configuration of the Bitcoin integration canister: fees, block syncing, API enablement.

Elects new IC OS versions before deployment. The IC OS has two layers: HostOS (the hypervisor running on physical hardware) and GuestOS (the VM containing the replica).

Proposal typeDescription
ReviseElectedGuestosVersionsAdd or remove GuestOS versions from the elected set. Identified by Git revision and installation image SHA-256. Only elected versions can be deployed to subnets.
ReviseElectedHostosVersionsAdd or remove HostOS versions from the elected set.

Deploys previously elected IC OS versions to specific nodes or subnets.

Proposal typeDescription
DeployHostosToSomeNodesDeploy a HostOS version to a specified set of nodes.
DeployGuestosToAllSubnetNodesDeploy a GuestOS version to all nodes in a subnet.
DeployGuestosToSomeApiBoundaryNodesUpdate the GuestOS version on a set of API Boundary Nodes.
DeployGuestosToAllUnassignedNodesUpdate the GuestOS version on all unassigned nodes.

Reward weight: 20 (higher than most topics, incentivizing participation). Covers governance of the Internet Computer itself.

Proposal typeDescription
MotionOpinion poll with no direct onchain effect. Used to signal community consensus on strategy.
UninstallCodeUninstall code from a canister.
SetDefaultFolloweesSet the default following for newly created neurons.
KnownNeuronRegister or update a known neuron with a name, optional description, links, and committed proposal topics.
DeregisterKnownNeuronRemove a neuron from the known neurons list.

Reward weight: 20. Covers SNS decentralization swaps and the Neurons’ Fund.

Proposal typeDescription
CreateServiceNervousSystemInstall a new SNS and specify all settings: initial digital asset distribution, decentralization swap conditions, initial governance parameters, and Neurons’ Fund contribution.

Economic parameters for the network and NNS governance settings.

Proposal typeDescription
UpdateNodeRewardsTableUpdate the table used to calculate node provider rewards by region.
NetworkEconomicsUpdate one or more economic parameters: reject cost, minimum neuron stake, neuron management fee, minimum ICP/XDR rate, spawned neuron dissolve delay, maximum node provider rewards, transaction fee, maximum proposals per topic, Neurons’ Fund economics, and voting power parameters.
ClearProvisionalWhitelistRemove principals from the bootstrapping whitelist that allows canister creation without cycles. Intended for use after mainnet initialization only.

Subnet topology, configuration, and canister routing.

Subnet creation and composition:

Proposal typeDescription
CreateSubnetCreate a new subnet from a set of nodes, triggering distributed key generation.
UpdateConfigOfSubnetUpdate a subnet’s protocol configuration (message sizes and similar consensus-level parameters).
AddNodeToSubnetAdd an unassigned node to a subnet.
RemoveNodesFromSubnetRemove nodes from a subnet, making them available for reassignment.
ChangeSubnetMembershipAtomically add and remove nodes (node swap) in a single operation.
RecoverSubnetUpdate a subnet’s recovery catch-up package to recover a stalled subnet.

Firewall rules:

Proposal typeDescription
SetFirewallConfigSet firewall configuration in the registry.
AddFirewallRulesAdd firewall rules.
RemoveFirewallRulesRemove firewall rules.
UpdateFirewallRulesUpdate firewall rules.

Subnet type and canister routing:

Proposal typeDescription
SetAuthorizedSubnetworksAuthorize a principal to use specific subnets for canister creation via the Cycles Minting Canister.
UpdateSubnetTypeUpdate the available subnet types in the Cycles Minting Canister.
ChangeSubnetTypeAssignmentChange which subnets are assigned to which subnet type.
UpdateSnsWasmSnsSubnetIdsUpdate the list of subnet IDs where SNS-W deploys new SNS instances.
RerouteCanisterRangesUpdate the registry routing table (which canister ID ranges are on which subnet).
PrepareCanisterMigrationInsert canister migration entries for a subnet split.
CompleteCanisterMigrationRemove canister migration entries after a split completes.

Node provider and data center identities.

Proposal typeDescription
AddOrRemoveDataCentersAdd or remove data center records in the registry.
AddOrRemoveNodeProviderAssign or revoke an identity to a node provider, including legal entity information and jurisdiction.

Node machine administration.

Proposal typeDescription
AssignNoidAssign an identity to a node operator and set their remaining node allowance.
UpdateNodeOperatorConfigUpdate a node operator’s allowance or configuration in the registry.
RemoveNodeOperatorsRemove a node operator from the registry.
RemoveNodesRemove unassigned nodes from the registry.
UpdateSshReadonlyAccessForAllUnassignedNodesUpdate SSH read-only access for all unassigned nodes.

Genesis neuron KYC verification. All neurons created after genesis have kyc_verified = true automatically, since they derive from already-KYC-verified balances.

Proposal typeDescription
ApproveGenesisKYCSet kyc_verified = true for a batch of genesis principals, enabling them to spawn neurons and disburse stakes.

Topic: NeuronManagement (restricted voting)

Section titled “Topic: NeuronManagement (restricted voting)”

A special topic for collective management of a specific neuron. Only the target neuron’s followers on this topic can vote, so proposals have a shorter-than-normal voting period. The standard restriction on following private neurons does not apply to this topic.

Proposal typeDescription
ManageNeuronCall a command on a specified target neuron. Only the target neuron’s followers may vote.