Polkadot is now supported on the Ledger Nano S & Ledger Nano X. This means that you can now use these hardware wallets to secure your $DOT holdings. You can interact with the Polkadot blockchain through a User Interface such as Polkadot JS and your Ledger device, adding an additional layer of security.
In this step-by-step guide, you will learn how to use a Ledger Nano X with Polkadot JS as well as how to stake on Polkadot using a Ledger. While we were using a Ledger Nano X, the process when using a Ledger Nano S is the same.
This guide is divided into three parts:
- Setting up your Ledger device
- Importing your Ledger account into Polkadot JS
- Staking on Polkadot using your Ledger device
Before getting started, make sure to have the Ledger Live App installed on your computer. Furthermore, make sure the Ledger device runs the latest firmware — you can update your device through ledger live.
Step 1: setting up your Ledger device
Connect your Ledger to your computer. Unlock the device by entering your PIN. Then open the Ledger Live App on your computer and allow Ledger Live on your Ledger device.
Visit the “Manager” tab in the menu on the left on Ledger Live and search for “Polkadot”. Then click “install”. You will now find the Polkadot App icon on your device.
Step 2: importing your Ledger account into Polkadot JS
Visit Polkadot JS and head over to the “Settings” tab in the menu bar at the top. In the drop-down menu under “manage hardware connections” select “Attach Ledger via WebUSB”. Then click “Save” in the bottom right corner.
Please note that there is no Ledger support on FireFox — we highly suggest using the Chrome or Brave browser.
Open the Polkadot app on your ledger device. Afterward, head over to the “Accounts” section on Polkadot JS and click “Add via Ledger” to connect your device. This will open a pop-up window with several options.
- Name your account.
- In the first dropdown menu, you can select an account type. Depending on which account type you choose, you will see different addresses later on. The account type defines the derivation path. With each type, you can choose different addresses (second dropdown menu).
- In the second drop-down menu, you can choose an address index.
Type & index define your address and you can have multiple accounts on your one Ledger device depending on which type & index you choose — if you’re not sure what to choose, go with the default (0/0).
You might have to approve the connection of your ledger through a pop-up in your browser.
You will now find your Polkadot Ledger Account at the bottom of your accounts list. You find out the account address of your Ledger account by clicking on it. In the sidebar, you can also rename your ledger account according to your preferences by clicking the edit icon. Alternatively, you can directly copy the account address by clicking the icon to the left of your account name.
You can always prompt your ledger to display your Polkadot address on the device itself by clicking the three dots and then choosing “Show address on hardware device”. Confirm that it displays the same address as shown on Polkadot JS and then click “Approve” on your ledger device.
Properly fund your account, so that you can use it to stake with. Simply copy it’s address and withdraw to it from the exchange on which you bought your DOT tokens or send some funds over from another wallet.
Step 3: staking on Polkadot using your Ledger device
As of now, batch transactions are not supported on the Ledger device. Therefore, you have to execute two transactions when using a ledger account for staking.
Visit the “Staking” menu under the “Networks” tab on Polkadot JS.
In the staking menu, head over to “Account actions” and then click on “+ Stash”.
In the pop-up menu, you can choose which account you want to use as your Stash and Controller account respectively. We recommend using your Ledger account as your Stash account as it adds another layer of security. You can choose another account for your controller account, this way you would not need your Ledger device to perform any actions on your account.
However, given that it is safer to use a hardware wallet, we chose the Ledger account for our Controller as well. Please note that currently, batch transactions are not supported on your Ledger device. Therefore, you might run into issues when trying to claim your rewards. If this is the case, you can switch your controller account to a non-ledger account to claim your rewards.
Choose a destination account for your rewards under “payment destination”. Then click “next” to bond your token.
Make sure to leave at least 1.5 DOT unbonded! Accounts with a balance of less than 1 DOT get reaped! Leaving a bit more unbonded grants you with enough funds to pay for transaction fees.
Click “Bond” and in the following pop-up click “Sign and Submit”. You are then prompted to confirm this transaction on your Ledger device.
After you successfully bonded, you will find your Ledger Account under “Account actions” in the “Staking” menu on Polkadot JS. Click “Nominate” to start the nomination process.
You can nominate up to 16 validators. Simply select the validators of your choice by clicking on them in the “candidate accounts” box. You can unselect them from the “nominated accounts” box by clicking on them again. Alternatively, you can also use the search bar in the top to look for specific validators by name or address. Then click “Nominate” and then “Sign and Submit” in the following pop-up menu. You then need to approve the transaction on your ledger to finish the nomination process.
Please note that you cannot specify the amount delegated to a particular validator. Your bonded DOTs will be spread out among the validators you selected according to the NPoS algorithm.
Our validator addresses:
Staking Facilities #1
Staking Facilities #2
And that’s it, you are now a Nominator on the Polkadot network — congratulations! We have written another guide in which you learn how to create Polkadot accounts using the Polkadot Browser Plugin. You can find the guide here.
You can perform actions on your account such as unbonding, staking more DOTs, or changing nominations under the “Account actions” section of the “Staking” menu on Polkadot JS.