A Crystal-Clear Guide to Bonding KSMs/DOTs & Nominating Validators on Polkadot’s “CanaryNet”

Icons made by Smashicons and Dimitry Miroliubov

In Polkadot and Kusama, nomination is the process of staking your tokens behind a validator to earn rewards. Validators provide security to the network and support the production of new blocks.

In other DPoS networks, nomination is frequently called delegation, but we will use the Polkadot term nomination throughout our documentation for clarity and correctness.

Kusama is the beta “CanaryNet” for Polkadot. It is a separate network with its own native KSM token, which is different from the Polkadot network and its native DOT token. More information on Kusama can be found here. All of the mechanics described in this article apply to both Kusama and Polkadot, but always make sure you double-check which network you are performing actions on.

NOTE: This guide was produced in October 2019, prior to the launch of the Polkadot MainNet and during the soft launch period of Kusama, which has a number of restrictions. As a result, the examples on this page will use the Alexander TestNet to demonstrate the nomination process. The nomination process is the same across all three networks.

Setup: Things You Will Need

Before you get started staking your tokens on Kusama or Polkadot, you will need the following things which the rest of the guide assumes:

A stash and a controller account. For a discussion on stash and controller accounts, see this wiki article. You do not need a session account when nominating, as this is specific to performing the validator role in Polkadot.

and a account. For a discussion on stash and controller accounts, see this wiki article. You do not need a session account when nominating, as this is specific to performing the validator role in Polkadot. Access to the Polkadot JS UI. Make sure you are connected to the right network!

to the Polkadot JS UI. Make sure you are connected to the right network! Tokens for the network you want to stake on in the stash account, with a small amount in the controller account to handle transaction fees for operational staking actions.

Instructions to Nominate on Kusama or Polkadot

Connect to a Network

For purposes of this guide, we connected to the Alexander TestNet under Settings in the Polkadot JS UI. You will want to change this depending on which network you want to work with.

Log into the Polkadot JS UI.

2. Under the Settings tab, Choose Kusama from the dropdown if you want to stake your KSMs and choose Polkadot if you want to stake your DOTs.

You can create new accounts for your stash and controller accounts and transfer funds to them, or you can import already-existing accounts with funds. If you are using the Polkadot portal for the first time, you will see a banner asking you to add accounts.

The image below shows what the accounts look like under the Accounts area.

Bond Your Tokens

Staking on Polkadot and Kusama consists of bonding tokens followed by nominating one or more validators with the bonded tokens.

In order to bond your tokens, you will first want to decide how many tokens you want to stake. Make sure these tokens are in your stash account.

These tokens will need to be bonded (which prepares your tokens for staking). Be aware that staking tokens will lock them, so don’t bond tokens that you need immediate access to. It also puts them at risk if a validator that you nominated is slashed.

3. Open the Polkadot portal. Go to the Staking tab and click on the Account Actions tab.

4. Click the “New stake” button to bond your tokens for staking.

5. Specify your stash and controller accounts from the drop downs. In the value bonded field, put how many tokens you want to bond.

Pay special attention to the dropdown that specifies the units you are working with. In my case above I am bonding 0.45 testDots or 450 milliTestDots. It is very easy to make an off by 1000x mistake if you aren’t paying attention to the units.

6. Choose where to deposit your staking rewards from the “Payment Destination” dropdown.

In our case, we elected to deposit our staking rewards to the stash account and to increase the amount at stake. This will allow us to compound our earnings and maximize our return. However, you should choose the option that best suits your needs.

7. Hit the “Bond” button to proceed to the next step.

This screen summarizes the bonding action which you are about to execute. Above we are bonding 450 milliTestDots from the STASH-PSGUIDE account and specifying CONTROLLER-PSGUIDE as the controller account. We will pay an estimated 2.480 milliTestDot transaction fee from the stash account.

8. Fill in the password of the stash account and click the “Sign and Submit” button to execute the bonding transaction.

You will see status messages in the upper-right-hand corner of the application as the bonding action is being broadcast to the network.

When it is done you should see your bonded tokens under Account Actions.

Nominating Validators

Below are the bonded 450 milliTestDots with the associated stash and controller accounts.

You have the option to Set Session Key or Nominate. Set Session Key has to do with performing the validator function and is not needed for nominating validators, so we don’t need to worry about that here.

9. Click the gear icon. You will find management actions related to bonding, changing the controller account, and changing the rewards destination.

10. If you are happy with the options you selected when you set this up, click Nominate to nominate validators with your bonded tokens.

You can nominate up to 16 validators with your bonded tokens. When nominating more than one validator, Polkadot automatically handles how your tokens are allocated to validators. See here for a discussion of this algorithm.

11. Click to open the “Nominate the Following Addresses” dropdown. This will display a list of all the validators that can be nominated.

12. Select a nominator from the dropdown, or paste a validator address into the text field and click to select that validator. Clicking on it will add that validator to your select list of validators.

Selections can only be made by clicking on the drop down entries, so use the text filter to narrow the list and click on the drop down list entry corresponding to the validator you want to nominate.

ENTER THIS ADDRESS IF YOU’D LIKE TO NOMINATE PURESTAKE

GhoRyTGK583sJec8aSiyyJCsP2PQXJ2RK7iPGUjLtuX8XCn For more information, visit the PureStake Polkadot Validator page.

Below, we have specified a single validator to nominate.

13. When you have added your validator(s), click the “Nominate” button.

You will be asked to enter your password to confirm that you want to perform the nomination action.

14. Enter the password for your controller account to execute the nomination action and hit “Sign and Submit.” This will broadcast your nomination action to the network.

If your nomination was successful, you will a green “finalized” checkmark in the upper-right-hand corner of your screen, like the image below.

Note that the bonded tokens under Account Actions now say that they are nominating. The Set Session Keys and Nominate actions have been replaced with Stop Nominating. You can perform management actions such as changing your nominations by selecting the Change Nominee(s) option under the settings gear.

Congratulations! You have now staked your tokens and are helping to support the security of the Polkadot network while at the same time earning staking rewards.

Feel free to join the PureStake Telegram group. We are happy to help walk you through the nomination process or answer any other questions you have.