Nominators secure the Relay Chain by selecting good validators and staking GEODE on the validators they think will do a good job. You may have an account with GEODE and want to earn fresh GEODE. You could do so as validator, which requires a dedicated node running 24/7. If you do not have such a node or do not want to bother with the intricacies of being a node, you can still earn GEODE by nominating one or more validators.

By doing so, you become a nominator for the validator(s) of your choice. Pick your validators carefully – if they do not behave properly, they will get slashed and you too will lose GEODE. However, if they do follow the rules of the network, then you can share in the staking rewards that those validators generate.

While your GEODE are staked, by nominating a validator, they are ‘locked’ (bonded). You can receive new GEODE in your account but you cannot stake as validator or transfer GEODE away from that account. (Of course, you can make more accounts to do those things with). You can un-nominate those validators at any time to stop staking your funds. Keep in mind that the un-nomination is effective in the next ERA (24 hours), and that un-nominating does not automatically unbond your funds. There is an unbonding period of 28 days on Geode before bonded funds can be transferred after issuing an unbond transaction.

Setting up Stash and Controller keys

As a Nominator,  you should set up separate stash and controller accounts. Why? Your controller account will do most of the work and have most of the risk of exposure. So you don’t want large amounts of tokens to be in the Controller account. Instead, use a STASH account like a savings account and use a CONTROLLER account like a checking account for everyday transactions. These two accounts are linked to save you some effort. You can generate your stash and controller accounts via the Geode Portal, or by using the SubKey CLI tool (for those comfortable with Command Line Interface.

Payouts can go to any custom address. If you would like to redirect payments to an account that is neither the controller nor the stash account, set up a third account and send your payouts there. Note that it is extremely unsafe to set a third party exchange address as the recipient of the staking rewards. So if you have an address with some third party licensed exchange, do not send your payouts there, as exchange accounts tend to be hot wallets and therefore inherently cary more risk. Instead, transfer your coins to the exchange only when you intend to exchange them.

Using The Geode Portal To Nominate

Step 1: Bond your tokens

On the Geode Portal, navigate to the “Network > Staking > Targets” tab. You can see all the active validators and their information – their identities, the amount of GEODE that is staked for them, how much of that is their own provided stake, how much they charge in commission, the era points they’ve earned in the current era, and the last block number that they produced. If you click on the chart button it will take you to the “Validator Stats” page for that validator that shows you more detailed and historical information about the validator’s stake, rewards and slashes.

The “Waiting” subsection lists all pending validators that are awaiting more nominations to enter the active validator set. Validators will stay in the waiting queue until they have enough GEODE backing them. It is possible that a validator can remain in the queue for a very long time if they never get enough backing.

Now that you know who you would like to nominate, go to Network > Staking > Accounts and select +Nominator. On this form, you can stake and nominate. 

Select a “value bonded” that is less than the total amount of GEODE you have, so you have some left over to pay transaction fees. Transaction fees are currently small, but they are dynamic and based on a variety of factors including the load of recent blocks.

Also be mindful of the reaping threshold – the amount that must remain in an account lest it be burned. That amount is 10 GEODE, so it is recommended to keep at least 15-25 GEODE in your account to be on the safe side.

Choose whatever payment destination that makes sense to you. If you’re unsure, you can choose “Stash account (increase amount at stake)” to simply accrue the rewards into the amount you’re staking and earn compound interest.

Step 2: Nominate a validator

You are now bonded. Being bonded means your tokens are locked and could be slashed if the validators you nominate misbehave. All of your bonded funds can now be distributed to up to 16 validators. Be careful about the validators you choose since you will be slashed if your validator commits an offence.

Click on “Nominate” on an account you’ve bonded and you will be presented with another popup asking you to select up to 16 validators. Although you may choose up to 16 validators, due to the election algorithm your stake may be dispersed in different proportions to any subset or all of the validators your choose.

Select your set of validators, confirm the transaction, and you’re done – you are now nominating. 

Your nominations will become active in the next era. Eras last twenty-four hours on Geode – depending on when you do this, your nominations may become active almost immediately, or you may have to wait almost the entire twenty-four hours before your nominations are active. You can check how far along Geode is in the current era on main Portal home page.

Assuming at least one of your nominations ends up in the active validator set, you will start to get rewards allocated to you. In order to claim them (i.e., add them to your account), you must manually claim them. There is more info below on how to do that.

Step 3: Monitoring The Bags List

This step is highly relevant if the staked GEODE is close to the dynamic minimum active nomination threshold on the network. See below for more details about how to do that. The nominations within a bag are sorted based on the insertion order and not based on the stake. If your stake is close to this dynamic threshold, it is advised that you monitor your bag across the staking eras. If any action is required, the respective buttons (Move up/rebag) will appear beside your stash account.

Unbonding and Rebonding

The following content describes how to stop nominating (or validating) and retrieve your stake. Please note that there is a delayed exit period, called the unbonding period, which serves as a cooldown and important security feature. You will not be able to transfer your tokens before this period has elapsed, and you will not receive any staking rewards during this period (as you are not nominating any validators).

Step 1: Stop Nominating

On the Geode UI, navigate to the “Staking” tab. On this tab click on the “Account Actions” tab at the top of the screen. Here, click “Stop Nominating” or “Stop Validating” (depending on your role) on an account you’re staking with and would like to free the funds for. This will “chill” the tokens. After you confirm this transaction, your tokens will still remain bonded. This means they stay ready to be distributed among nominees or used as validator self-stake again. To actually withdraw them, you need to unbond.

Step 2: Unbonding an amount

To unbond the amount, click the three dots next to the account you want to unbond tokens for, and select “Unbond funds”. Select the amount you wish to unbond and click Unbond, then confirm the transaction. If successful, your balance will show as “unbonding” with an indicator of how many more blocks remain until the amount is fully unlocked. The unbonding period is 28 days on Geode.

Once this process is complete, you will have to issue another, final transaction: Withdraw Unbonded, which will be available in the same pop-up. You can also check how long you have to wait in order to withdraw your stake in the Accounts page by expanding your account balance. There is a tiny icon beside the word “unbonding” that will eventually become an unlock icon once the remaining blocks get passed. Then, you can click that icon directly to submit the withdraw transaction. Finally, your transferrable balance will increase by the amount of tokens you’ve just fully unbonded.

Rebonding before the end of the unbonding period

If you want to rebond your tokens before the unbonding period is over, you can do this by issuing a rebond extrinsic. This allows you to bond your tokens that are still locked without waiting until the end of the unbonding period. In order to do this, you will need to issue an extrinsic manually from the Geode UI. Go to the “Extrinsics” option that’s located in the “Developer” dropdown in the top menu. Select the “staking” pallet and the “rebond” extrinsic. Enter the amount of tokens that are currently locked in unbonding that you want to rebond in “value”. Then click “Submit Transaction”. Confirm the transaction in the next pop-up. Once the transaction is included in the next block your tokens will be rebonded again and you can start staking with them.

Active vs. Inactive Nomination

On the Geode interface, you should see your bonded accounts and nomination status and change them as you like. Your nominations will be effective in the next era.

Suppose you have nominated five validator candidates, and three out of five were elected to the active validator set, then you should see two of your nominations as “waiting“, and most likely one as “active” and the rest as “inactive“. Active or inactive nomination means your nominated validators have been elected to be in the validator set, whereas waiting means they did not get elected. Generally, you will only have a single validator with an active nomination, which means that you are directly supporting it with your stake this era and thus potentially receiving staking rewards. Inactive nominators were validators that were elected for this era but which you are not actively supporting. Every era, a new election will take place and you may be assigned a different active nomination from among the validators you have selected.

If you are committing a very large amount of stake, then you may have more than one active nomination. However, the election algorithm attempts to minimize this situation, and it should not occur often, so you should almost always see only a single active nomination per era. 

Bags-List

Nominating accounts are placed in a semi-sorted list called a bags-list. This sorting functionality is extremely important for the staking/election system. Bags-list allows up to 50,000 nominators to set their intention to nominate, of which, the stake of the top 22,500 nominators is considered for the electing set that eventually determines the active validators. 

Minimum Active Nomination to Receive Staking Rewards

The minimum GEODE required to submit intent to nominate is 1000 GEODE, but the minimum active nomination required to earn staking rewards is dynamic and may be much higher.

Bonding additional tokens or unbonding the staked tokens will automatically place the nominating account in the appropriate bag. While the system tries its best to ensure nominators are always represented in the correct bag, certain changes in bonded funds (e.g. a slash in the negative direction, or rewards in the positive direction) can cause an account to be in the wrong bag, and for scalability reasons the system will not automatically self-adjust.

bagsList.putInFrontOf AND bagsList.rebag EXTRINSICS

The nominator accounts in a bag are sorted based on their insertion order, not by their nomination stake. bagsList.putInFrontOf extrinsic can be issued to move up in the bag, which might be very useful for the accounts in the last bag eligible for receiving staking rewards. Also, balance changes due to staking rewards or slashing do not automatically re-bag the account. 

To demonstrate how bags-list works, let’s imagine a simple bag system with 7 accounts and 3 bags:

Alice: 10 GEODE, Bob: 11 GEODE, Charlie: 15 GEODE, Dave: 20 GEODE, Eve: 100 GEODE, Frank 1000 GEODE, Georgina: 2000 GEODE

Bag1: Max 2000, Min 1000 – Frank, Georgina

Bag2: Max 1000, Min 20 – Eve, Dave

Bag3: Max 20, Min 10 – Alice, Bob, Charlie

The bags are iterated based stake in decreasing order and within a bag, they are iterated on insertion order, not amount at stake. So if only five nominating accounts are picked for the electing set, it will be Frank, Georgina, Eve, Dave, Alice. Even though Alice has only 10 GEODE, she is first in line in Bag3.

Charlie can put himself in front (move up in the bag) using the bagsList.putInFrontOf extrinsic, since he has 15 GEODE (more than Alice does at 10). Now if nothing changes for the next era, Frank, Georgina, Eve, Dave, and Charlie will get rewards. Bag3 now has: Charlie, Alice, Bob. The bagsList.putInFrontOf extrinsic can be issued through Polkadot JS Apps UI by clicking on the Move up button. Alice gets upset, but she cannot move herself up, since Charlie has more GEODE than her. Bob could move himself in front of Alice, since he has 11 GEODE (> 10), but he still wouldn’t get rewards.

Let us consider a hypothetical scenario where Charlie set the staking rewards to be bonded automatically and Charlie’s stash crosses 20 GEODE after rewards from several staking eras. As changes in bonded balance due to staking rewards or slashing do not automatically re-bag the account, Charlie has to issue  the bagsList.rebag  extrinsic to place his nominator node in the right bag. The re-bag button will appear on Polkadot JS Apps UI if any of the nominator nodes in the bag needs to be re-bagged. This permissionless extrinsic can be signed and submitted by anyone on chain.

Staking Election Stages

“electable/electing”, and “active”.

  • intention to nominate: an account that has stated the intention to nominate; also called simply a “nominator”.
  • electing nominator: a nominator who is selected to be a part of the input to the election algorithm. This selection is based on stake, and is done using the bags-list. 
  • active nominator: a nominator who came out of the NPoS election algorithm backing an active validator. Staking rewards are received by top nominators, but when slashing occurs, all the active nominators backing the validator get slashed.

Required Minimum Stake

Due to the way the Phragmen algorithm generates the solution set, and due to the fact that the solution set must fit in a single block, a minimum number of GEODE will be required to nominate with, in order to receive staking rewards, can change between the eras.

  • min-intention-threshold: minimum stake to declare the intention to nominate. This parameter can be updated via on-chain governance.
  • min-electing: minimum stake among the electing nominators. Since this is almost always the same as “min-active”, it might not be reported.
  • min-active: minimum stake among the active nominators. If your stake falls below this dynamic threshold in a given era, you will not receive staking rewards for that era.

Thus, for nominator counters, we have:

  • count of nominator intentions, and max possible nominator intentions (50000).
  • count of electing nominators, and maximum possible electing nominators (22500).
  • count of active nominators, and maximum possible active nominators (22500).

Oversubscribed Validators

Validators can only pay out to a certain number of nominators per era. This is can be modified via governance. If more than the maximum number of nominators nominate the same validator, it is “oversubscribed”, and only the top staked nominators (ranked by amount of stake) are paid rewards. Other nominators will receive no rewards for that era, although their stake will still be used to calculate entry into the active validator set.

Although it is difficult to determine exactly how many nominators will nominate a given validator in the next era, one can estimate based on the current number of nominators. A validator with only 5 nominators in this era, for instance, is unlikely to be oversubscribed in the next era. An already-oversubscribed validator with 1000 nominators this era, however, is very likely to be oversubscribed in the next era as well.

The Election Solution Set

Determining which validators are in the active set and which nominators are nominating them creates a very large graph mapping nominators to their respective validators. This “solution set” is computed off-chain and submitted to the chain, which means it must fit in a single block. If there are a large number of nominators, this means that some nominators must be eliminated. Currently, nominators are sorted by amount of GEODE staked and those with more GEODE are prioritized. This means that if you are staking with a small amount of GEODE, you may not receive rewards. This minimal amount is dynamic based on the number of validators, number of nominators, amount nominated, and other factors.

Receiving Rewards

As long as you have nominated more than one validator candidate, and at least one of them got elected, and you are nominating with enough stake to get into the solution set, your bonded stake will be fully distributed to one or more validators. That being said, you may not receive rewards if you nominated very few validator candidates and no one got elected, or your stake is small and you only selected oversubscribed validators, or the validator you are nominating has 100% commission. It is generally wise to choose as many trustworthy validators as you can (up to 16) to reduce the risk of none of your nominated validators being elected.

NOT RECEIVING STAKING REWARDS?

To explore the possible reasons for not receiving staking rewards, first check if your chosen validator has claimed their payout. Rewards are lazy – somebody must trigger a payout for a validator for rewards to go to all of the validator’s nominators. Any account can do this, although in practice validator operators often do this as a service to their nominators (and themselves). 

What to Take Into Consideration When Nominating

There are many factors to consider when deciding which validators to nominate. One useful tool for assisting in this process is the Staking Targets table in the Geode Node UI (also known as the Polkadot JS). This displays potential validators in a table that can be evaluated and sorted using various metrics. Outlined below are the relevant columns to consider, followed by a brief description of each.

  • payout: How recently the validator has made it’s last reward payout to nominators.
  • nominators: This column consists of two number values.1) Amount of nominators currently bonded in the current era and considered active.2) Total amount of nominators that nominated that validator.
    • You may want to be cautious of validators with a high number of subscribers. A validator is considered oversubscribed when more than 256 ‘active’ nominators are assigned to the validator. In this scenario only the top 256 nominators will receive rewards. The remaining nominators will receive nothing, however they can be slashed in the event that validator commits a slashable offence.
    • Every nominator can select up to a maximum of 16 validators, which contributes towards maximizing the probability of having the nominators stake applied to the validators active set. Nominating too few validators could result in the nominators losing their rewards when none of them make it to active set or when those Validator nodes stop validating. The election algorithm attempts to maximize the overall network stake, while minimizing the variance of the active stake across the validators. 
  • comm.: Total commission kept by the validator (100% means nominators will not receive a reward).
  • total stake: The total amount of DOT tokens staked by all parties.
  • own stake: The amount of DOT tokens the validator has put up as a stake.
  • return: How profitable the validator has been.

