<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LaraAS</id>
	<title>Internet Computer Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.internetcomputer.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LaraAS"/>
	<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/wiki/Special:Contributions/LaraAS"/>
	<updated>2026-04-11T09:40:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Governance_of_the_Internet_Computer&amp;diff=1157</id>
		<title>Governance of the Internet Computer</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Governance_of_the_Internet_Computer&amp;diff=1157"/>
		<updated>2022-01-03T19:03:14Z</updated>

		<summary type="html">&lt;p&gt;LaraAS: /* Submitting a proposal */ update link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Internet Computer blockchain is governed by the Network Nervous System&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;. The NNS is an algorithmic governance system that oversees the network and the token economics that make it possible to build DeFi dapps, open internet services and enterprise systems.&lt;br /&gt;
&lt;br /&gt;
Holders of the Internet Computer’s ICP utility tokens can lock their tokens in &#039;&#039;neurons&#039;&#039; to participate in governance and contribute to decision-making, such as voting to determine whether or not a new collection of nodes (also called a subnet) should be added to the network. &lt;br /&gt;
&lt;br /&gt;
=== Why the Internet Computer needs a Network Nervous System&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt; ===&lt;br /&gt;
The Internet Computer is a distributed protocol run by a network of node machines, which are hosted in different data centers. The nodes communicate with one another over the internet to achieve a consensus on what the Internet Computer’s state should be. A collection of nodes engaging in consensus is called a subnet. On top of this underlying communication and consensus protocol, the Internet Computer hosts &#039;&#039;canisters&#039;&#039;, which are stateful programs that can also communicate with each other. The state of all of the canisters has to be replicated across all of the nodes. Therefore, to allow the Internet Computer to scale indefinitely, the network is made up of not just one subnet, but multiple subnets.&lt;br /&gt;
&lt;br /&gt;
Different subnets can communicate with one another, enabling canisters that are hosted on different subnets to also communicate with each other. For the Internet Computer to scale on-demand, the network must be able to add new subnets over time to increase compute capacity. Moreover, the robustness of the subnets can be improved by adding new nodes to them over time. Eventually, the Internet Computer will run millions of nodes at scale. This means that there needs to be a mechanism by which the nodes and subnets are organized, tracked, and managed. For example, decisions must be made about when subnets and nodes should be added or removed. In addition, the Internet Computer was launched with an initial feature set, which evolves over time. Therefore, the Internet Computer needs to be able to make decisions on how to evolve the protocol in a distributed manner.&lt;br /&gt;
&lt;br /&gt;
=Network Nervous System overview=&lt;br /&gt;
&lt;br /&gt;
The NNS is a tokenized open governance system that is responsible for managing the Internet Computer. For example, the NNS stores information about what nodes belong to which subnet and the code each replica runs. The NNS also makes decisions about how to update this information and evolve the IC.&lt;br /&gt;
&lt;br /&gt;
The NNS is realized by a set of &#039;&#039;[[canisters|canister smart contracts]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;NNS canister smart contracts&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ledger canister:&#039;&#039;&#039; The ledger canister stores the ICP utility &#039;&#039;token balance&#039;&#039; of each principal and the history of ICP &#039;&#039;transactions&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Governance canister:&#039;&#039;&#039; The governance canister receives and stores &#039;&#039;Proposals&#039;&#039;, which are suggestions for how the Internet Computer should be changed. These proposals can then be voted on. The governance canister also tracks &#039;&#039;Neurons&#039;&#039;, which determine who is allowed to participate in governance.&lt;br /&gt;
# &#039;&#039;&#039;Registry canister:&#039;&#039;&#039; The registry canister stores the configuration of the whole Internet Computer, e.g., which nodes belong to a certain subnet and the software each node should run.&lt;br /&gt;
# &#039;&#039;&#039;Cycles minting canister&#039;&#039;&#039;: This canister is responsible for minting &#039;&#039;cycles&#039;&#039;, the fuel for canisters for computation, communication and storage. New cycles can be minted when a new canister is newly created or when an existing canister is topped up with additional cycles.&lt;br /&gt;
# &#039;&#039;&#039;Root canister&#039;&#039;&#039;: The root canister is the controller of all other NNS canisters and responsible for upgrading them.&lt;br /&gt;
# &#039;&#039;&#039;Lifeline canister&#039;&#039;&#039;: The lifeline canister is the controller of the root canister and responsible for upgrading it. &lt;br /&gt;
# &#039;&#039;&#039;Archive canisters&#039;&#039;&#039;: The canisters that store the history of the ledger transactions once there are too many transactions to keep in a single canister.&lt;br /&gt;
#&#039;&#039;&#039;Genesis token canister:&#039;&#039;&#039; This is the canister that was used to initialize the neurons that already existed during genesis.&lt;br /&gt;
&lt;br /&gt;
The canisters that users of the Internet Computer are interacting with the most are the first two: the ledger canister for making transactions, and the governance canister for staking tokens and submitting and voting on proposals.&lt;br /&gt;
&lt;br /&gt;
= Ledger canister &amp;amp; ICP utility tokens in the NNS =&lt;br /&gt;
[[ICP token|ICP utility tokens]] are managed by the ledger canister, which stores two things: accounts and transactions. An account record keeps track of how many tokens are in the possession of a given [[principal]] (i.e., an identity by which a user is authenticated on the Internet Computer). Tokens can then be sent from one account to another, and this is recorded in the transactions of the ledger canister.&lt;br /&gt;
&lt;br /&gt;
In the NNS, ICP utility tokens are used for three different things:&lt;br /&gt;
&lt;br /&gt;
# ICP tokens facilitate &#039;&#039;&#039;participation in governance&#039;&#039;&#039; (more below on how the neurons are connected with the tokens).&lt;br /&gt;
# Those who participate in governance and those who provide compute capacity by operating note machines are &#039;&#039;&#039;rewarded&#039;&#039;&#039; in ICP tokens.&lt;br /&gt;
# ICP tokens are used for &#039;&#039;&#039;conversion into cycles&#039;&#039;&#039;, which are fuel for canisters for computation, communication and storage.&lt;br /&gt;
&lt;br /&gt;
=Governance Canister=&lt;br /&gt;
&lt;br /&gt;
The governance canister is responsible for holding &#039;&#039;neurons&#039;&#039;, determining who is allowed to participate in governance. Moreover, it stores proposals, which are suggestions for changes to the Internet Computer, and the information associated with proposals that decides if these suggestions should be implemented. If a proposal is adopted, the governance canister automatically executes the decision. Finally, the governance canister distributes rewards to those neurons who participated in voting and contributed to the decision making.&lt;br /&gt;
&lt;br /&gt;
== Neurons ==&lt;br /&gt;
Neurons contain &#039;&#039;locked&#039;&#039; ICP utility tokens. These staked tokens are not liquid and cannot be transferred freely to others.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Neuron Attributes&#039;&#039;&#039; ===&lt;br /&gt;
Each neuron stores a number of neuron attributes. Some of the most important ones are the following:&lt;br /&gt;
&lt;br /&gt;
* How many ICP tokens are &#039;&#039;locked&#039;&#039; in the neuron. This information is accessible both by a neuron referencing an account on the ledger canister that stores the neuron&#039;s balance and by a cached stake on the governance canister.&lt;br /&gt;
* A &#039;&#039;controller&#039;&#039; principal, which identifies who manages the neuron&#039;s actions.&lt;br /&gt;
* A unique &#039;&#039;neuron ID&#039;&#039;&lt;br /&gt;
*The neuron&#039;s &#039;&#039;dissolve delay.&#039;&#039; Intuitively, the dissolve delay defines the earliest time when the locked ICP tokens can be unlocked. This time can be increased to up to 8 years but it can only be decreased by waiting for time to pass. A neuron can either be &#039;&#039;non-dissolving&#039;&#039;, &#039;&#039;dissolving&#039;&#039;, or &#039;&#039;dissolved.&#039;&#039; If a neuron is non-dissolving, its set dissolve delay is kept stable and the timer is not running down. The neuron can then be set to dissolving, which means that the dissolve delay is decreasing with the time. Finally, if a the dissolve delay reaches 0, the neuron is dissolved and the locked tokens can be transferred out of the neuron. &lt;br /&gt;
*The &#039;&#039;age&#039;&#039;, which is between 0 and 4 years. A neuron&#039;s age determines the time since when then neuron has last entered the non-dissolving state.&lt;br /&gt;
A neuron&#039;s dissolve delay determines a neuron&#039;s &#039;&#039;eligibility&#039;&#039; to participate in voting. Namely, only those neurons with tokens locked for at least six months are eligible to participate in governance. This incentivizes neuron holders to vote such that the value of their tokens is maximized for a future date. Assuming the value of the tokens is a rough proxy for the network’s success, this incentivizes neuron holders to vote in the long-term interest of the Internet Computer.&lt;br /&gt;
&lt;br /&gt;
A neuron&#039;s &#039;&#039;voting power&#039;&#039; depends on how many tokens a neuron has locked, as well as the neuron&#039;s dissolve delay and age. Intuitively, those who are more committed to the Internet Computer, as they have locked their tokens for longer or have already staked them for a long time, have more voting power. The voting power increases with the dissolve delay and the age.&lt;br /&gt;
&lt;br /&gt;
Finally, the number of rewards that each neuron receives depends on the number of votes that the neuron participated in as well as the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
===How to lock tokens in a neuron&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
As a user, there are different [[ICP staking options]] to stake ICP utility tokens in a neuron. The effect of such an operation is that these ICP tokens are transferred to a ledger account that is associated with a newly created neuron. The tokens are thus locked and cannot be used freely by the neuron holder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s assume that User B, who has an account (A1) on the ledger canister, would like to lock a hundred tokens in a neuron. To do so, User B sends a command to the NNS specifying the number of tokens and User B’s corresponding principal ID.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A transaction is then recorded on the ledger, which specifies that some tokens are sent from the original account (A1) of the user to a new account (A2), which also creates the new account (A2) that holds the locked tokens. A new neuron is created in the governance canister that specifies that User B is the one controlling this neuron and that specifies that the amount of locked tokens is defined by the new ledger account A2.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Externally, it’s not visible that the new account (A2) holds locked tokens or is in any way related to the original account (A1). Nevertheless, this account is in fact controlled by the neuron, which means that the tokens are not liquid and that User B cannot transfer the tokens or convert the tokens into cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The main reason for a user to lock tokens in a neuron is to be able to participate in voting and get voting rewards. Both are described in more detail below.&lt;br /&gt;
== Proposals ==&lt;br /&gt;
A proposal is a suggestion for a change to the Internet Computer. More technically, a proposal describes a &#039;&#039;method&#039;&#039; in a canister that is called if the proposal is accepted. Moreover, it describes the &#039;&#039;parameters&#039;&#039; with which the method will be called.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer supports a variety of different proposal &#039;&#039;topics&#039;&#039;. Here are some examples of topics that are supported in the NNS governance canister:&lt;br /&gt;
* #SubnetManagement Proposals: This considers topology changes. The example proposal above about whether a node should be added to a subnet falls into this category.&lt;br /&gt;
* #NodeAdmin Proposals: This concerns the administration of node machines. An example of a proposal could specify that all of the nodes in a subnet should be updated.&lt;br /&gt;
* #NetworkEconomics Proposals: This concerns the administration of network economics. For example: what rewards should be paid to the node machine providers?&lt;br /&gt;
*#Motion Proposals: These proposals do not have a direct execution of a method as a consequence but are merely there to record the opinion of the community on a specified matter.&lt;br /&gt;
&lt;br /&gt;
== Voting and proposal lifecycle ==&lt;br /&gt;
&lt;br /&gt;
=== Submitting a proposal ===&lt;br /&gt;
Any eligible neuron can make and [https://wiki.internetcomputer.org/index.php?title=Neuron_Attributes_and_Commands#Make_Proposal submit a proposal]. To avoid being inundated by useless proposals, a user submitting a proposal has to pay a fee of 1 ICP when submitting a proposal, that they will receive back if the proposal is adopted (but that they will not receive back if the proposal is rejected).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s consider a User C who would like to suggest that a new subnet is created that initially consists of two nodes: Node 1 and Node 2. Once User C controls a neuron, they can submit a proposal by specifying their neuron ID, the type of proposal that they would like to submit, and the proposal’s parameters. In our example, the proposal specifies that a new subnet should be created and the proposal&#039;s parameters consist of the initial nodes Node 1 and Node 2. Upon the receipt of this proposal, the governance canister first checks that this user is indeed the one controlling the neuron with the given ID and that this neuron is eligible to vote. If the requirements are met, the proposal is added to the governance canister.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
After a proposal is submitted by an eligible neuron, the proposal is created and stored in the governance canister. Moreover, the governance canister computes and stores additional information with each proposal. First, the [[voting power]] of each neuron is computed and stored together with the proposal. The sum of all of these voting powers also determines the &#039;&#039;total voting power&#039;&#039; associated with a given proposal.&lt;br /&gt;
&lt;br /&gt;
When a new proposal is created, the number of “yes” votes associated with the proposal is already increased by the proposer’s voting power. This reflects that the proposal already has the support of the user submitting it.&lt;br /&gt;
&lt;br /&gt;
Moreover, each proposal has an associated &#039;&#039;voting period,&#039;&#039; which determines the period of time over which votes for this proposal are accepted.&lt;br /&gt;
&lt;br /&gt;
=== Viewing NNS Proposals ===&lt;br /&gt;
You can see all the NNS proposals on the Internet Computer dashboard: https://dashboard.internetcomputer.org/governance&lt;br /&gt;
&lt;br /&gt;
===Discussing NNS Proposals===&lt;br /&gt;
&lt;br /&gt;
Voters can freely discuss proposal anywhere they like. A lot of NNS proposals are discussed on the developer forum: https://forum.dfinity.org/c/roadmap/29.&lt;br /&gt;
&lt;br /&gt;
===Voting on a proposal===&lt;br /&gt;
After a proposal is submitted and added to the governance canister, other users who control neurons can [[ICP voting options|vote on the proposal]]. Currently, the most user-friendly way to vote on NNS proposals is via the NNS Frontend dapp: https://nns.ic0.app/. For voting, users would first learn which are the open proposals on the governance canister that they can actually vote on. This information is available, for example on Internet Computer dashboard: https://dashboard.internetcomputer.org/governance or in the [[NNS frontend dapp]]. &lt;br /&gt;
&lt;br /&gt;
If a neuron votes in favor of a proposal, the governance canister adds this neuron’s voting power, as stored with the proposal, to the “Yes”-votes associated with the proposal. Likewise, if a neuron votes against a proposal, the governance canister adds the neuron’s voting power to the “No”-votes of the proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Assume that a given User D would like to reject the proposal that was just added by User C. To do so, User D would send their neuron ID and a “no” vote to the governance canister. The governance canister would check that the vote is coming from the correct user who controls the neuron and confirm that the neuron is eligible to vote. If the conditions are met, the governance canister would then add the voting power of User D to the “no” votes.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Neuron following and liquid democracy====&lt;br /&gt;
&lt;br /&gt;
Users may not have the time or knowledge to participate in all voting decisions. Therefore, instead of directly voting on proposals, neuron holders may choose to delegate their vote to other neurons that they trust with certain decisions. This concept of delegating the right to vote to other voters who then effectively vote with more voting power is called &#039;&#039;liquid democracy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Concretely, for each proposal topic a neuron can [[How to follow neurons|specify a set of other neurons that it would like to &#039;&#039;follow&#039;&#039;]] &#039;&#039;(so-called followees)&#039;&#039;. In addition, a neuron can specify a set of followees for &amp;quot;all other topics&amp;quot; that are not covered by specific rules. The governance canister keeps track of this relation of follower and followee neurons. It then automatically casts a vote for a follower neuron based on the decision of the followees. In particular, if more than 50% of the followees vote &amp;quot;yes&amp;quot;, then a &amp;quot;yes&amp;quot; vote is cast for the follower and if at least 50% of the followees vote &amp;quot;no&amp;quot;, then a &amp;quot;no&amp;quot; vote is cast for the follower. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;. &#039;&#039;Consider neuron N1 that follows the set of neurons {N2, N3, N4, N5} on all proposal topics. Consider now that a proposal is submitted by another neuron N6. Assume in a first scenario that first N2 votes &amp;quot;No&amp;quot; and then N3 votes &amp;quot;No&amp;quot; on the proposal. In that case, the governance canister will also send a &amp;quot;No&amp;quot; vote for N1 two out of four followees voted &amp;quot;No&amp;quot; (which also means that it is not possible anymore to get more than 50% &amp;quot;Yes&amp;quot; votes). Assume a second scenario where N2 votes &amp;quot;Yes&amp;quot; and then N3 votes &amp;quot;Yes&amp;quot; on the proposal. In that case, no vote is sent yet for N1. However, if either N4 and N5 also send a &amp;quot;Yes&amp;quot; vote, a &amp;quot;Yes&amp;quot; vote is also cast for N1.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This liquid democracy has great advantages. First, it allows even neurons that do not have enough knowledge of a certain topic to nevertheless participate in governance by choosing the neurons that they trust with certain decisions and by delegating their vote to them. In particular, a neuron can choose a different set of followees for different topics. Moreover, this mechanism allows neuron holders to get voting rewards from voting participation even if they do not have time to actively participate in all voting decision.&lt;br /&gt;
&lt;br /&gt;
=== Proposal decision and wait-for-quiet ===&lt;br /&gt;
A proposal can be &#039;&#039;decided&#039;&#039; in two ways:&lt;br /&gt;
# &#039;&#039;&#039;Absolute Majority before the voting period ends&#039;&#039;&#039;: At any point, even before the voting period ends, if an absolute majority (more than half of the total voting power stored in the proposal) has voted Yes, then the proposal is adopted and if an absolute majority has voted No, then the proposal is rejected.&lt;br /&gt;
# &#039;&#039;&#039;Simple Majority at the voting period’s end&#039;&#039;&#039;: When the voting period ends, if a simple majority (more than half of the cast votes) has voted Yes and the number of these Yes-votes constitute at least 3% of the total voting power, then the proposal is adopted. Otherwise, the proposal is rejected.&lt;br /&gt;
&lt;br /&gt;
What also plays into this is the fact that the governance voting algorithm also applies &#039;&#039;wait-for-quiet&#039;&#039;. The idea of wait-for-quiet is to decide proposals quickly when all voters agree, but increase the time that neurons can vote for proposals that are controversial. That means that the voting period can be dynamically increased, depending on the neurons’ votes. In particular, each time a proposal’s outcome is turned (either a Yes-majority is turned to a No-majority or vice versa), the proposal’s deadline is increased. Currently, a proposal&#039;s initial voting period is 4 days and can be increased by at most another 4 days. That is, the voting period that is taken into account for the above rules can be between 4 and 8 days, depending on the voting activity.&lt;br /&gt;
&lt;br /&gt;
=== Proposal execution ===&lt;br /&gt;
Recall that a proposal defines a method, a canister, and some parameters. As soon as a proposal is adopted, the defined method on the specified canister is called with the given parameters. This is done fully automatically by the governance canister. &lt;br /&gt;
&lt;br /&gt;
== Voting Rewards ==&lt;br /&gt;
Contributing to decision-making is one incentive for voters to lock their neurons, but they are also &#039;&#039;rewarded&#039;&#039; for participating in network governance.&lt;br /&gt;
&lt;br /&gt;
Specifically, each day the governance canister considers which proposal can be settled. It is then considered for each neuron in how many proposals they participated and with which voting power. Depending on this, the neurons get rewarded. Concretely, rewards are added to a neuron&#039;s attributed that is called &#039;&#039;maturity.&#039;&#039; Maturity represents ICP utility token that are not yet minted. &lt;br /&gt;
&lt;br /&gt;
A neuron holder can then profit from the maturity in two ways:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Spawn maturity:&#039;&#039;&#039; A neuron holder can choose to [[How to spawn a neuron|spawn a new neuron]] to get liquid ICP utility tokens worth the voting rewards. Spawning a new neuron has the effect that a new neuron with a new associated account on the ledger will be created, which contains the amount of staked ICP utility token equivalent to the maturity of the original neuron. In fact, the new tokens are minted and transferred to the new account, which is also recorded in the ledger canister. The new neuron has a small dissolve delay of 7 days. This means that users only need to wait a short amount of time to be able to unlock the tokens and use them freely, no matter what dissolve delay the original neuron has.&lt;br /&gt;
# &#039;&#039;&#039;Merge maturity&#039;&#039;&#039;: A neuron holder can choose to [[merge maturity]] to reinvest the voting rewards in the existing neuron. This neuron operation adds the ICP utility token equivalent of the maturity to the neuron&#039;s stake and adjusts the neuron&#039;s age accordingly. Effectively this means that the maturity is reinvested in the neuron and contributes to the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
= Cycles Minting Canister and Cycles&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt; =&lt;br /&gt;
Besides governance participation and voting rewards, tokens can also be converted into cycles, which fuel computation and storage on the Internet Computer. Each canister on the Internet Computer, except for those on the NNS, uses cycles for computations and has some cycles stored within it. While the token price may vary over time, the goal of the cycles is to keep the price of computation roughly consistent over time.&lt;br /&gt;
&lt;br /&gt;
The canister responsible for converting ICP utility tokens into cycles is the &#039;&#039;Cycles Minting Canister.&#039;&#039; To convert cycles for creating or topping-up a canister, a user needs to send ICP utility tokens to the Cycles Minting Canister. This canister then burns the tokens and mints the cycles. &lt;br /&gt;
&lt;br /&gt;
The Cycles Minting Canister only facilitates the conversion of ICP utility tokens to cycles but not the other way around. Cycles are burned in canisters when they use computation and storage over time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Consider User E who runs a canister on the Internet Computer and would like to top up the cycles of this canister so that it can perform even more computations. Also assume that this canister currently has 700 trillion cycles and User E would like to increase this number by 200 trillion. To do so, the user would send a command to the NNS that specifies the action of topping up their canister. Upon receiving this command, a transaction is made from the user’s account to the Cycles Minting Canister. As a result of this transaction, the Cycles Minting Canister would burn the tokens, mint new cycles, and send these freshly minted cycles to the user’s canister, meaning the canister balance is now 900 trillion cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;/div&gt;</summary>
		<author><name>LaraAS</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Neuron_attributes_and_commands&amp;diff=1156</id>
		<title>Neuron attributes and commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Neuron_attributes_and_commands&amp;diff=1156"/>
		<updated>2022-01-03T19:02:16Z</updated>

		<summary type="html">&lt;p&gt;LaraAS: new page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides more details about the [https://wiki.internetcomputer.org/index.php?title=Governance_of_the_Internet_Computer&amp;amp;veaction=edit&amp;amp;section=6#Neurons neurons] in the Network Nervous System (NNS), focusing on their attributes and the commands by which they can be changed.&lt;br /&gt;
&lt;br /&gt;
== Neuron Attributes ==&lt;br /&gt;
Each neuron in the NNS has the following attributes.&lt;br /&gt;
&lt;br /&gt;
* id: the id of the neuron.&lt;br /&gt;
* account: The principal of the ICP ledger account where the locked ICP balance resides. That is, each neuron&#039;s ICP utility token balance is stored on an account on the ledger canister. In contrast to non-neuron accounts the controller can however not just transfer the funds out of this account.&lt;br /&gt;
&lt;br /&gt;
* controller: The principal that controls the neuron. The principal must identify a public key pair, which acts as a “master key”, such that the corresponding secret key should be kept secure. The principal may control many neurons.&lt;br /&gt;
&lt;br /&gt;
* hot_keys: Keys that can be used to perform actions with limited privileges, for example voting for a neuron. The idea is that while the controller key should be kept very secure, the loss or compromise of such keys that are used more often (and thus very secure storage might not be feasible) has less security impact.&lt;br /&gt;
* cached_neuron_stake_e8s: The amount of staked ICP tokens, measured in fractions of 10E-8 of an ICP. This does not include the fees or some of the collected rewards (see below) and might not correspond exactly to the amount of ICP tokens of the neuron&#039;s account at all times. For example, to top up a neuron, one first transfers some ICP tokens to the neuron&#039;s account and then refreshes the neuron, which means that in between these actions the neuron&#039;s account actually holds more tokens than indicated by the corresponding cached stake.&lt;br /&gt;
* neuron_fees_e8s: The amount that this neuron owes, measured in fractions of 10E-8 of an ICP. This amount is increased when a neuron makes a proposal of [[Topic ManageNeuron|topic &#039;&#039;ManageNeuron&#039;&#039;]] or when a neuron makes a proposal of any other topic (in the latter case the fee is reimbursed if the proposal is accepted). When a neuron is disbursed, these tokens are burned.&lt;br /&gt;
* created_timestamp_seconds: The time when the neuron was created.&lt;br /&gt;
* aging_since_timestamp_seconds: The time, in seconds from the Unix epoch, this neuron has last entered the non-dissolving state.&lt;br /&gt;
* dissolve_state: The state specifying whether a neuron is dissolving, i.e., the timer when the staked tokens can be retrieved is decreasing, or non-dissolving, i.e., the time how much into the future the staked tokens can be retrieved is stopped. &lt;br /&gt;
** When a neuron is dissolving, i.e., the dissolve timer is running, the state is when_dissolved_timestamp_seconds and stores the timestamp, in seconds from the Unix epoch, at which the neuron becomes dissolved. &lt;br /&gt;
** When a neuron is non-dissolving, i.e., the dissolve timer is stopped, the state is dissolve_delay_seconds and stores how much time, in seconds, the dissolve timer will be started with.&lt;br /&gt;
* followees: A neuron&#039;s followees stored as a map of topics (represented by an integer) to set of followee neurons.&lt;br /&gt;
* recent_ballots: Information about how this neuron voted in the recent past. It only contains proposals that the neuron voted yes or no on.         &lt;br /&gt;
* kyc_verified: `true` if this neuron has passed KYC, `false` otherwise&lt;br /&gt;
* transfer: The record of the transfer that was made to create this neuron. This is not used anymore and always set to &amp;quot;None&amp;quot;.&lt;br /&gt;
* maturity_e8s_equivalent: A neuron&#039;s maturity in &amp;quot;e8s equivalent&amp;quot;. The maturity keeps track of the rewards that the neurons has collected. While this quantity is on the same scale as ICP tokens, it is not directly convertible to ICPs and conversion requires a minting event (e.g., spawn or merge the maturity).&lt;br /&gt;
* not_for_profit:  Whether this neuron is &amp;quot;Not for profit&amp;quot;, making it dissolvable by voting (see below)&lt;br /&gt;
* joined_community_fund_timestamp_seconds: The time point when this neuron joined the community fund.&lt;br /&gt;
&lt;br /&gt;
== Manage Neuron Commands ==&lt;br /&gt;
In general, any changes to or in the name of a neuron (e.g., changes to the neuron&#039;s attributes or casting a vote in the name of the neuron) can be made in two ways: &lt;br /&gt;
&lt;br /&gt;
# by using the manage_neuron interface of the governance canister or&lt;br /&gt;
# by making a special proposal of [[topic ManageNeuron]], where the basic idea is that a set of neurons can control a &#039;&#039;managed neuron&#039;&#039; by submitting and voting on special proposals. This only works if the managed neuron follows these controlling neurons for the proposal topic ManageNeuron. If this is given, the set of controlling neurons can send commands to the governance canister as if they were issued by the managed neuron&#039;s controller (that is with the same privileges that the managed neuron&#039;s controller has to manipulate the neuron). Thus, if it is stated that some neuron commands can only be done by a neuron&#039;s controller, this also includes the possibility that these commands are done per manageNeuron proposal.&lt;br /&gt;
&lt;br /&gt;
We next list all commands that can be done by manage_neuron.&lt;br /&gt;
&lt;br /&gt;
=== Claiming a neuron ===&lt;br /&gt;
This can be used to stake ICP utility tokens into a neuron. To do so, first a transfer must be made to the neuron&#039;s associated ledger account. Each transfer on the ledger account can be provided with a &#039;&#039;memo.&#039;&#039; After this transfer, the neuron can be claimed on the governance canister by providing the memo and the controller of the neuron. This allows the governance canister to find the corresponding account on the ledger canister and learn how many tokens should be staked in the corresponding neuron. A neuron is then created. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command)&#039;&#039;&amp;lt;u&amp;gt;:&amp;lt;/u&amp;gt;&#039;&#039;&#039;&#039;&#039; &#039;&#039;&amp;lt;u&amp;gt;Anyone can call this method.&amp;lt;/u&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Refreshing a neuron ===&lt;br /&gt;
Similarly to how a neuron is first created, a neuron can be topped up by making a transfer to the neuron&#039;s Ledger canister account and then calling the Governance canister, which will adjust the neuron&#039;s stake to the new balance on the neuron&#039;s account. For this to work, the caller must either provide the governance canister with the memo and controller (as with claiming a neuron) or with the neuron&#039;s ID or account. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039; Anyone can call this method.&#039;&#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
=== Configuring a neuron ===&lt;br /&gt;
Once a neuron is claimed, a neuron&#039;s controller might want to configure it. The following are commands that only configure a given neuron, but do not interact with the outside world.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039; All neuron configurations can only be invoked by a neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
* IncreaseDissolveDelay: Increases a neuron&#039;s dissolve delay by the given additional dissolve delay but at most to a given maximum dissolve delay (which is currently set to 8 years). If this method is called on a non-dissolving neuron, it remains non-dissolving. If it is called on dissolving neuron, it remains dissolving.   If this configuration is called on a dissolved neuron, it becomes non-dissolving. Moreover, the neuron&#039;s aging_since_timestamp_seconds is reset to start counting from when it last entered the dissolved state in the case where the &#039;&#039;dissolved&#039;&#039; state was reached through explicit dissolution or to `now` when this is not applicable, e.g., when the neuron is newly created with zero dissolve delay.&lt;br /&gt;
&lt;br /&gt;
* SetDissolveTimestamp: This is just another way of increasing the dissolve delay, by stating the target dissolve timestamp rather than the relative increase in the dissolve delay. It is internally translated to do the same as increasing the dissolve delay.&lt;br /&gt;
* StartDissolving: If this neuron is not dissolving, start dissolving it. If the neuron is dissolving or dissolved, an error is returned. Starting to dissolve a neuron intuitively means that the neuron&#039;s countdown to when the staked tokens can be liquidated is started. In terms of neuron attributes, the neuron&#039;s dissolve state is set to when_dissolved_timestamp_seconds which specifies the time now plus the neuron&#039;s dissolve delay (i.e., the defined countdown&#039;s duration). Moreover, the neuron&#039;s aging_since_timestamp_seconds is set to the maximum possible value, which represents that the neuron has no age as this will be in the future.&lt;br /&gt;
&lt;br /&gt;
* StopDissolving: If this neuron is dissolving, set it to not dissolving. If the neuron is not dissolving, an error is returned. Intuitively, this means that the neuron&#039;s countdown towards when the staked tokens can be liquidated is stopped. In terms of neuron attributes, the neuron&#039;s state is set to dissolve_delay_seconds, which now tracks the remaining time on the countdown. Also, the neuron&#039;s aging_since_timestamp_seconds is set to now. &lt;br /&gt;
&lt;br /&gt;
* AddHotKey: A new hot key is added to the neuron if the following preconditions hold: - key to add is not already present in &#039;hot_keys&#039; - the key to add is well-formed - there are not already too many hot keys for this neuron (currently 10 hot keys are allowed).&lt;br /&gt;
* RemoveHotKey: The specified hot key is removed if it is in the list of hot keys.&lt;br /&gt;
* JoinCommunityFund: If the neuron has not yet joined the community fund, this configuration sets the neuron&#039;s joined_community_fund_timestamp_seconds to the current time. If the neuron is already a member of the community fund, an error is returned.&lt;br /&gt;
&lt;br /&gt;
=== Make Proposal ===&lt;br /&gt;
This command can be used to submit a proposal in the name of a neuron. If successful, the command creates an initial electoral roll that includes a ballot for all neurons that are eligible to vote on the proposal at the time when the proposal is created and where the ballots state the neurons&#039; voting power at the time of the proposal creation. The neuron that makes the proposal is charged the rejection fee upfront which will be reimbursed if the proposal is accepted (except for proposals of topic ManageNeuron) and the voting power of the proposer neuron is already counted towards the yes votes of the proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039; The neuron&#039;s controller or a registered hot key.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The proposal is valid.&lt;br /&gt;
* The neuron is eligible to vote on the proposal (i.e., still has a minimum dissolve delay currently set to 6 months)&lt;br /&gt;
* The neuron has more stake than the cost of a rejected proposal.&lt;br /&gt;
* There are not already too many proposals.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The neuron_fees_e8s are increased by the rejection fee (or, in case of a ManageNeuron proposal the corresponding fee)&lt;br /&gt;
* The recent_ballots are updated with the yes ballot that is cast for the proposer.&lt;br /&gt;
&lt;br /&gt;
=== Register Vote ===&lt;br /&gt;
This is used to directly register a neuron&#039;s vote for a given proposal. Also, it triggers registering of a vote for all neurons that follow this neuron.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039; The neuron&#039;s controller or a registered hot key.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* A proposal is specified and exists.&lt;br /&gt;
* The neuron is eligible to vote on this proposal, i.e., an empty ballot has been entered to the electoral roll (if this is not the case, then the neuron was not eligible at the time when the proposal was created and thus the neuron is not allowed to vote on it)&lt;br /&gt;
* The neuron has not already voted on this proposal&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The recent_ballots are updated.&lt;br /&gt;
&lt;br /&gt;
=== Follow ===&lt;br /&gt;
Add or remove followees for this neuron for a specified topic. If the list of followees is empty, remove the followees for this topic. If the list has at least one element, replace the current list of followees for the given topic with the provided list. Note that the list is replaced, not addded to.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039; The neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The list of followees is not too long (currently we allow 15 followees per topic)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The followees for the given topic are updated.&lt;br /&gt;
&lt;br /&gt;
=== Spawn ===&lt;br /&gt;
This command allows to convert the neuron&#039;s collected rewards that are stored as the neuron&#039;s maturity to (staked) ICP utility tokens by minting the corresponding tokens (on the Ledger canister) and &amp;quot;spawning&amp;quot; them into a new neuron. The new &#039;&#039;child neuron&#039;&#039;, containing the spawned staked tokens has a small dissolve delay, which means that the tokens can be liquidated after only a short period of time while the original &#039;&#039;parent neuron&#039;s&#039;&#039; tokens may still be locked for much longer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039; The neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The parent neuron exists.&lt;br /&gt;
* The parent neuron is not involved in any neuron commands that have ledger interactions (to avoid inconsistencies).&lt;br /&gt;
* The parent neuron has accumulated maturity that would generate more than the minimum stake needed to create a new neuron.&lt;br /&gt;
* A controller for the new child neuron is provided that is valid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The maturity is decreased by the maturity at the time when the command started (a new reward event might have set it to non-zero already again)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The the new &amp;quot;child&amp;quot; neuron&#039;s attributes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* id: random ID&lt;br /&gt;
* account: random account (that does not yet exist)&lt;br /&gt;
&lt;br /&gt;
* controller: set to the provided controller&lt;br /&gt;
&lt;br /&gt;
* hot_keys: same as parent neuron&lt;br /&gt;
* cached_neuron_stake_e8s: set to the parent&#039;s maturity at the time when the command started.&lt;br /&gt;
* neuron_fees_e8s: 0&lt;br /&gt;
* created_timestamp_seconds: current time&lt;br /&gt;
* aging_since_timestamp_seconds: current time&lt;br /&gt;
* dissolve_state: (non-dissolving) dissolve_delay_seconds set to neuron_spawn_dissolve_delay_seconds as defined in the governance economics (currently set to 7 days)&lt;br /&gt;
* followees: same as parent neuron&lt;br /&gt;
* recent_ballots: empty&lt;br /&gt;
* kyc_verified: same as parent neuron&lt;br /&gt;
* transfer: not set&lt;br /&gt;
* maturity_e8s_equivalent:0&lt;br /&gt;
* not_for_profit: false&lt;br /&gt;
* joined_community_fund_timestamp_seconds: None&lt;br /&gt;
&lt;br /&gt;
=== Merge Maturity ===&lt;br /&gt;
This command allows to convert the neuron&#039;s collected rewards that are stored as the neuron&#039;s maturity to (staked) ICP utility tokens by adding them to the neuron&#039;s stake. The caller can choose a percentage of maturity to merge. The effect is that the corresponding tokens will be minted on the Ledger canister and added to the neuron&#039;s account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039;  The neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The neuron has some maturity to merge.&lt;br /&gt;
* The e8s equivalent of the amount of maturity to merge must be more than the transaction fee on the Ledger canister. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The specified portion of the maturity is subtracted from the neuron&#039;s maturity_e8s_equivalent&lt;br /&gt;
* The specified portion of the maturity is added to the neuron&#039;s cached_neuron_stake_e8s &lt;br /&gt;
* The neuron&#039;s age (specified in aging_since_timestamp_seconds) is adjusted to reflect that the newly added tokens have no age&lt;br /&gt;
&lt;br /&gt;
=== Disburse ===&lt;br /&gt;
Once a dissolving neuron&#039;s countdown has reached zero, the neuron is dissolved and can thus be disbursed, which means that (some or only a specified number of) the staked tokens can be transferred to a given account. If no target account is provided, the transfer is made to the caller&#039;s account (i.e., the neuron&#039;s controller&#039;s account).&lt;br /&gt;
&lt;br /&gt;
In more detail, when a neuron is disbursed multiple steps happen:&lt;br /&gt;
&lt;br /&gt;
# the neuron&#039;s accumulated fees are burned&lt;br /&gt;
# the neuron&#039;s accumulated maturity is converted to ICP utility tokens by minting the corresponding tokens and also transferring them to the target account&lt;br /&gt;
# the given staked amount (or the full stake if none is provided) is transferred to the target account&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039;  The neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The neuron exists.&lt;br /&gt;
* The neuron&#039;s state is `Dissolved` at the current timestamp, i.e., the dissolve countdown has reached zero.&lt;br /&gt;
* The neuron&#039;s kyc_verified is not false. That is, a neuron that was created with kyc_verified false cannot be disbursed until it went through kyc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The specified amount is subtracted from the neuron&#039;s cached_neuron_stake_e8s, as are the original neuron fees&lt;br /&gt;
* The neuron_fees_e8s is set to zero &lt;br /&gt;
* The maturity_e8s_equivalent is set to zero &lt;br /&gt;
&lt;br /&gt;
=== Split ===&lt;br /&gt;
This command splits a &#039;&#039;parent neuron&#039;&#039; into two neurons, the original parent neuron and a new child neuron. This command may be useful, if a neuron holder would like for example to set the neuron configurations differently for a portion of the locked tokens. &lt;br /&gt;
&lt;br /&gt;
The parent neuron&#039;s stake is decreased by the amount specified, while the child neuron is created with a stake equal to that amount, minus the Ledger canister transfer fee. The child neuron inherits all the properties of its parent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039;  The neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* The parent neuron exists&lt;br /&gt;
* The parent neuron is not involved in any neuron commands that have ledger interactions (to avoid inconsistencies).&lt;br /&gt;
* The staked amount minus amount to split is more than the minimum stake (ensuring that the parent neuron has at least the minimum stake).&lt;br /&gt;
* The amount to split minus the transfer fee is more than the minimum stake  (ensuring that the child neuron has at least the minimum stake).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the (parent) neuron&#039;s attributes:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* cached_neuron_stake_e8s: deduced by specified amount that is split&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The the new &amp;quot;child&amp;quot; neuron&#039;s attributes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* id: random ID&lt;br /&gt;
* account: random account (that does not yet exist)&lt;br /&gt;
&lt;br /&gt;
* controller: same as parent neuron&lt;br /&gt;
&lt;br /&gt;
* hot_keys: same as parent neuron&lt;br /&gt;
* cached_neuron_stake_e8s: set to specified amount that is split from parent minus the transaction fee&lt;br /&gt;
* neuron_fees_e8s: 0&lt;br /&gt;
* created_timestamp_seconds: current time&lt;br /&gt;
* aging_since_timestamp_seconds: same as parent neuron&lt;br /&gt;
* dissolve_state: same as parent neuron&lt;br /&gt;
* followees: same as parent neuron&lt;br /&gt;
* recent_ballots: empty&lt;br /&gt;
* kyc_verified: same as parent neuron&lt;br /&gt;
* transfer: not set&lt;br /&gt;
* maturity_e8s_equivalent: 0&lt;br /&gt;
* not_for_profit: same as parent neuron&lt;br /&gt;
* joined_community_fund_timestamp_seconds: same as parent neuron&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disburse to Neuron ===&lt;br /&gt;
(Intro)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Access control (who can issue this command):&#039;&#039;&#039;  The neuron&#039;s controller.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Preconditions (other conditions that must hold):&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The effect on the neuron&#039;s attributes:&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>LaraAS</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=1155</id>
		<title>Internet Computer wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Internet_Computer_wiki&amp;diff=1155"/>
		<updated>2022-01-03T15:46:49Z</updated>

		<summary type="html">&lt;p&gt;LaraAS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Internet Computer Wiki!&amp;lt;/strong&amp;gt; Feel free to join in. All are welcome!&lt;br /&gt;
== Topics Central ==&lt;br /&gt;
&lt;br /&gt;
* [[Internet computer]]&lt;br /&gt;
* [[Internet Computer vision]]&lt;br /&gt;
* [[Index of dapps on the Internet Computer]]&lt;br /&gt;
* [[ICP token]]&lt;br /&gt;
* [[Internet Identity]]&lt;br /&gt;
* [https://dashboard.internetcomputer.org/ Internet Computer dashboard] &lt;br /&gt;
* [[Internet Computer Performance]]&lt;br /&gt;
* [[DFINITY]]&lt;br /&gt;
* [[Custody, Staking, and Voting]]&lt;br /&gt;
*[[Network Nervous System]]&lt;br /&gt;
*ICP is expected to outgrow every crypto in the known universe. ICP coins will be used to power the future of the world. &lt;br /&gt;
== For blockchain &amp;amp; crypto enthusiasts ==&lt;br /&gt;
* [[Myths and facts]]&lt;br /&gt;
* [https://www.reddit.com/r/dfinity/ r/dfinity]&lt;br /&gt;
* [[How to stake on the Internet computer]]&lt;br /&gt;
* [[Staking and Voting]]&lt;br /&gt;
* [[Tokenomics of the Internet Computer]]&lt;br /&gt;
* [[Governance of the Internet Computer]]&lt;br /&gt;
*[[Neuron Attributes and Commands]]&lt;br /&gt;
&lt;br /&gt;
== For dapp developers ==&lt;br /&gt;
* [[Internet Computer for dapp developers]]&lt;br /&gt;
* [[Canister smart contracts]]&lt;br /&gt;
* [https://forum.dfinity.org/ IC community developer forum]&lt;br /&gt;
* [[Best practices for a high traffic dapp launch]]&lt;br /&gt;
* [[Best practices for NFT drops]]&lt;br /&gt;
* [[Current limitations of the IC]]&lt;br /&gt;
&lt;br /&gt;
== For computer scientists ==&lt;br /&gt;
* [[The Internet Computer for Computer Scientists]]&lt;br /&gt;
&lt;br /&gt;
== For node owners ==&lt;br /&gt;
* [[Internet Computer for node owners]]&lt;br /&gt;
&lt;br /&gt;
== FAQs ==&lt;br /&gt;
&lt;br /&gt;
* [[FAQ]]&lt;br /&gt;
== How-To section ==&lt;br /&gt;
How-Tos are step-by-step instructions for specific, narrow goals.&lt;br /&gt;
* [[How-To: Claim neurons for seed participants]]&lt;br /&gt;
&lt;br /&gt;
== Tutorial section ==&lt;br /&gt;
Tutorials are guided introductions to user stories, intended for first-time users and characterized by a shallow learning curve.&lt;br /&gt;
* [[Tutorial: Neuron control]]&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
&lt;br /&gt;
=== Housekeeping Rules ===&lt;br /&gt;
&lt;br /&gt;
* Please refrain from redundancy, such as referring to the Internet Computer in article titles. This is, after all, the Internet Computer Wiki.&lt;br /&gt;
* Please carefully consider your use of capitalisation. Most words in titles should be capitalised. DFINITY is always stylised in all-caps.&lt;br /&gt;
&lt;br /&gt;
=== How to Contribute ===&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User&#039;s Guide] for information on using the wiki software.&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;br /&gt;
&lt;br /&gt;
Use this page to test editing&lt;br /&gt;
* [[Test editing the Internet Computer Wiki]]&lt;br /&gt;
&lt;br /&gt;
Number of articles: {{NUMBEROFARTICLES}}&lt;/div&gt;</summary>
		<author><name>LaraAS</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Neuron_attributes_and_commands&amp;diff=1154</id>
		<title>Neuron attributes and commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Neuron_attributes_and_commands&amp;diff=1154"/>
		<updated>2022-01-03T15:45:03Z</updated>

		<summary type="html">&lt;p&gt;LaraAS: This page explains the neurons in the Network Nervous System (NNS), focusing on their attributes and the commands by which they can be changed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the neurons in the Network Nervous System (NNS), focusing on their attributes and the commands by which they can be changed.&lt;/div&gt;</summary>
		<author><name>LaraAS</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Governance_of_the_Internet_Computer&amp;diff=1131</id>
		<title>Governance of the Internet Computer</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Governance_of_the_Internet_Computer&amp;diff=1131"/>
		<updated>2021-12-13T18:17:49Z</updated>

		<summary type="html">&lt;p&gt;LaraAS: adding archive canister to list of canisters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A key feature of the Internet Computer blockchain is the Network Nervous System (NNS)&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;, an open algorithmic governance system that oversees the network and the token economics that make it possible to build DeFi and dapps, open internet services, and enterprise systems that are capable of operating at hyperscale.&lt;br /&gt;
&lt;br /&gt;
Holders of the Internet Computer’s ICP utility tokens can lock their tokens in &#039;&#039;neurons&#039;&#039; to participate in governance and contribute to decision-making, such as voting to determine whether or not a new collection of nodes (also called a subnet) should be added to the network. By participating in governance, voters earn &#039;&#039;rewards&#039;&#039;. They can use these rewards, or otherwise procured ICP utility tokens, to fuel the computations of their canisters.&lt;br /&gt;
&lt;br /&gt;
=== Why the Internet Computer needs a Network Nervous System&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt; ===&lt;br /&gt;
The Internet Computer is a distributed protocol run by a network of node machines, which are hosted in different data centers. The nodes communicate with one another over the internet to achieve a consensus on what the Internet Computer’s state should be. A collection of nodes engaging in consensus is called a subnet. On top of this underlying communication and consensus protocol, the Internet Computer hosts &#039;&#039;canisters&#039;&#039;, which are stateful programs that can also communicate with each other. The state of all of the canisters has to be replicated across all of the nodes. Therefore, to allow the Internet Computer to scale indefinitely, the network is made up of not just one subnet, but multiple subnets.&lt;br /&gt;
&lt;br /&gt;
Different subnets can communicate with one another, enabling canisters that are hosted on different subnets to also communicate with each other. For the Internet Computer to scale on-demand, the network must be able to add new subnets over time to increase compute capacity. Moreover, the robustness of the subnets can be improved by adding new nodes to them over time. Eventually, the Internet Computer will run millions of nodes at scale. This means that there needs to be a mechanism by which the nodes and subnets are organised, tracked, and managed. For example, decisions must be made about when subnets and nodes should be added or removed. In addition, the Internet Computer was launched with an initial feature set, which evolves over time. Therefore, the Internet Computer needs to be able to make decisions on how to evolve the protocol in a distributed manner.&lt;br /&gt;
&lt;br /&gt;
=Network Nervous System overview=&lt;br /&gt;
&lt;br /&gt;
The Network Nervous System, or “NNS”, is a tokenised open governance system that is responsible for managing the Internet Computer. For example, it stores information about what nodes belong to which subnet. It also makes decisions about how to update this information.&lt;br /&gt;
&lt;br /&gt;
The NNS is realised by a set of &#039;&#039;[[canisters]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;List of the NNS canisters&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ledger canister:&#039;&#039;&#039; The ledger canister stores  a. the ICP utility &#039;&#039;token balance&#039;&#039; of each principal and   b. the history of ICP &#039;&#039;transactions&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Governance canister:&#039;&#039;&#039; The two most important concepts that the governance canister stores are  a. &#039;&#039;Proposals&#039;&#039;, which are suggestions for how the Internet Computer should be changed. These proposals can then be voted on.   b. &#039;&#039;Neurons&#039;&#039;, which determine who is allowed to participate in governance.&lt;br /&gt;
# &#039;&#039;&#039;Registry canister:&#039;&#039;&#039; This canister stores the configuration of the whole Internet Computer that can then be looked up by others. As an example, it stores which nodes belong to a certain subnet.&lt;br /&gt;
# &#039;&#039;&#039;Cycles minting canister&#039;&#039;&#039;: This canister is responsible for minting &#039;&#039;cycles&#039;&#039;, the fuel for canisters for computations and data storage. It is therefore involved in the initialisation of canisters as well as when canisters are topped-up with additional cycles.&lt;br /&gt;
# &#039;&#039;&#039;Root canister&#039;&#039;&#039;: The root canister is the controller of all other NNS canisters and responsible for upgrading them.&lt;br /&gt;
# &#039;&#039;&#039;Lifeline canister&#039;&#039;&#039;: The lifeline canister is the controller of the root canister and responsible for upgrading it. &lt;br /&gt;
# &#039;&#039;&#039;Archive canisters&#039;&#039;&#039;: The canisters that store the history of the ledger transactions once there are too many to keep in a single canister.&lt;br /&gt;
#&#039;&#039;&#039;Genesis token canister:&#039;&#039;&#039; This is the canister that was used to initialise the neurons that already existed during genesis.&lt;br /&gt;
&lt;br /&gt;
The canisters that users of the Internet Computer are interacting with most are the first two: the ledger canister for making transactions, and the governance canister for staking tokens and submitting and voting on proposals.&lt;br /&gt;
&lt;br /&gt;
= Ledger canister &amp;amp; ICP utility tokens in the NNS =&lt;br /&gt;
[[ICP token|ICP utility tokens]] are managed by the ledger canister, which stores two things: accounts and transactions. An account record keeps track of how many tokens are in the possession of a given [[principal]] (i.e., an identity by which a user is authenticated on the Internet Computer). Tokens can then be sent from one account to another, and this is recorded in the transactions of the ledger canister.&lt;br /&gt;
&lt;br /&gt;
In the NNS, ICP utility tokens are used for three different things:&lt;br /&gt;
&lt;br /&gt;
# ICP tokens facilitate &#039;&#039;&#039;participation in governance&#039;&#039;&#039; (more below on how the neurons are connected with the tokens).&lt;br /&gt;
# Those who participate in governance and those who provide compute capacity by operating note machines are &#039;&#039;&#039;rewarded&#039;&#039;&#039; in ICP tokens.&lt;br /&gt;
# ICP tokens are used for &#039;&#039;&#039;conversion into cycles&#039;&#039;&#039;, which are fuel for canisters for computations and data storage.&lt;br /&gt;
&lt;br /&gt;
=Governance Canister=&lt;br /&gt;
&lt;br /&gt;
The governance canister is responsible for holding &#039;&#039;neurons&#039;&#039;, determining who is allowed to participate in governance. Moreover, it stores proposals, which are suggestions how how the Internet Computer should be changed, and the information associated with proposals that decides if these suggestions should be implemented. If a proposal is adopted, the governance canister automatically executes the decision. Finally, the governance canister distributes rewards to those neurons who participated in voting and contributed to the decision making.&lt;br /&gt;
&lt;br /&gt;
== Neurons ==&lt;br /&gt;
Neurons contain &#039;&#039;locked&#039;&#039; ICP utility tokens. This means that these tokens are not liquid and cannot be transferred freely to others.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Neuron Attributes&#039;&#039;&#039; ===&lt;br /&gt;
Each neuron stores a number of neuron attributes. Some of the most important ones are the following:&lt;br /&gt;
&lt;br /&gt;
* how many ICP tokens are &#039;&#039;locked&#039;&#039; in the neuron. This information is accessible both by a neuron referencing an account on the ledger canister that stores the neuron&#039;s balance and by a cached stake on the governance canister.&lt;br /&gt;
* a &#039;&#039;controller&#039;&#039; as a principal ID, which identifies a public key&lt;br /&gt;
* a unique &#039;&#039;neuron ID&#039;&#039;&lt;br /&gt;
*the neuron&#039;s &#039;&#039;dissolve delay.&#039;&#039; Intuitively, the dissolve delay defines the earliest time when the locked ICP tokens can be unlocked. This time can be increased to up to 8 years but it can only be decreased by waiting for time to pass. A neuron can either be &#039;&#039;non-dissolving&#039;&#039;, &#039;&#039;dissolving&#039;&#039;, or &#039;&#039;dissolved.&#039;&#039; If a neuron is non-dissolving, its set dissolve delay is kept stable and the timer is not running down. The neuron can then be set to dissolving, which means that the dissolve delay is decreasing with the time. Finally, if a the dissolve delay reaches 0, the neuron is dissolved and the locked tokens can be transferred out of the neuron. &lt;br /&gt;
*the &#039;&#039;age&#039;&#039;, which is between 0 and 4 years. A neuron&#039;s age determines the time since when then neuron has last entered the non-dissolving state.&lt;br /&gt;
A neuron&#039;s dissolve delay determines a neuron&#039;s &#039;&#039;eligibility&#039;&#039; to participate in voting. Namely, only those neurons with tokens locked for at least six months are eligible to participate in governance. This should incentivise neuron holders to vote such that the value of their tokens is maximised for a future date. If the value of the tokens is a rough proxy for the network’s success, this incentivises neuron holders to vote in the long-term interest of the Internet Computer.&lt;br /&gt;
&lt;br /&gt;
A neuron&#039;s &#039;&#039;voting power&#039;&#039; depends on how many tokens a neuron has locked, as well as the neuron&#039;s dissolve delay and age. Intuitively, those who are more committed to the Internet Computer, as they have locked their tokens for longer or have already staked them for a long time, have more voting power. In particular, the voting power is computed as the number of staked ICP utility tokens that is multiplied by a factor of up to 2 depending on the dissolve delay (which is between 0 and 8 years) and by a factor of up to 0.25 due to the age (between 0 and 4 years).&lt;br /&gt;
&lt;br /&gt;
Finally, the number of rewards that each neuron receives depends on the number of votes that the neuron participated in as well as the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
===How to lock tokens in a neuron&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
As a user, there are different [[ICP staking options]] to stake ICP utility tokens in a neuron. The effect of such an operation is that these ICP tokens are transferred to a ledger account that is associated with a newly created neuron. The tokens are thus locked and cannot be used freely by the neuron holder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s assume that User B, who has an account (A1) on the ledger canister, would like to lock a hundred tokens in a neuron. To do so, User B sends a command to the NNS specifying the number of tokens and User B’s corresponding principal ID.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A transaction is then recorded on the ledger, which specifies that some tokens are sent from the original account (A1) of the user to a new account (A2), which also creates the new account (A2) that holds the locked tokens. A new neuron is created in the governance canister that specifies that User B is the one controlling this neuron and that specifies that the amount of locked tokens is defined by the new ledger account A2.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Externally, it’s not visible that the new account (A2) holds locked tokens or is in any way related to the original account (A1). Nevertheless, this account is in fact controlled by the neuron, which means that the tokens are not liquid and that User B cannot transfer the tokens or convert the tokens into cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main reason for a user to lock tokens in a neuron is to be able to participate in voting and get voting rewards. Both are described in more detail below.&lt;br /&gt;
&lt;br /&gt;
== Proposals ==&lt;br /&gt;
Intuitively, a proposal is a suggestion how the Internet Computer should be changed. More technically, a proposal describes a &#039;&#039;method&#039;&#039; in a canister that is called if the proposal is accepted. Moreover, it describes the &#039;&#039;parameters&#039;&#039; with which the method will be called.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer supports a variety of different proposal &#039;&#039;topics&#039;&#039;. Here are some non-exhaustive examples of topics that are supported in the NNS governance canister:&lt;br /&gt;
* #SubnetManagement Proposals: This considers topology changes. The example proposal above about whether a node should be added to a subnet falls into this category.&lt;br /&gt;
* #NodeAdmin Proposals: This concerns the administration of node machines. An example of a proposal could specify that all of the nodes in a subnet should be updated.&lt;br /&gt;
* #NetworkEconomics Proposals: This concerns the administration of network economics. For example: what rewards should be paid to the node machine providers?&lt;br /&gt;
*#Motion Proposals: These proposals do not have a direct execution of a method as a consequence but are merely there to record the opinion of the community on a specified matter.&lt;br /&gt;
&lt;br /&gt;
== Voting and proposal lifecycle ==&lt;br /&gt;
&lt;br /&gt;
=== Submitting a proposal ===&lt;br /&gt;
Any eligible neuron can [[submit a proposal]]. To avoid being inundated by useless proposals, a user submitting a proposal has to pay a small fee when submitting a proposal, that they will receive back if the proposal is adopted (but that they will not receive back if the proposal is rejected).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s consider a User C who would like to suggest that a new subnet is created that initially consists of two nodes: Node 1 and Node 2. Once User C controls a neuron, they can submit a proposal by specifying their neuron ID, the type of proposal that they would like to submit, and the proposal’s parameters. In our example, the proposal specifies that a new subnet should be created and the proposal&#039;s parameters consist of the initial nodes Node 1 and Node 2. Upon the receipt of this proposal, the governance canister first checks that this user is indeed the one controlling the neuron with the given ID and that this neuron is eligible to vote. If the requirements are met, the proposal is added to the governance canister.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
After a proposal is submitted by an eligible neuron, the proposal is created and stored in the governance canister. Moreover, the governance canister computes and stores additional information with each proposal. First, the [[voting power]] of each neuron is computed and stored together with the proposal. The sum of all of these voting powers also determines the &#039;&#039;total voting power&#039;&#039; associated with a given proposal.&lt;br /&gt;
&lt;br /&gt;
When a new proposal is created, the number of “yes” votes associated with the proposal is already increased by the proposer’s voting power. This reflects that the proposal already has the support of the user submitting it.&lt;br /&gt;
&lt;br /&gt;
Moreover, each proposal has an associated &#039;&#039;voting period,&#039;&#039; which determines the period of time over which votes for this proposal are accepted.&lt;br /&gt;
&lt;br /&gt;
=== Viewing NNS Proposals ===&lt;br /&gt;
You can see all the NNS proposals on the Internet Computer dashboard: https://dashboard.internetcomputer.org/governance&lt;br /&gt;
&lt;br /&gt;
===Discussing NNS Proposals===&lt;br /&gt;
&lt;br /&gt;
A lot of NNS proposals are discussed on the developer forum: https://forum.dfinity.org/c/roadmap/29&lt;br /&gt;
&lt;br /&gt;
Notable examples:&lt;br /&gt;
* Direct integration with Bitcoin: https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147&lt;br /&gt;
* Increasing smart contract memory: https://forum.dfinity.org/t/increased-canister-smart-contract-memory/6148&lt;br /&gt;
&lt;br /&gt;
===Voting on a proposal===&lt;br /&gt;
After a proposal is submitted and added to the governance canister, other users who control neurons can [[ICP voting options|vote on the proposal]]. Currently, the most user-friendly way to vote on NNS proposals is via the NNS Frontend dapp: https://nns.ic0.app/. For voting, users would first learn which are the open proposals on the governance canister that they can actually vote on. This information is available, for example on Internet Computer dashboard: https://dashboard.internetcomputer.org/governance or in the [[NNS frontend dapp]]. &lt;br /&gt;
&lt;br /&gt;
If a neuron votes in favour of a proposal, the governance canister adds this neuron’s voting power, as stored with the proposal, to the “Yes”-votes associated with the proposal. Likewise, if a neuron votes against a proposal, the governance canister adds the neuron’s voting power to the “No”-votes of the proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Assume that a given User D would like to reject the proposal that was just added by User C. To do so, User D would send their neuron ID and a “no” vote to the governance canister. The governance canister would check that the vote is coming from the correct user who controls the neuron and confirm that the neuron is eligible to vote. If the conditions are met, the governance canister would then add the voting power of User D to the “no” votes.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Neuron following and liquid democracy====&lt;br /&gt;
&lt;br /&gt;
Users may not have the time or knowledge to participate in all voting decisions. Therefore, instead of directly voting on proposals, neuron holders may choose to delegate their vote to other neurons that they trust with certain decisions. This concept of delegating the right to vote to other voters who then effectively vote with more voting power is called &#039;&#039;liquid democracy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Concretely, for each proposals topic a neuron can [[How to follow neurons|specify a set of other neurons that it would like to &#039;&#039;follow&#039;&#039;]] &#039;&#039;(so-called followees)&#039;&#039;. In addition, a neuron can specify a set of followees for &amp;quot;all other topics&amp;quot; that are not covered by specific rules. The governance canister keeps track of this relation of follower and followee neurons. It then automatically casts a vote for a follower neuron based on the decision of the followees. In particular, if more than 50% of the followees vote &amp;quot;yes&amp;quot;, then a &amp;quot;yes&amp;quot; vote is cast for the follower and if at least 50% of the followees vote &amp;quot;no&amp;quot;, then a &amp;quot;no&amp;quot; vote is cast for the follower. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;. &#039;&#039;Consider neuron N1 that follows the set of neurons {N2, N3, N4, N5} on all proposal topics. Consider now that a proposal is submitted by another neuron N6. Assume in a first scenario that first N2 votes &amp;quot;No&amp;quot; and then N3 votes &amp;quot;No&amp;quot; on the proposal. In that case, the governance canister will also send a &amp;quot;No&amp;quot; vote for N1 two out of four followees voted &amp;quot;No&amp;quot; (which also means that it is not possible anymore to get more than 50% &amp;quot;Yes&amp;quot; votes). Assume a second scenario where N2 votes &amp;quot;Yes&amp;quot; and then N3 votes &amp;quot;Yes&amp;quot; on the proposal. In that case, no vote is sent yet for N1. However, if either N4 and N5 also send a &amp;quot;Yes&amp;quot; vote, a &amp;quot;Yes&amp;quot; vote is also cast for N1.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This liquid democracy has great advantages. First, it allows even neurons that do not have enough knowledge of a certain topic to nevertheless participate in governance by choosing the neurons that they trust with certain decisions and by delegating their vote to them. In particular, a neuron can choose a different set of followees for different topics. Moreover, this mechanism allows neuron holders to get voting rewards from voting participation even if they do not have time to actively participate in all voting decision.&lt;br /&gt;
&lt;br /&gt;
=== Proposal decision and wait-for-quiet ===&lt;br /&gt;
A proposal can be &#039;&#039;decided&#039;&#039; in two ways:&lt;br /&gt;
# &#039;&#039;&#039;Absolute Majority before the voting period ends&#039;&#039;&#039;: At any point, even before the voting period ends, if an absolute majority (more than half of the total voting power stored in the proposal) has voted Yes, then the proposal is adopted and if an absolute majority has voted No, then the proposal is rejected.&lt;br /&gt;
# &#039;&#039;&#039;Simple Majority at the voting period’s end&#039;&#039;&#039;: When the voting period ends, if a simple majority (more than half of the cast votes) has voted Yes and the number of these Yes-votes constitute at least 3% of the total voting power, then the proposal is adopted. Otherwise, the proposal is rejected.&lt;br /&gt;
&lt;br /&gt;
What also plays into this is the fact that the governance voting algorithm also applies &#039;&#039;wait-for-quiet&#039;&#039;. The idea of wait-for-quiet is to decide proposals quickly when all voters agree, but increase the time that neurons can vote for proposals that are controversial. That means that the voting period can be dynamically increased, depending on the neurons’ votes. In particular, each time a proposal’s outcome is turned (either a Yes-majority is turned to a No-majority or vice versa), the proposal’s deadline is increased. Currently, a proposal&#039;s initial voting period is 4 days and can be increased by at most another 4 days. That is, the voting period that is taken into account for the above rules can be between 4 and 8 days, depending on the voting activity.&lt;br /&gt;
&lt;br /&gt;
=== Proposal execution ===&lt;br /&gt;
Recall that a proposal defines a method, a canister, and some parameters. As soon as a proposal is adopted, the defined method on the specified canister is called with the given parameters. This is done fully automatically by the governance canister. &lt;br /&gt;
&lt;br /&gt;
== Voting Rewards ==&lt;br /&gt;
Contributing to decision-making is one incentive for voters to lock their neurons, but they are also &#039;&#039;rewarded&#039;&#039; for participating in network governance.&lt;br /&gt;
&lt;br /&gt;
Specifically, each day the governance canister considers which proposal can be settled. It is then considered for each neuron in how many proposals they participated and with which voting power. Depending on this, the neurons get rewarded. Concretely, rewards are added to a neuron&#039;s attributed that is called &#039;&#039;maturity.&#039;&#039; Maturity represents ICP utility token that are not yet minted. &lt;br /&gt;
&lt;br /&gt;
A neuron holder can then profit from the maturity in two ways:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Spawn maturity:&#039;&#039;&#039; A neuron holder can choose to [[How to spawn a neuron|spawn a new neuron]] to get liquid ICP utility tokens worth the voting rewards. Spawning a new neuron has the effect that a new neuron with a new associated account on the ledger will be created, which contains the amount of staked ICP utility token equivalent to the maturity of the original neuron. In fact, the new tokens are minted and transferred to the new account, which is also recorded in the ledger canister. The new neuron has a small dissolve delay of 7 days. This means that users only need to wait a short amount of time to be able to unlock the tokens and use them freely, no matter what dissolve delay the original neuron has.&lt;br /&gt;
# &#039;&#039;&#039;Merge maturity&#039;&#039;&#039;: A neuron holder can choose to [[merge maturity]] to reinvest the voting rewards in the existing neuron. This neuron operation adds the ICP utility token equivalent of the maturity to the neuron&#039;s stake and adjusts the neuron&#039;s age accordingly. Effectively this means that the maturity is reinvested in the neuron and contributes to the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
= Cycles Minting Canister and Cycles&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt; =&lt;br /&gt;
Besides governance participation and voting rewards, tokens can also be converted into cycles, which fuel computation and storage on the Internet Computer. Each canister on the Internet Computer, except for those on the NNS, uses cycles for computations and has some cycles stored within it. While the token price may vary over time, the goal of the cycles is to keep the price of computation roughly consistent over time.&lt;br /&gt;
&lt;br /&gt;
The canister responsible for converting ICP utility tokens into cycles is the &#039;&#039;Cycles Minting Canister.&#039;&#039; To convert cycles for creating or topping-up a canister, a user needs to send ICP utility tokens to the Cycles Minting Cansiter. This canister then burns the tokens and mints the cycles. &lt;br /&gt;
&lt;br /&gt;
The Cycles Minting Cansiter only facilitates the conversion of ICP utility tokens to cycles but not the other way around. Cycles are burned in canisters when they use computation and storage over time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Consider User E who runs a canister on the Internet Computer and would like to top up the cycles of this canister so that it can perform even more computations. Also assume that this canister currently has 700 trillion cycles and User E would like to increase this number by 200 trillion. To do so, the user would send a command to the NNS that specifies the action of topping up their canister. Upon receiving this command, a transaction is made from the user’s account to the Cycles Minting Canister. As a result of this transaction, the Cycles Minting Canister would burn the tokens, mint new cycles, and send these freshly minted cycles to the user’s canister, meaning the canister balance is now 900 trillion cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;/div&gt;</summary>
		<author><name>LaraAS</name></author>
	</entry>
	<entry>
		<id>https://wiki.internetcomputer.org/w/index.php?title=Governance_of_the_Internet_Computer&amp;diff=1128</id>
		<title>Governance of the Internet Computer</title>
		<link rel="alternate" type="text/html" href="https://wiki.internetcomputer.org/w/index.php?title=Governance_of_the_Internet_Computer&amp;diff=1128"/>
		<updated>2021-12-13T15:04:41Z</updated>

		<summary type="html">&lt;p&gt;LaraAS: Reorganised this page so that the logic follows the different canisters. Added information regarding different things, in particular: list of all relevant canisters, added information regarding neuron attributed, proposal lifecycle, liquid democracy,updated info on what can be done with maturity (was outdated), added links where I think new &amp;quot;how to&amp;quot; pages should be added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A key feature of the Internet Computer blockchain is the Network Nervous System (NNS)&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;, an open algorithmic governance system that oversees the network and the token economics that make it possible to build DeFi and dapps, open internet services, and enterprise systems that are capable of operating at hyperscale.&lt;br /&gt;
&lt;br /&gt;
Holders of the Internet Computer’s ICP utility tokens can lock their tokens in &#039;&#039;neurons&#039;&#039; to participate in governance and contribute to decision-making, such as voting to determine whether or not a new collection of nodes (also called a subnet) should be added to the network. By participating in governance, voters earn &#039;&#039;rewards&#039;&#039;. They can use these rewards, or otherwise procured ICP utility tokens, to fuel the computations of their canisters.&lt;br /&gt;
&lt;br /&gt;
=== Why the Internet Computer needs a Network Nervous System&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt; ===&lt;br /&gt;
The Internet Computer is a distributed protocol run by a network of node machines, which are hosted in different data centers. The nodes communicate with one another over the internet to achieve a consensus on what the Internet Computer’s state should be. A collection of nodes engaging in consensus is called a subnet. On top of this underlying communication and consensus protocol, the Internet Computer hosts &#039;&#039;canisters&#039;&#039;, which are stateful programs that can also communicate with each other. The state of all of the canisters has to be replicated across all of the nodes. Therefore, to allow the Internet Computer to scale indefinitely, the network is made up of not just one subnet, but multiple subnets.&lt;br /&gt;
&lt;br /&gt;
Different subnets can communicate with one another, enabling canisters that are hosted on different subnets to also communicate with each other. For the Internet Computer to scale on-demand, the network must be able to add new subnets over time to increase compute capacity. Moreover, the robustness of the subnets can be improved by adding new nodes to them over time. Eventually, the Internet Computer will run millions of nodes at scale. This means that there needs to be a mechanism by which the nodes and subnets are organised, tracked, and managed. For example, decisions must be made about when subnets and nodes should be added or removed. In addition, the Internet Computer was launched with an initial feature set, which evolves over time. Therefore, the Internet Computer needs to be able to make decisions on how to evolve the protocol in a distributed manner.&lt;br /&gt;
&lt;br /&gt;
=Network Nervous System overview=&lt;br /&gt;
&lt;br /&gt;
The Network Nervous System, or “NNS”, is a tokenised open governance system that is responsible for managing the Internet Computer. For example, it stores information about what nodes belong to which subnet. It also makes decisions about how to update this information.&lt;br /&gt;
&lt;br /&gt;
The NNS is realised by a set of &#039;&#039;[[canisters]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;List of the NNS canisters&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Ledger canister:&#039;&#039;&#039; The ledger canister stores  a. the ICP utility &#039;&#039;token balance&#039;&#039; of each principal and   b. the history of ICP &#039;&#039;transactions&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Governance canister:&#039;&#039;&#039; The two most important concepts that the governance canister stores are  a. &#039;&#039;Proposals&#039;&#039;, which are suggestions for how the Internet Computer should be changed. These proposals can then be voted on.   b. &#039;&#039;Neurons&#039;&#039;, which determine who is allowed to participate in governance.&lt;br /&gt;
# &#039;&#039;&#039;Registry canister:&#039;&#039;&#039; This canister stores the configuration of the whole Internet Computer that can then be looked up by others. As an example, it stores which nodes belong to a certain subnet.&lt;br /&gt;
# &#039;&#039;&#039;Cycles minting canister&#039;&#039;&#039;: This canister is responsible for minting &#039;&#039;cycles&#039;&#039;, the fuel for canisters for computations and data storage. It is therefore involved in the initialisation of canisters as well as when canisters are topped-up with additional cycles.&lt;br /&gt;
# &#039;&#039;&#039;Root canister&#039;&#039;&#039;: The root canister is the controller of all other NNS canisters and responsible for upgrading them.&lt;br /&gt;
# &#039;&#039;&#039;Lifeline canister&#039;&#039;&#039;: The lifeline canister is the controller of the root canister and responsible for upgrading it. &lt;br /&gt;
# &#039;&#039;&#039;Genesis token canister:&#039;&#039;&#039; This is the canister that was used to initialise the neurons that already existed during genesis.&lt;br /&gt;
&lt;br /&gt;
The canisters that users of the Internet Computer are interacting with most are the first two: the ledger canister for making transactions, and the governance canister for staking tokens and submitting and voting on proposals.&lt;br /&gt;
&lt;br /&gt;
= Ledger canister &amp;amp; ICP utility tokens in the NNS =&lt;br /&gt;
[[ICP token|ICP utility tokens]] are managed by the ledger canister, which stores two things: accounts and transactions. An account record keeps track of how many tokens are in the possession of a given [[principal]] (i.e., an identity by which a user is authenticated on the Internet Computer). Tokens can then be sent from one account to another, and this is recorded in the transactions of the ledger canister.&lt;br /&gt;
&lt;br /&gt;
In the NNS, ICP utility tokens are used for three different things:&lt;br /&gt;
&lt;br /&gt;
# ICP tokens facilitate &#039;&#039;&#039;participation in governance&#039;&#039;&#039; (more below on how the neurons are connected with the tokens).&lt;br /&gt;
# Those who participate in governance and those who provide compute capacity by operating note machines are &#039;&#039;&#039;rewarded&#039;&#039;&#039; in ICP tokens.&lt;br /&gt;
# ICP tokens are used for &#039;&#039;&#039;conversion into cycles&#039;&#039;&#039;, which are fuel for canisters for computations and data storage.&lt;br /&gt;
&lt;br /&gt;
=Governance Canister=&lt;br /&gt;
&lt;br /&gt;
The governance canister is responsible for holding &#039;&#039;neurons&#039;&#039;, determining who is allowed to participate in governance. Moreover, it stores proposals, which are suggestions how how the Internet Computer should be changed, and the information associated with proposals that decides if these suggestions should be implemented. If a proposal is adopted, the governance canister automatically executes the decision. Finally, the governance canister distributes rewards to those neurons who participated in voting and contributed to the decision making.&lt;br /&gt;
&lt;br /&gt;
== Neurons ==&lt;br /&gt;
Neurons contain &#039;&#039;locked&#039;&#039; ICP utility tokens. This means that these tokens are not liquid and cannot be transferred freely to others.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Neuron Attributes&#039;&#039;&#039; ===&lt;br /&gt;
Each neuron stores a number of neuron attributes. Some of the most important ones are the following:&lt;br /&gt;
&lt;br /&gt;
* how many ICP tokens are &#039;&#039;locked&#039;&#039; in the neuron. This information is accessible both by a neuron referencing an account on the ledger canister that stores the neuron&#039;s balance and by a cached stake on the governance canister.&lt;br /&gt;
* a &#039;&#039;controller&#039;&#039; as a principal ID, which identifies a public key&lt;br /&gt;
* a unique &#039;&#039;neuron ID&#039;&#039;&lt;br /&gt;
*the neuron&#039;s &#039;&#039;dissolve delay.&#039;&#039; Intuitively, the dissolve delay defines the earliest time when the locked ICP tokens can be unlocked. This time can be increased to up to 8 years but it can only be decreased by waiting for time to pass. A neuron can either be &#039;&#039;non-dissolving&#039;&#039;, &#039;&#039;dissolving&#039;&#039;, or &#039;&#039;dissolved.&#039;&#039; If a neuron is non-dissolving, its set dissolve delay is kept stable and the timer is not running down. The neuron can then be set to dissolving, which means that the dissolve delay is decreasing with the time. Finally, if a the dissolve delay reaches 0, the neuron is dissolved and the locked tokens can be transferred out of the neuron. &lt;br /&gt;
*the &#039;&#039;age&#039;&#039;, which is between 0 and 4 years. A neuron&#039;s age determines the time since when then neuron has last entered the non-dissolving state.&lt;br /&gt;
A neuron&#039;s dissolve delay determines a neuron&#039;s &#039;&#039;eligibility&#039;&#039; to participate in voting. Namely, only those neurons with tokens locked for at least six months are eligible to participate in governance. This should incentivise neuron holders to vote such that the value of their tokens is maximised for a future date. If the value of the tokens is a rough proxy for the network’s success, this incentivises neuron holders to vote in the long-term interest of the Internet Computer.&lt;br /&gt;
&lt;br /&gt;
A neuron&#039;s &#039;&#039;voting power&#039;&#039; depends on how many tokens a neuron has locked, as well as the neuron&#039;s dissolve delay and age. Intuitively, those who are more committed to the Internet Computer, as they have locked their tokens for longer or have already staked them for a long time, have more voting power. In particular, the voting power is computed as the number of staked ICP utility tokens that is multiplied by a factor of up to 2 depending on the dissolve delay (which is between 0 and 8 years) and by a factor of up to 0.25 due to the age (between 0 and 4 years).&lt;br /&gt;
&lt;br /&gt;
Finally, the number of rewards that each neuron receives depends on the number of votes that the neuron participated in as well as the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
===How to lock tokens in a neuron&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
As a user, there are different [[ICP staking options]] to stake ICP utility tokens in a neuron. The effect of such an operation is that these ICP tokens are transferred to a ledger account that is associated with a newly created neuron. The tokens are thus locked and cannot be used freely by the neuron holder.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s assume that User B, who has an account (A1) on the ledger canister, would like to lock a hundred tokens in a neuron. To do so, User B sends a command to the NNS specifying the number of tokens and User B’s corresponding principal ID.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;A transaction is then recorded on the ledger, which specifies that some tokens are sent from the original account (A1) of the user to a new account (A2), which also creates the new account (A2) that holds the locked tokens. A new neuron is created in the governance canister that specifies that User B is the one controlling this neuron and that specifies that the amount of locked tokens is defined by the new ledger account A2.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Externally, it’s not visible that the new account (A2) holds locked tokens or is in any way related to the original account (A1). Nevertheless, this account is in fact controlled by the neuron, which means that the tokens are not liquid and that User B cannot transfer the tokens or convert the tokens into cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The main reason for a user to lock tokens in a neuron is to be able to participate in voting and get voting rewards. Both are described in more detail below.&lt;br /&gt;
&lt;br /&gt;
== Proposals ==&lt;br /&gt;
Intuitively, a proposal is a suggestion how the Internet Computer should be changed. More technically, a proposal describes a &#039;&#039;method&#039;&#039; in a canister that is called if the proposal is accepted. Moreover, it describes the &#039;&#039;parameters&#039;&#039; with which the method will be called.&lt;br /&gt;
&lt;br /&gt;
The Internet Computer supports a variety of different proposal &#039;&#039;topics&#039;&#039;. Here are some non-exhaustive examples of topics that are supported in the NNS governance canister:&lt;br /&gt;
* #SubnetManagement Proposals: This considers topology changes. The example proposal above about whether a node should be added to a subnet falls into this category.&lt;br /&gt;
* #NodeAdmin Proposals: This concerns the administration of node machines. An example of a proposal could specify that all of the nodes in a subnet should be updated.&lt;br /&gt;
* #NetworkEconomics Proposals: This concerns the administration of network economics. For example: what rewards should be paid to the node machine providers?&lt;br /&gt;
*#Motion Proposals: These proposals do not have a direct execution of a method as a consequence but are merely there to record the opinion of the community on a specified matter.&lt;br /&gt;
&lt;br /&gt;
== Voting and proposal lifecycle ==&lt;br /&gt;
&lt;br /&gt;
=== Submitting a proposal ===&lt;br /&gt;
Any eligible neuron can [[submit a proposal]]. To avoid being inundated by useless proposals, a user submitting a proposal has to pay a small fee when submitting a proposal, that they will receive back if the proposal is adopted (but that they will not receive back if the proposal is rejected).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Let’s consider a User C who would like to suggest that a new subnet is created that initially consists of two nodes: Node 1 and Node 2. Once User C controls a neuron, they can submit a proposal by specifying their neuron ID, the type of proposal that they would like to submit, and the proposal’s parameters. In our example, the proposal specifies that a new subnet should be created and the proposal&#039;s parameters consist of the initial nodes Node 1 and Node 2. Upon the receipt of this proposal, the governance canister first checks that this user is indeed the one controlling the neuron with the given ID and that this neuron is eligible to vote. If the requirements are met, the proposal is added to the governance canister.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
After a proposal is submitted by an eligible neuron, the proposal is created and stored in the governance canister. Moreover, the governance canister computes and stores additional information with each proposal. First, the [[voting power]] of each neuron is computed and stored together with the proposal. The sum of all of these voting powers also determines the &#039;&#039;total voting power&#039;&#039; associated with a given proposal.&lt;br /&gt;
&lt;br /&gt;
When a new proposal is created, the number of “yes” votes associated with the proposal is already increased by the proposer’s voting power. This reflects that the proposal already has the support of the user submitting it.&lt;br /&gt;
&lt;br /&gt;
Moreover, each proposal has an associated &#039;&#039;voting period,&#039;&#039; which determines the period of time over which votes for this proposal are accepted.&lt;br /&gt;
&lt;br /&gt;
=== Viewing NNS Proposals ===&lt;br /&gt;
You can see all the NNS proposals on the Internet Computer dashboard: https://dashboard.internetcomputer.org/governance&lt;br /&gt;
&lt;br /&gt;
===Discussing NNS Proposals===&lt;br /&gt;
&lt;br /&gt;
A lot of NNS proposals are discussed on the developer forum: https://forum.dfinity.org/c/roadmap/29&lt;br /&gt;
&lt;br /&gt;
Notable examples:&lt;br /&gt;
* Direct integration with Bitcoin: https://forum.dfinity.org/t/direct-integration-with-bitcoin/6147&lt;br /&gt;
* Increasing smart contract memory: https://forum.dfinity.org/t/increased-canister-smart-contract-memory/6148&lt;br /&gt;
&lt;br /&gt;
===Voting on a proposal===&lt;br /&gt;
After a proposal is submitted and added to the governance canister, other users who control neurons can [[ICP voting options|vote on the proposal]]. Currently, the most user-friendly way to vote on NNS proposals is via the NNS Frontend dapp: https://nns.ic0.app/. For voting, users would first learn which are the open proposals on the governance canister that they can actually vote on. This information is available, for example on Internet Computer dashboard: https://dashboard.internetcomputer.org/governance or in the [[NNS frontend dapp]]. &lt;br /&gt;
&lt;br /&gt;
If a neuron votes in favour of a proposal, the governance canister adds this neuron’s voting power, as stored with the proposal, to the “Yes”-votes associated with the proposal. Likewise, if a neuron votes against a proposal, the governance canister adds the neuron’s voting power to the “No”-votes of the proposal.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Assume that a given User D would like to reject the proposal that was just added by User C. To do so, User D would send their neuron ID and a “no” vote to the governance canister. The governance canister would check that the vote is coming from the correct user who controls the neuron and confirm that the neuron is eligible to vote. If the conditions are met, the governance canister would then add the voting power of User D to the “no” votes.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Neuron following and liquid democracy====&lt;br /&gt;
&lt;br /&gt;
Users may not have the time or knowledge to participate in all voting decisions. Therefore, instead of directly voting on proposals, neuron holders may choose to delegate their vote to other neurons that they trust with certain decisions. This concept of delegating the right to vote to other voters who then effectively vote with more voting power is called &#039;&#039;liquid democracy.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Concretely, for each proposals topic a neuron can [[How to follow neurons|specify a set of other neurons that it would like to &#039;&#039;follow&#039;&#039;]] &#039;&#039;(so-called followees)&#039;&#039;. In addition, a neuron can specify a set of followees for &amp;quot;all other topics&amp;quot; that are not covered by specific rules. The governance canister keeps track of this relation of follower and followee neurons. It then automatically casts a vote for a follower neuron based on the decision of the followees. In particular, if more than 50% of the followees vote &amp;quot;yes&amp;quot;, then a &amp;quot;yes&amp;quot; vote is cast for the follower and if at least 50% of the followees vote &amp;quot;no&amp;quot;, then a &amp;quot;no&amp;quot; vote is cast for the follower. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;. &#039;&#039;Consider neuron N1 that follows the set of neurons {N2, N3, N4, N5} on all proposal topics. Consider now that a proposal is submitted by another neuron N6. Assume in a first scenario that first N2 votes &amp;quot;No&amp;quot; and then N3 votes &amp;quot;No&amp;quot; on the proposal. In that case, the governance canister will also send a &amp;quot;No&amp;quot; vote for N1 two out of four followees voted &amp;quot;No&amp;quot; (which also means that it is not possible anymore to get more than 50% &amp;quot;Yes&amp;quot; votes). Assume a second scenario where N2 votes &amp;quot;Yes&amp;quot; and then N3 votes &amp;quot;Yes&amp;quot; on the proposal. In that case, no vote is sent yet for N1. However, if either N4 and N5 also send a &amp;quot;Yes&amp;quot; vote, a &amp;quot;Yes&amp;quot; vote is also cast for N1.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This liquid democracy has great advantages. First, it allows even neurons that do not have enough knowledge of a certain topic to nevertheless participate in governance by choosing the neurons that they trust with certain decisions and by delegating their vote to them. In particular, a neuron can choose a different set of followees for different topics. Moreover, this mechanism allows neuron holders to get voting rewards from voting participation even if they do not have time to actively participate in all voting decision.&lt;br /&gt;
&lt;br /&gt;
=== Proposal decision and wait-for-quiet ===&lt;br /&gt;
A proposal can be &#039;&#039;decided&#039;&#039; in two ways:&lt;br /&gt;
# &#039;&#039;&#039;Absolute Majority before the voting period ends&#039;&#039;&#039;: At any point, even before the voting period ends, if an absolute majority (more than half of the total voting power stored in the proposal) has voted Yes, then the proposal is adopted and if an absolute majority has voted No, then the proposal is rejected.&lt;br /&gt;
# &#039;&#039;&#039;Simple Majority at the voting period’s end&#039;&#039;&#039;: When the voting period ends, if a simple majority (more than half of the cast votes) has voted Yes and the number of these Yes-votes constitute at least 3% of the total voting power, then the proposal is adopted. Otherwise, the proposal is rejected.&lt;br /&gt;
&lt;br /&gt;
What also plays into this is the fact that the governance voting algorithm also applies &#039;&#039;wait-for-quiet&#039;&#039;. The idea of wait-for-quiet is to decide proposals quickly when all voters agree, but increase the time that neurons can vote for proposals that are controversial. That means that the voting period can be dynamically increased, depending on the neurons’ votes. In particular, each time a proposal’s outcome is turned (either a Yes-majority is turned to a No-majority or vice versa), the proposal’s deadline is increased. Currently, a proposal&#039;s initial voting period is 4 days and can be increased by at most another 4 days. That is, the voting period that is taken into account for the above rules can be between 4 and 8 days, depending on the voting activity.&lt;br /&gt;
&lt;br /&gt;
=== Proposal execution ===&lt;br /&gt;
Recall that a proposal defines a method, a canister, and some parameters. As soon as a proposal is adopted, the defined method on the specified canister is called with the given parameters. This is done fully automatically by the governance canister. &lt;br /&gt;
&lt;br /&gt;
== Voting Rewards ==&lt;br /&gt;
Contributing to decision-making is one incentive for voters to lock their neurons, but they are also &#039;&#039;rewarded&#039;&#039; for participating in network governance.&lt;br /&gt;
&lt;br /&gt;
Specifically, each day the governance canister considers which proposal can be settled. It is then considered for each neuron in how many proposals they participated and with which voting power. Depending on this, the neurons get rewarded. Concretely, rewards are added to a neuron&#039;s attributed that is called &#039;&#039;maturity.&#039;&#039; Maturity represents ICP utility token that are not yet minted. &lt;br /&gt;
&lt;br /&gt;
A neuron holder can then profit from the maturity in two ways:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Spawn maturity:&#039;&#039;&#039; A neuron holder can choose to [[How to spawn a neuron|spawn a new neuron]] to get liquid ICP utility tokens worth the voting rewards. Spawning a new neuron has the effect that a new neuron with a new associated account on the ledger will be created, which contains the amount of staked ICP utility token equivalent to the maturity of the original neuron. In fact, the new tokens are minted and transferred to the new account, which is also recorded in the ledger canister. The new neuron has a small dissolve delay of 7 days. This means that users only need to wait a short amount of time to be able to unlock the tokens and use them freely, no matter what dissolve delay the original neuron has.&lt;br /&gt;
# &#039;&#039;&#039;Merge maturity&#039;&#039;&#039;: A neuron holder can choose to [[merge maturity]] to reinvest the voting rewards in the existing neuron. This neuron operation adds the ICP utility token equivalent of the maturity to the neuron&#039;s stake and adjusts the neuron&#039;s age accordingly. Effectively this means that the maturity is reinvested in the neuron and contributes to the neuron&#039;s voting power.&lt;br /&gt;
&lt;br /&gt;
= Cycles Minting Canister and Cycles&amp;lt;ref&amp;gt;https://medium.com/dfinity/the-network-nervous-system-governing-the-internet-computer-1d176605d66a&amp;lt;/ref&amp;gt; =&lt;br /&gt;
Besides governance participation and voting rewards, tokens can also be converted into cycles, which fuel computation and storage on the Internet Computer. Each canister on the Internet Computer, except for those on the NNS, uses cycles for computations and has some cycles stored within it. While the token price may vary over time, the goal of the cycles is to keep the price of computation roughly consistent over time.&lt;br /&gt;
&lt;br /&gt;
The canister responsible for converting ICP utility tokens into cycles is the &#039;&#039;Cycles Minting Canister.&#039;&#039; To convert cycles for creating or topping-up a canister, a user needs to send ICP utility tokens to the Cycles Minting Cansiter. This canister then burns the tokens and mints the cycles. &lt;br /&gt;
&lt;br /&gt;
The Cycles Minting Cansiter only facilitates the conversion of ICP utility tokens to cycles but not the other way around. Cycles are burned in canisters when they use computation and storage over time. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example.&#039;&#039;&#039; &#039;&#039;Consider User E who runs a canister on the Internet Computer and would like to top up the cycles of this canister so that it can perform even more computations. Also assume that this canister currently has 700 trillion cycles and User E would like to increase this number by 200 trillion. To do so, the user would send a command to the NNS that specifies the action of topping up their canister. Upon receiving this command, a transaction is made from the user’s account to the Cycles Minting Canister. As a result of this transaction, the Cycles Minting Canister would burn the tokens, mint new cycles, and send these freshly minted cycles to the user’s canister, meaning the canister balance is now 900 trillion cycles.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;/div&gt;</summary>
		<author><name>LaraAS</name></author>
	</entry>
</feed>