Running a Standalone Validator Node


A Validator Node starts life as a Full Node, but has also “registered” itself to the network as a Validator by submitting a special transaction from its account. Registration means that it may now accept XRD token “stake” and potentially be included in the validator set of 100 nodes that conduct network consensus.

Once running, a validator node offers two interface endpoints on a private port:

The /node endpoint can be used to conduct transactions from the node’s account, including validator configuration, registration, and de-registration. The node’s account must hold XRD tokens to pay for network fees on these transactions.

The /system endpoint can be used to query aspects of the node and network such as current version, current peers, etc.

Full documentation of endpoints under /node and /system paths will be available at mainnet launch.


A Radix Node running as a standalone Instance. If you haven’t set up one up yet then please run through this guide:

Configure the service as a validator

There are two steps for setting up your service to take part in validation:

  1. Use the low-level API to put your service into validator mode.

    Execute the following command to fetch node address.

    curl -s -u admin:<nginx_password_of_your_choice> -k -X  GET 'https://localhost/node'

    This will return some basic information about your Radix instance:


    The address field is the one you’re interested in: this is the address of your node on the network. You can now use the address to allocated tokens to the node:

  2. Send tokens from your wallet to the node address. (Setting the node as a validator is carried out by executing a transaction. The node requires tokens to carry out transactions, so you will need to send tokens to the node before you can register it.)

  3. Make the following call to your node to set it as a validator:

    curl -s -u admin:<nginx_password_of_your_choice> \
      -X POST -k 'https://localhost/node/execute' \
      -H 'Content-Type: application/json' \
      --data-raw '{"actions":[{"action":"RegisterValidator","params":{"name": "My Validator", "url": "" }}]}'

    The call can take two optional parameters:


    The name of your validator node. If you make a Get Validators request against the network, then your node will send the name of your node as part of the response.


    The url can be used to provide a website address. Again, this will be returned as part of the Get Validators response, and can be used to point interested parties to your website.

If the call is successful, the node will return the transaction details:


And that’s it. Your node is now registered as a validator.

There may be a delay from the time you register, and the network scans your node and adds it to its list of potential validators. The epoch time, as it is called, could be anything up to four hours.

If you want to check, then you can call the validator command which will tell you whether your node is registered as a validator.

curl -s -u admin:<nginx_password_of_your_choice> \
  -X POST https://localhost/node/validator

You should receive a response that looks something like this: