Skip to main content

Become a Nominator on Polkadot

New to Staking?

Start your staking journey or explore more information about staking on Polkadot's Home Page. You can learn how staking works by reading this dedicated page.

Discover the new Staking Dashboard that makes staking much easier and check this extensive article list to help you get started.


The following information applies to the Polkadot network. If you want to nominate on Kusama, check out the Kusama guide instead.

Nominators are one type of participant in the staking subsystem of Polkadot. They appoint their stake to the validators, the second type of participant. By appointing their stake, they can elect the active set of validators and share in the rewards that are paid out.

While the validators are active participants in the network that engage in the block production and finality mechanisms, nominators take a slightly more passive role. Being a nominator does not require running a node of your own or worrying about online uptime. However, a good nominator performs due diligence on the validators that they elect. When looking for validators to nominate, a nominator should pay attention to their own reward percentage for nominating a specific validator - as well as the risk that they bear of being slashed if the validator gets slashed.

If you are a beginner, please watch the video below for detailed instructions.

Staking Tutorial

Setting up Stash and Staking Proxy Accountsโ€‹

Nominators are recommended to set up separate stash and staking proxy accounts. Explanation and the reasoning for generating distinct accounts for this purpose is elaborated in the keys section of the Wiki.

You can generate your stash and staking proxy account via any of the recommended methods, which are detailed on the account generation page.

Starting with runtime version v23 natively included in the client version 0.8.23, payouts can go to any custom address. If you'd like to redirect payments to an account that is neither the staking proxy nor the stash account, set one up. Note that setting an exchange address as the recipient of the staking rewards is extremely unsafe.

Using the Polkadot Staking Dashboardโ€‹

Walk-through Video Tutorials
  • Nominating: Stake your tokens, choose your best validators, and start your staking journey on Polkadot.
  • Becoming a Pool Member: Start becoming a part of the Polkadot movement, keep Polkadot secure by staking minimum 1 DOT and receiving staking rewards.
  • Dashboard Walkthrough: Become a Pro using the Staking Dashboard.
  • After Staking: Nominating on Polkadot is not a set-and-forget action, learn what you can do with the dashboard after you started staking.

Why am I not receiving Staking Rewards?โ€‹

Bags List & Minimum Active Bond

See this video tutorial and read this support article to understand why in some cases you might not receive staking rewards and how to avoid those situations.

Using Polkadot-JS UIโ€‹

Using Polkadot-JS UI as a Nominator

Here is the list of basic nominator actions that can be performed using the Polkadot-JS UI.

Using Command-Line Interface (CLI)โ€‹

Apart from using Polkadot-JS Apps to participate in staking, you can do all these things in CLI instead. The CLI approach allows you to interact with the Polkadot network without going to the Polkadot-JS Apps dashboard.

Step 1: Install @polkadot/api-cliโ€‹

We assume you have installed NodeJS with npm. Run the following command to install the @polkadot/api-cli globally:

npm install -g @polkadot/api-cli

Step 2. Bond your DOTโ€‹

Controller accounts are deprecated

Controller accounts are deprecated. For more information, see this discussion.

Executing the following command:


CONTROLLER_ADDRESS: An address you would like to bond to the stash account. (Controller accounts are now deprecated. Refer to this discussion for additional context)

NUMBER_OF_TOKENS: The number of DOT you would like to stake to the network.

Decimal places

DOT has ten decimal places and is always represented as an integer with zeros at the end. So 1 DOT = 10_000_000_000 Plancks.


  • Staked - Pay into the stash account, increasing the amount at stake accordingly.
  • Stash - Pay into the stash account, not increasing the amount at stake.
  • Account - Pay into a custom account, like so: Account DMTHrNcmA8QbqRS4rBq8LXn8ipyczFoNMb1X4cY2WD9tdBX.
  • Controller - Pay into the controller account.


polkadot-js-api --seed "xxxx xxxxx xxxx xxxxx" DMTHrNcmA8QbqRS4rBq8LXn8ipyczFoNMb1X4cY2WD9tdBX 1000000000000 Staked --ws wss://


"status": {
"InBlock": "0x0ed1ec0ba69564e8f98958d69f826adef895b5617366a32a3aa384290e98514e"

You can check the transaction status by using the value of the InBlock in Polkascan. Also, you can verify the bonding state under the Staking page on the Polkadot-JS Apps Dashboard.

Step 3. Nominate a validatorโ€‹

To nominate a validator, you can execute the following command:

polkadot-js-api --seed "MNEMONIC_PHRASE" tx.staking.nominate '["VALIDATOR_ADDRESS"]' --ws WS_ENDPOINT
polkadot-js-api --seed "xxxx xxxxx xxxx xxxxx" tx.staking.nominate '["CmD9vaMYoiKe7HiFnfkftwvhKbxN9bhyjcDrfFRGbifJEG8","E457XaKbj2yTB2URy8N4UuzmyuFRkcdxYs67UvSgVr7HyFb"]' --ws wss://

After a few seconds, you should see the hash of the transaction, and if you would like to verify the nomination status, you can check that on the Polkadot-JS UI as well.