Skip to main content

Voting on proposals

Intermediate
Tutorial
Since version1.7.0
Idempotent?Yes
Minimal access levelhotkey

This section will show you how to use Rosetta to vote on existing proposals.

Fetch existing proposals

First you will need to know which proposals currenty exist on the NNS. You can read up on how to do this here. If you already know the proposal id you want to vote on you can also fetch the information about the proposal to check that what your are voting on is what you expected.

Vote on a proposal

In this tutorial you will be voting on the proposal with the proposal id 12. You also have to decide on what to vote, meaning:

  • Register a vote, but neither vote for nor against the proposal: 0
  • Vote for the proposal to be adopted: 1
  • Vote for the proposal to be rejected: 2

In this case, you will be voting against the proposal. An example call for the construction/payloads endpoint resembles the following:

curl --location '0.0.0.0:8081/construction/payloads'  --header 'Content-Type: application/json' --data '{
"network_identifier": {
"blockchain": "Internet Computer",
"network": "00000000000000020101"
},
"public_keys": [
{
"hex_bytes": "047a83e378053f87b49aeae53b3ed274c8b2ffbe59d9a51e3c4d850ca8ac1684f7131b778317c0db04de661c7d08321d60c0507868af41fe3150d21b3c6c757367",
"curve_type": "secp256k1"
}
],
"operations": [
{
"operation_identifier": {
"index": 0
},
"type": "REGISTER_VOTE",
"account": {
"address": "8b84c3a3529d02a9decb5b1a27e7c8d886e17e07ea0a538269697ef09c2a27b4"
},
"metadata": {
"neuron_index": 1,
"proposal": 12,
"vote": 2
}
}
],
"metadata": null
}'