Skip to main content

quill neuron-manage

Reference

Signs a neuron configuration change.

Basic usage

The basic syntax for running quill neuron-manage commands is:

quill neuron-manage [option] <neuron id>

Arguments

ArgumentDescription
<neuron id>The id of the neuron to manage.

Flags

FlagDescription
--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 enableddisabled`
--clear-manage-neuron-followeesRemove all followees for the NeuronManagement topic.
--disburse-amountDisburse only the selected amount.
--disburse-toDisburse to the selected NNS account instead of the controller.
--disburseDisburse 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, --helpDisplays usage information.
--join-community-fundJoin the Internet Computer's community fund with this neuron's entire stake.
--leave-community-fundLeave 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-followersRefresh 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).
--rejectReject the proposal(s) specified with --register-vote.
--remove-hot-key <REMOVE_HOT_KEY>Principal hot key to be removed.
`--set-visibility [publicprivate]`
--spawnSpawn 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-dissolvingStart dissolving.
--stop-dissolvingStop 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.