A validator’s commission is the percentage of the validator reward which is taken by the validator before the rewards are split among the nominators. As a nominator, you may think that the lowest commission is best. However, this is not always true. Validators must be able to run at break-even in order to sustainably continue operation. Independent validators that rely on the commission to cover their server costs help to keep the network decentralized. Some validators, operated by central exchanges etc., keep 100% of the commission to payout their staking service clients and therefore do not provide any rewards to external nominators. Commission is just one piece of the puzzle that you should consider when picking validators to nominate.

As a nominator, if you only want to know the profit each validator made for each era, you can go to the Targets section under the staking page by inputting the number of tokens you would like to stake to check it. Then, nominate those who have a higher profit. However, that does not guarantee the right way to evaluate the validators’ overall performance.

It is worth taking into consideration “own stake” of a validator. This refers to the quantity of GEODE the validator has put up at stake themselves. A higher “own stake” amount can be considered as having more “skin in the game”. This can imply increased trustworthiness. However, a validator not having a large amount of “own stake” is not automatically untrustworthy, as the validator could be nominating from a different address.

Filter Out Validators With Undesirable Traits

On the Targets page, you can filter out validators that have traits that may indicate an issue with you nominating them. You can turn these filters on and off to help narrow down which validators you should nominate. It is important to note that these traits aren’t necessarily “bad”; however, depending on your validator selection methodology, they may be characteristics that you would be interested in filtering out.

  • one validator per operator: Do not show groups of validators run by a single operator.
  • comm. < 20%: Do not show any validators with a commission of 20% or higher.
  • with capacity: Do not show any validators who are currently operating at capacity (i.e., could potentially be oversubscribed).
  • recent payouts: Only show validators that have recently caused a payout to be issued. Note that anyone can cause a payout to occur; it does not have to be the operator of a validator node.
  • currently elected: Only show validators that are currently in the active set (i.e., they have been elected to produce blocks this era).
  • with an identity: Only show validators that have set an identity. Note that this identity does not have to be verified by a registrar for the validator to show up in the list.

