Tutorial: how to vote on the NNS

There are many exciting upcoming changes for ICP.

Some of you may be wondering how you can ensure going forward you get the most out of your NNS participation.

The Problem:

The NNS requires voters to be active participants, this is to ensure the best interest of the protocol, aligning incentives with longterm interests. However, the reality is that most users, even most developers, do not have the time or technical ability to evaluate every proposal.

Therefore we follow people on the NNS, trusting that they have our best interests at heart. In reality, as stakers, what we really care about are the incentives.

It’s possible that some participants may feel, that those they have been following might not actually have their best interests at heart. It’s possible that some may even be actively campaigning to divert a percentage of your depreciating slashed rewards, to their own neurons.

The Solution

You could log into the NNS every day and manually click the buttons over and over. However this creates an issue because it’s time consuming, and it also forces you to look at the value of your assets which may be psychologically troubling. Fortunately there’s another way.

Step 1.

If you havn’t already, install dfx. If you arn’t sure how you can find a tutorial in the official documentation.

Step 2.

Create your dfx identity, make sure you use --storage-mode=plaintext. This will prevent you from having to type a password everytime you issue a command, the reason for which will become clear soon.

Step 3.

Login to the NNS dapp and make your dfx identity a hotkey of your neuron. use the dfx identity get-principal command to retrieve your PID.

Step 4.

Simply run the following bash script once every 3 days. It will take care of voting for you. You never have to look at your account again, and you don’t need to worry that even one penny will go to a named neuron. Because really what this about is peace of mind



#!/bin/bash

# --- CONFIGURATION ---
NEURON_ID="YOUR_NEURON_ID"  # <--- Put your 2-year Neuron ID here
CANISTER_ID="rrkah-fqaaa-aaaaa-aaaaq-cai"

if [ "$NEURON_ID" == "YOUR_NEURON_ID_HERE" ]; then
    echo "Error: Please set your NEURON_ID in the script."
    exit 1
fi

echo "Fetching open proposals to reject..."

# 1. Get the IDs of all open proposals
# We use the same serialization-safe call from before
PROPOSAL_IDS=$(dfx canister --network ic call "$CANISTER_ID" list_proposals \
  "(record {
    include_reward_status = vec {1 : int32}; 
    omit_large_fields = opt true; 
    include_status = vec {1 : int32}; 
    before_proposal = null;
    limit = 100 : nat32;
    exclude_topic = vec {} : vec int32;
    include_all_manage_neuron_proposals = opt true;
  })" --output json | jq -r '.proposal_info[] | .id[0].id')

if [ -z "$PROPOSAL_IDS" ]; then
    echo "No open proposals found."
    exit 0
fi

# 2. Iterate and Vote
for PID in $PROPOSAL_IDS; do
    echo "Processing Proposal ID: $PID"
    
    # We call manage_neuron to register the vote
    # vote = 2 is REJECT
    dfx canister --network ic call "$CANISTER_ID" manage_neuron \
      "(record {
        id = opt record {id = $NEURON_ID : nat64};
        command = opt variant {
          RegisterVote = record {
            vote = 2 : int32;
            proposal = opt record {id = $PID : nat64}
          }
        }
      })"
      
    echo "Rejected $PID."
    sleep 0.5 # Small delay to be kind to the network/rate limits
done

echo "Done. All retrieved proposals have been rejected."
If you found this tutorial helpful, then you know that you shouldn't follow any named neurons.

Except for Wenzel, of course…it’s ok to follow Wenzel. He’s a good guy.

.

I’m glad this tutorial has interest, it’s been a while.

i need help its hard

No worries. I’m here to help you.

The original post is misguided.

There’s no need to trouble yourself with such difficulties. There are many sensible, credible, and reliable individuals who can handle this process for you.

They have taken the time to build tools that Look, Test, and Automate, so that you don’t need to.

They provide a valuable service that makes the NNS better. You never have to log in to vote or look at your account. You’re in good hands. Their efforts promote decentralization.

You can find the most reliable and credible ones near the top of the list on the new nns dapp.

"The truth is much darker than most think.

Most people don’t want freedom. They crave authority.

The ‘herd’ often seek authority, or blindly follow it, to avoid the responsibility of self mastery."

“As the snake devoured the sparrow with her brood, eight and the mother made the ninth, she’d borne them all.“

i still cant do it help

We that made me laugh out loud, maybe we need a hide asset button to save our stressed heart’ s from exploding

Dan you are absolutely cracking me up here. You have so many alts that I have no idea which one to tag. I’m seriously curious how you are doing it. Do you have an AI assistant set up for every personality on the forum that is trained how to talk and act just like them? These conversations you carry on with them are hilarious.

Dan @justaghost23 you need to write a skit impersonating Adam and Dom talking it out on the forum. That could be really funny.

Or maybe Adam and Donna where Donna is doing her best to keep Adam between the ditches. I can only imagine the conversations they have at home on occasion.

Hey, I don’t see any reason why anyone should interfere so much in someone else’s private life. You’re going too far, know your boundaries Wenzel. I hope this comes across well.

You have to Follow trusted “Known Neurons” :saluting_face:

Please explain exactly how I interfered in anyone’s private life and how I went too far.

Would you say that any of these proposals went too far?

You mean like “hey Adam, maybe you shouldn’t post defamatory comments when you have been formally asked not to in the past?” Sounds like the kind of conversation a wife would have with her husband when he is blatantly uncivilized and disrespectful to others. It’s not rocket science…lots of people care about this stuff.

Besides, you forgot to comment on whether or not those proposals went too far. Do you really think people don’t care about that stuff? Do you really think people don’t talk about it? Nobody in this ecosystem appreciates the embarrassment of such unprofessional behaviors.

LOL…“Wenzel spies”. You guys have such active imaginations.