Steps to join the consensus and generating participation keys?

Hi guys! I read through the documents but failed to find detailed steps to stake my tokens.

let’s say now I have an account, how do I stake my tokens to another participation node?

BTW, I generated 5 public keys previously, what are they corresponding to? 5 wallets? or 5 accounts?

BTW 2, I thought every account has a private key, and every private key means a 25-word mnemonic. It turns out this is wrong ? !

Hello! To mark an account as participating, there’s a two-step process:

  1. Use goal account addpartkey to generate the participation keys this account will use when voting.
  2. Use goal account changeonlinestatus to issue a transaction that registers those participation keys to your account and marks your stake as “online” (i.e., participating).
    Once that transaction goes through, there’s a 320 round delay before your node starts participating.
    If at any point your node is going to go offline, be sure to mark your stake “offline” using goal account changeonlinestatus again (with -o 0 instead of -o 1), and note that there’s a 320 round delay before your node can stop participating.

There’s a step-by-step tutorial at
https://developer.algorand.org/docs/creating-new-account-and-participation-key
(The tutorial is for a private network; you’ll probably want to ignore the private network stuff and any commands starting with goal network. You should also replace ~/net1/Primary with the path to your datadir.)
See also https://developer.algorand.org/docs/goal-account#goal-account-changeonlinestatus and https://developer.algorand.org/docs/goal-account#goal-account-addpartkey

5 public keys = 5 accounts. An account is a keypair: a public key (which people can send money to) and a corresponding private key (which you use to spend money).
“wallet” is kind of an overloaded term, but in the context of e.g. goal wallet, wallets are collections of accounts. By default goal creates deterministic wallets, sort of like BIP32 (although it isn’t BIP32), so there’s one mnemonic that is used to deterministically generate all the accounts in the wallet. This means in order to back up all the accounts in the wallet it suffices to just back up (or write down, or memorize) the one mnemonic.

Just in case anybody else wants to know how to participate, I’ve described a step-by-step procedure for MainNet participation here: Newbie Getting Started

The tutorial was a little too concise for me, so I fleshed it out.

1 Like