Review Your Validators’ History

How the validator acted in the past may be a good indicator of how they will act in the future. An example of problematic behavior would be if a validator is regularly offline, their nominators most likely would get fewer rewards than others. More importantly, when many validators are unavailable or unreachable, the nominators who staked with them will be slashed. Thus, to be a smart nominator, look at their history to see statistics such as blocks produced, rewards and slashes, and identity (if they have it set). Moreover, a nominator should do comprehensive research on their validator candidates – they should go over the validators’ websites to see who they are, what kind of infrastructure setup they are using, reputation, the vision behind the validator, and more.

Be Aware of The Risks of Single Operators with Multiple Validators

Recall that slashing is an additive function; the more validators that are offline or equivocate in a given session, the harsher the penalties. Since validators that are controlled by a single entity are more at risk of a “synchronized” failure, nominating them implies a greater risk of having a large slash of your nominated funds. Generally, it is safer to nominate validators whose behavior is independent from others in as many ways as possible (different hardware, geographic location, owner, etc.).

Avoiding Oversubscribed Validators

If you are not nominating with a large number of GEODE, you should try to avoid oversubscribed validators. It is not always easy to calculate if the validator selected will be oversubscribed in the next session; one way to avoid choosing potentially oversubscribed validators is to filter out any that are at capacity.

Finally, if you have a very small amount of GEODE, you may not be able to have your nomination fit into the election set. The nominator to validator mapping has to fit in a single block, and if there are too many nominators, the lowest-staked nominations will be dropped. This value is obviously dynamic and will vary over time. If you review the lowest amount of nominations that are occurring on current validators, you can get a good idea of how many GEODE will likely be necessary to have your nomination earn you rewards.