Updated: Sep 22, 2021
Hello, friends! This is James Agenda here.
Since the beginning of the year, we can now use the hardware wallet Ledger to stake DOT and KSM.
I strongly recommend you keep your funds in a hard wallet, especially if you have a high volume of DOT or KSM.
But there are some problems that you need to be aware of when using Ledger hardwallet to stake DOT or KSM.
Here are my four pieces of advice to avoid problems when you are staking DOT or KSM using Ledger:
Differences on Ledger Nano S vs Ledger Nano X when Staking DOT
The first thing that you need to know is that there are differences between the two models.
And beyond Bluetooth and memory, there are also differences related to blockchains functions.
Ledger Nano X can sign some functions in the Polkadot blockchain that can't be signed by the Nano S model.
For example, when staking you can change the Controller Account if you use the Ledger Nano X.
But you can't change the Controller Account if you use the Ledger Nano S model.
Despite those differences, both models can be used to stake.
To Stake Polkadot, use Ledger with Polkadot.js, not Ledger Live
Ledger Live software indeed has a cleaner design than Polkadot.js, which is Polkadot's official wallet.
Also, Ledger Live does not support Kusama yet.
So, for now, I suggest using Ledger Live software only to install Polkadot's (and Kusama's) application on the Ledger hardwallet.
After that, I recommend you use Polkadot.js since it also supports the Ledger hardwallet.
Choose wisely your Controller Account when Staking DOT using Ledger Nano S
When staking, you have to use a Stash Account and a Controller Account.
When staking DOT using Ledger Live, the same address will be set for both Stash Account and Controller Account.
But you may also choose to use your ledger hardwallet skipping the Ledger Live and staking directly on Polkadot.js.
In this case, you will be able to set different addresses for the Stash Account and the Controller Account.
While it’s still allowed to use the same address for Stash Account and Controller Account, Polkadot's guide recommends using separate addresses.
But the is a problem that you need to be aware of:
You can’t (at least not yet) signing the staking.setController(controller) function using the Ledger Nano S model.
This function is used on the blockchain by the Stash Account to redefine the Controller Account address.
So, in other words:
Once you set the Controller Account using your Ledger Nano S, you can’t easily change it.
If you want to change a Controller Account that you already set using Ledger Nano S, then your options are:
a) Use your seed directly on Polkadot.js
I strongly recommend you NEVER do it, except in extreme cases, since it will expose your Ledger's security.
b) Wait for Ledger.com to upgrade the hardware
c) Restarting the staking
You will need to Stop Staking (chill), unbond your funds, and wait the unbonding period of 28 days on Polkadot or 7 days on Kusama.
I already passed through this, and I chose option (c), which took me time, and I did not receive rewards while waiting for the unbonding period.
That's why I recommend you to take some time choosing wisely your Controller Account, so you do not need to change it after.
Or buy the Ledger Nano X model, which I also did.
How to receive Polkadot Staking Rewards in a specified payment account, using Ledger hardwallet?
Ledger hardwallets don't sign the staking.setPayee(payee) function to choose a specific wallet for receiving the staking rewards.
But there is a little trick that only works on Ledger Nano X.
If you want to receive in a specific address, instead of Stash Account or Controller Account, you can do the following steps:
Set the Staking using an address that is not on Ledger as a Controller Account.
Now you may change the payment to the specified address.
Finally, use Ledger Nano X to change your Controller account to an address on Ledger Hardwallet.
By doing those steps, you'll manage to have both your Stash and Controller on Ledger addresses and the staking rewards going to the specific address.
Bonus Advice: Start by Staking on Kusama first, then go Stake on Polkadot.
If it’s your first time staking using Ledger hardwallet:
I strongly recommend starting Staking with Kusama before doing it with Polkadot.
Kusama has very cheap fees, so you will spend much less while learning.
It also has a shorter unbond period than Polkadot, so you will be able to correct any eventual mistake faster.
If you don’t have KSM on your portfolio, buy some at Kraken.
After you are trained, then go Stake Polkadot using the Ledger hardwallet.
And always remember to avoid losing KMS or DOT by respecting the existential deposit!
To track how Ledger will update those subjects related to Polkadot and Kusama, subscribe for free and I will keep you informed.