Staking and becoming a Validator

Staking on official TestNet

READ THIS PART BEFORE YOU START

Wait until your node is fully synced before you send a staking transaction. An out of sync node cannot produce or validate blocks, so if you're chosen as a validator, you're at risk of being kicked out of the validator pool and losing your rewards if your node doesn't maintain the appropriate uptime (i.e. validate / produce the number of assigned blocks for that epoch).

Requirements

To stake, make sure you have an account with tokens

You will also need Near Shell, which which will require nodejs/npm Download Near Shell with npm: npm i -g near-shell

IMPORTANT: Make sure you have the latest version of NEAR Shell and Node Version > 10.x

Run a Node

Make sure you have a node running by following these instructions:

When prompted for an account ID, enter the accountID of the account you want to stake with. You will be returned a public key used for staking:

Stake for user 'thefutureisnear' with 'A4inyaard6yzt1HQL8u5BYdWhWQgCB87RbRRHKPepfrn'

Make sure you copy this validator_key as you will need it for the next step. You can also find this public key at ~/.near/validator_key.json

Send a staking transaction

First let's authenticate near shell by running the command near login

You will be prompted to navigate to a url to authenticate your staking account.

Please navigate to this url and follow the instructions to log in:
https://wallet.nearprotocol.com/login/?title=NEAR+Shell&public_key=FSgxX7YwuCveCeYqsSAB3sD8dgdy3XBWztCQcEjimpaN

Once done, enter that account ID in the shell:

Please enter the accountId that you logged in with:

Now you're ready to send a staking transaction.

near stake <accountId> <staking public key> <amount to stake>

You should see a success message that looks something like:

Staking 100000 on thefutureisnear with public key = A4inyaard6yzt1HQL8u5BYdWhWQgCB87RbRRHKPepfrn.

Being chosen to become a validator

After this, you will need to wait the ~5 minute bonding period on TestNet to see if you have staked enough to become a validator. You can see you are a validator when in the logs of the node you see "V/" - where V means this node is currently a validator.

To learn more about how validators are chosen, take a look at the Validator FAQ (coming soon).

See current list of Validators and stake amounts

To see the current list of validators, you can take a look here: http://rpc.nearprotocol.com/status

If you would like to see how much a validator is staking, you can run the command near state <account name>in Near Shell.

{
account_id: '.near',
amount: '1009989889356521963560496643',
code_hash: '11111111111111111111111111111111',
nonce: 9,
public_keys: [ 'DuZSg3DRUQDiR5Wvq5Viifaw2FXPimer2omyNBqUytua' ],
stake: '321687967719751680'
}