Participate in Consensus from Ledger Nano S/X
In this tutorial, we show how to participate in consensus from an account stored in a Ledger Nano S or X. By participating in consensus, you help decentralize the network.
We highly recommend reading the Overview on Participating in Consensus before starting.
- A Ledger Nano S or X.
- A personal computer in which the Ledger Nano will be plugged.
- A server to participate in consensus. It is important however that as soon as you stop running your server (or as soon as your participation key expires), you mark yourself offline (see step 9). In the case where you have physical access to the server, you may use the same machine for your server and your personal computer.
- Familiarity with Algorand accounts.
- Familiarity with the Overview on Participating in Consensus.
- 1. Setup Ledger Nano
- 2. Install the Algorand Node Software on Your Server and Your Personal Computer
- 3. (Optional) Enable Telemetry on the Server
- 4. Wait until Your Server Is Fully Synced
- 5. Generate the Participation Key and Key Registration Transaction on Your Server
- 6. Connect the Ledger Nano to Your Personal Computer
- 7. Sign and Send the Key Registration Transaction on your Personal Computer
- 8. Check that Your Server is Participating
- 9. (If Needed) Register Offline
- 10. (If Needed) Renew Participation Key
1. Setup Ledger Nano
Setup your Ledger Nano and generate an Algorand account on it. First, follow the Getting Started guide from Ledger. Then install a wallet compatible with Ledger Live on your computer or smart phone, such as the Algorand Wallet and My Algo Wallet, or use the command line.
At the end of this step, you should have an Algorand account. You must add some Algos to this account. We will use
MY_ADDRESS to denote the address of this account.
2. Install the Algorand Node Software on Your Server and Your Personal Computer
Follow the instructions in the developer documentation for both your server and personal computer. In subsequent steps, we assume that
goal is in the
PATH , and the environment variable
ALGORAND_DATA points to a valid data folder.
If you are using the Debian package and the default data folder
ALGORAND_DATA=/var/lib/algorand, you will need to execute all the
goal commands as the user
algorand. For that purpose, you may want to run
alias goal="sudo -u algorand -E goal".
3. (Optional) Enable Telemetry on the Server
Enabling telemetry provides data to Algorand to improve the software and help identify issues. See the developer documentation for details on how to configure telemetry.
4. Wait until Your Server Is Fully Synced
To check if your server is fully synced, run the command
goal node status. Check that
Sync time is
0s and that
Last committed block matches the current round on a block explorer.
You may also want to check that you are on MainNet, by checking the
Genesis ID is
You do not need your personal computer to be fully synced, but it is more convenient to do so.
5. Generate the Participation Key and Key Registration Transaction on Your Server
On your server, generate a participation key and a key registration transaction:
$ goal account addpartkey -a MY_ADDRESS --roundFirstValid FIRST_VALID_ROUND --roundLastValid LAST_VALID_ROUND $ goal account changeonlinestatus --online=true -a MY_ADDRESS --fee 1000 --txfile online.tx
MY_ADDRESS should be replaced by your address,
FIRST_VALID_ROUND by the current round, and
FIRST_VALID_ROUND plus 3 million.
The participation key is generated in
$ALGORAND_DATA/mainnet-v1.0 (look for
The (unsigned) key registration transaction is generated in the current folder: it is the file
online.tx. Transfer this file
online.tx from your server to your personal computer
Your participation key will expire in 3 million rounds (i.e., about 5 months with current block speed). Recall that you must renew your participation key or register yourself offline before the round
LAST_VALID_ROUND (see steps 9 and 10).
6. Connect the Ledger Nano to Your Personal Computer
Connect the Ledger Nano to your personal computer, enter the PIN, and open the Algorand application. Run
goal wallet list and check to see a wallet with a name starting with
Ledger-Nano-. Write down the name of this wallet:
On macOS, you need to ensure that the Ledger Live application is closed, as only a single application can access the Ledger Nano at a time.
If you still do not see the Ledger Nano, make sure you’ve tried the steps on the ledger website to debug potential USB issues. If the USB connection has been verified, you can check the logs in
7. Sign and Send the Key Registration Transaction on your Personal Computer
On your personal computer, sign the file
online.tx (that you transferred from your server), and send it to the blockchain:
$ goal clerk sign -i online.tx -o online.sig -w NAME_OF_LEDGER_WALLET $ goal clerk rawsend -f online.sig
The first command requires you to verify the transaction on the Ledger Nano, by following the instructions displayed on the Ledger’s screen.
The second command sends the key registration transaction and registers your account online.
If your personal computer is not synced, you need to run the second command on the server (after transferring
online.sig to the server).
8. Check that Your Server is Participating
Depending on your stake, wait 30min or more and run
$ grep 'VoteBroadcast' $ALGORAND_DATA/node.log
9. (If Needed) Register Offline
If you want to stop participating in consensus (for example, if you want to decommission the serve) , you need to register offline beforehand, by sending, from the personal computer, an offline transaction:
$ goal account changeofflinestatus --online=false -a MY_ADDRESS --fee 1000 -w NAME_OF_LEDGER_WALLET
This command generates, signs, and sends the transaction. It is assuming that your personal computer is synced and the Ledger Nano is connected to it. You will need to to verify the transaction on the Ledger Nano, by following the instructions displayed on the Ledger’s screen.
If your personal computer is not synced, you will need to generate the transaction on the server, transfer the transaction to the personal computer, sign on the personal computer with Ledger Nano, transfer the signed transaction to the server, and finally send the transaction from the server (as in steps 5-7).
10. (If Needed) Renew Participation Key
It is important to renew the participation key long enough before expiration. The procedure is the same as for participating for the first time.
If you do not want to participate anymore, you must register offline (see previous step).
Note that the Algorand blockchain does not automatically register offline accounts with expired participation keys.