Registering a Validator Node using the RadixNode CLI

Introduction

A Validator node is a Full Node that has registered with the Radix network to receive delegated stake and potentially be selected to participate in network consensus.

Validator nodes provide the critical infrastructure of the Radix network and may receive special incentive rewards as a result. However attempting to become one of the network’s 100 validator nodes is not a decision to be taken lightly, requiring commitment to high reliability operation and engagement with the Radix community. Registration as a validator node alone does not guarantee participation in consensus or that you will receive incentive rewards.

Prerequisites

You should have completed Installing the Node using radixnode first. This is to ensure that radixnode is installed, and your node is up and running as a Full Node.

1. Configure the service as a validator

If you wish to register your node as a validator, you must first send it some XRD tokens to cover the transaction fee required to perform the registration transaction on the network. Note that this is not staking – you need only send a small quantity of XRD tokens.

Configuring the service as a validator is a two-step process: first, you need to make sure that your node has enough tokens to cover the registration fee; once this is done, you can register the node.

1.1. Ensure the node has enough tokens to cover the fee

Use the radixnode script to check the number of tokens in the node’s account by executing the following command:

radixnode api account get-info

The command will give you a string of information, part of which will contain the account balance:

{"result": {"address": "tdx1qspl7mgjqwgwqyjvy2tj8swe8a4lr6mxqdhwmn60cujl6a85mqh69eg37p9ph", "balance": {"stakes": [], "tokens": []}}, "id": 1, "jsonrpc": "2.0"}

As shown here, the node has no tokens, so you’ll need to send some from your wallet to the address given in the address field. Once your node has synced, execute the same command again to make sure that the token transfer has been made successfully.

{"result": {"address": "tdx1qspl7mgjqwgwqyjvy2tj8swe8a4lr6mxqdhwmn60cujl6a85mqh69eg37p9ph", "balance": {"stakes": [], "tokens": [{"amount": "10000000000000000000000","rri": "xrd_tr1qyf0x76s"}]}}, "id": 1, "jsonrpc": "2.0"}

Node registration and update transactions will cost up to 30 XRD in transaction fees. (This is higher than typical token send transactions due to the requisite processing at the epoch’s end for these types of validator transactions.)

1.2. Register node as a validator

Execute the following command to register your node as a validator:

radixnode api account update-validator-config

During its execution, the script will ask you to fill out a number of details about your validator node. Most of these are optional: if you don’t fill in a response then the script will use system defaults instead. However, it is highly recommended that you fill in all parameters.

All of these details on your validator node will be displayed for the benefit of the staking public in the Radix Explorer.

registration status

This setting is used to set the operating mode of your node. Set the value to true if you want your node to operate as a validator, set it to false to operate as a full/archive node.

name

The public name of your node.

url

A URL that points to a webpage about your node.

validator fee

A percentage of the total emissions XRD earned by stakers to your node, which is continuously deducted and credited to your specified owner address as your node’s fee for operation.

allow external delegation

Selecting Y for this option will allow others to delegate stake to your node. Selecting N means that only new stake from your specified owner address will be accepted.

owner

The wallet address where any validator fee emissions XRD will be credited. If you are disallowing external delegation, then this is also the only address that may stake to your node.

For more detailed information on earning XRD emissions and the limits and usage of the above parameters, please refer to the Validators and Node-runner Incentives page.

2. Show your Validator Node Details

You can show your validator node status with this command:

radixnode api validation get-node-info

which will return something like this:

{"result": {"owner": "tdx1qspl7mgjqwgwqyjvy2tj8swe8a4lr6mxqdhwmn60cujl6a85mqh69eg37p9ph", "address": "tv41q26vcd92uy2xt8teyqemcs4qf6s6e88g2n9tgflmdnfucurejpceg3360v6", "stakes": [], "validatorFee": 0, "name": "", "registered": true, "totalStake": "0", "url": "", "allowsDelegation": true}, "id": 1, "jsonrpc": "2.0"}

3. Update your Validator node

After the node has been registered as a validator, you can change any of the settings described in Section 1.2, “Register node as a validator” by invoking the same radixnode command:

radixnode api account update-validator-config

The script will ask you which settings you wish to change, then build and execute the request to perform the changes.

4. Unregister your Validator node

To switch your node from a validator node back to a regular node, execute the following command:

radixnode api account update-validator-config

The script will ask if you wish to set the validator registration status:

register unregister validator node
Figure 1. Unregister (or register) validator node.

Enter false if you want unregister your node.

If you have delegates signed on to your validator node, then you must inform them before you unregister the node.

More information on radixnode Usage

You can use radixnode to carry out a variety of administration tasks. For example:

You can find more information about the RadixNode CLI command set here.

If you have any questions or run into problems, then check our troubleshooting guide, or the Node FAQ page. You can also get support from the Radix community and Radix team members.