Become a Reef chain nominator and earn rewards.

Who is this for?

Anyone interested in Reef chain governance can become a Nominator. The main responsibility of Nominators is to vote for and elect competent Validators (block producers).

Nominators are rewarded with part of the revenue share generated by the Validators. However in the event that the Validator misbehaves, Nominators can lose their bonded stake.

Become a nominator

After careful consideration of the best Validator candidates - based on their technical abilities and community contributions - we are ready to vote.


The first step towards becoming a nominator is bonding (staking) Reef tokens.

Before we do, we should explain the stash/controller accounts. The stash account is an account that holds large amounts of funds (ie. cold wallet), while the controller account is the hot wallet account we use to perform various on chain actions. Having a stash/controller account is not a requirement - we could use the same account for both. It is however a recommended security practice.

Once the tokens are bonded they become the basis for our voting weight in a Proof-of-Stake system. We can use our bonded amount to either Nominate or Validate.

Bonding is as simple as calling the, amount, payee) extrinsic. The payee field dictates where our future rewards will be credited (it can be either automatically re-bonded, or deposited into our stash account or controller account or an arbitrary account of choice).

Example bonding call

Start nominating

As mentioned before, we can use our bonded amount to either Nominate or Validate, but not both at the same time. To signal that we want to use our bonded amount to Nominate we have to call the staking.nominate(candidates) function.

The candidates argument is a list of Account Id’s of Validators we are voting for.

Example nominate call through the staking UI.

Collect earnings

At the end of each era we can collect our Nominator earnings. If our bond declared Staking as the payee, the rewards will be automatically added to our bond position.

Managing the bond

We can add additional funds to our existing bond position by calling staking.addExtra(amount).

We can always start the unbonding process by calling staking.unbond(). Note that the unbonded funds will become available for withdrawal after the unbonding cooling period (2 days).