quill neuron-manage
Signs a neuron configuration change.
Basic usage
The basic syntax for running quill neuron-manage
commands is:
quill neuron-manage [option] <neuron id>
Arguments
Argument | Description |
---|---|
<neuron id> | The id of the neuron to manage. |
Flags
Flag | Description |
---|---|
--add-hot-key <ADD_HOT_KEY> | Principal to be used as a hot key. |
-a , --additional-dissolve-delay-seconds <SECONDS> | Number of dissolve seconds to add. |
`--auto-stake-maturity enabled | disabled` |
--clear-manage-neuron-followees | Remove all followees for the NeuronManagement topic. |
--disburse-amount | Disburse only the selected amount. |
--disburse-to | Disburse to the selected NNS account instead of the controller. |
--disburse | Disburse the entire staked amount to the controller's account. |
--follow-neurons <FOLLOW_NEURONS>... | Defines the neuron ids of a follow rule. |
--follow-topic <FOLLOW_TOPIC> | Defines the topic of a follow rule as defined here. |
-h , --help | Displays usage information. |
--join-community-fund | Join the Internet Computer's community fund with this neuron's entire stake. |
--leave-community-fund | Leave the Internet Computer's community fund. |
--merge-from-neuron <MERGE_FROM_NEURON> | Merge stake, maturity and age from the specified neuron into the managed neuron. |
--refresh-followers | Refresh the neuron's voting power by reaffirming the current list of followers. |
--register-vote <PROPOSAL_ID>... [--reject] | Vote to approve (default) or reject proposal(s). |
--reject | Reject the proposal(s) specified with --register-vote . |
--remove-hot-key <REMOVE_HOT_KEY> | Principal hot key to be removed. |
`--set-visibility [public | private]` |
--spawn | Spawn rewards to a new neuron under the controller's account. |
--split <SPLIT> | Split off the given number of ICP from a neuron. |
--stake-maturity <STAKE_MATURITY> | Stake the percentage (between 1 and 100) of the maturity of a neuron. |
--start-dissolving | Start dissolving. |
--stop-dissolving | Stop dissolving. |
Examples
The quill neuron-manage
command has many uses, each operating on a neuron in a different way. The examples below will all operate on a hypothetical neuron 2313380519530470538.
To vote YES on a proposal such as 108005:
quill neuron-manage 2313380519530470538 --register-vote 108005
Or to vote NO on that same proposal:
quill neuron-manage 2313380519530470538 --register-vote 108005 --reject
This will produce a response like:
(
record {
command = opt variant {
RegisterVote = record {}
};
}
)
To follow another neuron, such as ICPMN, on a specific topic, such as Governance:
quill neuron-manage 2313380519530470538 --follow-neurons 4966884161088437903 --follow-topic 4
This will produce a response like:
(
record {
command = opt variant {
Follow = record {}
};
}
)
If a neuron does not take any action for more than 6 months, it will start losing voting power and thus voting rewards. To avoid that, neurons can vote directly or set which neurons they follow. To confirm the current following setting and refresh voting power without making any changes:
quill neuron-manage 2313380519530470538 --refresh-followers
This will produce a response like:
(
record {
command = opt variant {
RefreshVotingPower = record {}
};
}
)
To stake a neuron's maturity, for example 25% of it, increasing its voting power:
quill neuron-manage 2313380519530470538 --stake-maturity 25
This will produce a response like:
(
record {
command = opt variant {
StakeMaturity = record {
maturity_e8s = 750_000_000 : nat64;
staked_maturity_e8s = 250_000_000 : nat64;
}
};
}
)
"e8s" is a shorthand for meaning the number of 1e-8s, or one-hundred-millionths, of an ICP in integer form; this response must be divided by 100,000,000 to get the real maturity, which in this case would be 7.5 and 2.5.
To disburse a fully dissolved neuron, meaning to convert it into ICP and transfer it to its controller:
quill neuron-manage 2313380519530470538 --disburse
This will produce a response like:
(
record {
command = opt variant {
Disburse = record {
transfer_block_height = 5_581_035 : nat64;
}
};
}
)
The block height, also known as the block index, can be looked up on the IC dashboard.
To spawn a new neuron, meaning to convert all the maturity from this neuron into a new one (that can be disbursed after one week):
quill neuron-manage 2313380519530470538 --spawn
This will produce a response like:
(
record {
command = opt variant {
SpawnResponse = record {
created_neuron_id = opt record {
id = 4966884161088437902 : nat64;
};
}
};
}
)
To increase the neuron's dissolve delay, for example by a full year:
quill neuron-manage 2313380519530470538--additional-dissolve-delay-seconds 31536000
To start dissolving a neuron:
quill neuron-manage 2313380519530470538 --start-dissolving
Or to stop:
quill neuron-manage 2313380519530470538 --stop-dissolving
To enable auto-staking a neuron's maturity:
quill neuron-manage 2313380519530470538 --auto-stake-maturity enabled
Or to disable:
quill neuron-manage 2313380519530470538 --auto-stake-maturity disabled
To join the IC's community fund:
quill neuron-manage 2313380519530470538 --join-community-fund
Or to leave:
quill neuron-manage 2313380519530470538 --leave-community-fund
To add a neuron hotkey, such as (for example purposes) the management canister:
quill neuron-manage 2313380519530470538 --add-hot-key aaaaa-aa
Or to remove it:
quill neuron-manage 2313380519530470538 --remove-hot-key aaaaa-aa
These 'configuration' operations will all produce a response like:
(
record {
command = opt variant {
Configure = record {}
};
}
)
Remarks
As this is an update call, it will not actually make the request, but rather generate a signed and packaged request that can be sent from anywhere. You can use the --qr
flag to display it as a QR code, or if you are not working with an air-gapped machine, you can pipe it to quill send -
.
For more information about neurons, see Neurons; for more information about their role in the NNS, see Network Nervous System; for more information about the community fund, see Community Fund.