Become a Candidate / Validator

Validators are responsible for securing the xDai stable chain. Validator responsibilities include maintaining a functional node with constant uptime, providing STAKE as collateral, and providing decentralization to the protocol. In exchange for this service, validators receive block rewards and transaction fees.

Once phase 2 begins, additional validators and delegators will have the ability to onboard. To become a validator on the xDai stable chain, you must first become a candidate. Each staking epoch, 19 candidate pools are chosen to act as validators for that epoch. If there are 19 or fewer active candidates, then all active pools are selected. If there are more than 19, selection is based on total stake in the pool + a random number. See this article for more info on weighting and randomness.

If you do not want to become a validator, but are interested in placing stake on other validators, see Become a Delegator

Instructions

If you have any questions or concerns about becoming a candidate or validator, or experience any issues during setup, please contact us in Discord or our forum.

1) You will need the minimum candidate stake amount of STAKE (currently 20,000 STAKE) on xDai and a small amount of xDAI deposited to your address on the xDai chain. Deposit these to your staking address (an 0x external address). You will use to access the protocol.

2) In addition to your regular staking address, you will need a separate mining address. This will be configured to an OpenEthereum or Nethermind node. Generate and save the JSON keystore file (and be sure to save the password in a safe place!)

OpenEthereum Notes:

  • Use version 3.0.0 or 3.0.1 do not use the latest version of OpenEthereum as it does not support POSDAO!

  • You can generate a key with the following OpenEthereum's CLI command:

openethereum account new --keys-path <path_to_save_json_keystore>

3) Setup your node.

4) Once your node is setup and ready, go to BlockScout and select Validators from the Apps dropdown menu.

5) Set your web3wallet (Metamask/Nifty) account to your Staking address and connect to the app. Once connected, you should see your address and STAKE balance in the site banner. If you are a delegator, you will also see information related to any STAKE already in use (staked or ordered for withdrawal).

This address is already staking as a delegator, and does not have enough STAKE to become a candidate.

6) Click the Become a Candidate button. A modal will appear where you enter the amount of you initial STAKE (20,000 minimum - you can add more now as well or more at a later time ) and the mining address of your node.

7) Once filled, click Become a Candidate. Submit and complete the transaction through the web3 wallet interface.

8) If successful, your pool will appear in the Active Pools tab. You will be eligible to join the next staking epoch as a Validator! If there are more than 19 candidates, you will be chosen based on the total stake amount in your pool (your stake + any delegators stake) plus a random number.