How to become a Validator of Curio Parachain

In this step-by-step guide, you will learn how to set up your own node and become a validator.


Running a validator on a live network is a lot of responsibility! You will be accountable for not only your own stake, but also the stake of your current nominators. If you make a mistake and get slashed, your money and your reputation will be at risk. However, running a validator can also be very rewarding, knowing that you contribute to the security of a decentralized network while growing your stash.
Polkadot Wiki
It is highly recommended that you have significant system administration experience before attempting to run your own validator.

Step1: Configuration of the UI

In the examples, we use Polkadot's "apps wallet" as the user interface to interact with accounts and Curio parachain.
The hosted version of apps is located here: The ipfs version can be found on You can read about differences on polkadot{.js}.

Setting up a custom endpoint

First, you need to configure the UI app to make it work with the Curio parachain. Open the endpoint settings by clicking the triangle next to the network name. The default network is Polkadot.
Then unfold the Development section. Fill the custom endpoint field with wss:// and save it. The application will now reload with the new settings.

Update developer settings

Next, go to Settings > Develop and add additional types from a JSON file by copying its content and pasting the value into the text area. Save the new settings.
"Address": "IndicesLookupSource",
"LookupSource": "IndicesLookupSource",
"AccountInfo": "AccountInfoWithDualRefCount"

Step 2: Creation of accounts

You have to create two new accounts for staking: stash and controller. Here we show you how to generate new accounts using the UI.
It is better to keep stash account in a cold wallet.
Open the UI and go to Accounts > My accounts > Add account.
To create a wallet follow the instructions in the modal window that pops up. FIrst create the stash wallet, then – the controller wallet.
Step 1/3
Step 2/3
Step 3/3
Now that the accounts have been created, send your CGT tokens to them. Keep most of your funds in the stash account since it is meant to be the custodian of your staking funds. Your controller account should have at least enough funds to pay the fees for making transactions.

Step 3: Starting up your node

Desired requirements for your server
  • 4 CPU Intel Xeon or AMD EPYC
  • 8 Gb RAM (32 Gb for better performance)
  • 400 Gb of free space on SSD
  • Docker v19.03+
  • Docker Compose v1.27+
Please make sure that all unnecessary ports on the server are closed and third-party users cannot access your Docker instance.
We strongly recommend that you connect to your server via SSH key and disable password authentication.
git clone
2) Navigate to the repo's directory
cd curio-parachain-node
3) Build docker image
The node image supports the following optional build arguments, which can be passed to the build command with a flag--build-arg:
  • CHAIN – chain name: mainnet or testnet. Default value is mainnet.
  • NODE_NAME – name of your node. Default value is curio_validator.
  • BINARY_URL – link to the parachain's client. Default value is the last actual release from official GitHub.
On the first tab you can see an example of a build command with default parameters. The second tab shows an example of a build command with a given custom node name.
Default parameters
Custom node name
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node build
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node build --build-arg NODE_NAME=my_node_name
4) Launch your node
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node up -d
Your node's persistent data will be in the project directory on the host: ./docker/storage.
If you want to shut down a node, run the following command:
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node down
To restart a node after shutting down, use this command:
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node up -d validator
5) Get a session key
Run this command and wait for it to complete:
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node logs -f rpc_client
After ~30 seconds, you will see the result of calling an RPC method in your console. Save the value of the result key for the next step, this is your session key.
Attaching to curio-parachain-node_rpc_client_1
rpc_client_1 | Waiting for 10 seconds...
rpc_client_1 | % Total % Received % Xferd Average Speed Time Time Time Current
rpc_client_1 | Dload Upload Total Spent Left Speed
rpc_client_1 | {"jsonrpc":"2.0","result":"0x4163dbbb813bd87b780fd896b199800eba7c05e86cdb43cf1b97b3c4c89f9290788b0d1ac7c9d70e7b3bc8aa466b61de3037f36e630ee7b5f908d5ff672d270840d833c31fad71f0b3c3b54dd0e07ac31b3ac60b9a43698ee1be329040eb0925e640058ff05c1275bfefff35aad7ea4db128426f55174496849f34e349ac1d7f","id":1}
100 364 100 295 100 69 3035 709 --:--:-- --:--:-- --:--:-- 4607
6) Wait until the chain is fully synchronized. This usually takes several hours and depends on various factors (for example, hardware or network connection).
You will understand that your chain is synced by console output. Run the command to check container's logs:
docker-compose -f ./docker/docker-compose.yml -p curio-parachain-node logs --tail="10" validator
If you see messages like ⚙️ Syncing 268.6 bps, it means that your node is still synchronizing. Conversely, if you see messages presented as 💤 Idle, your node is in sync.

Step 4: Becoming a validator

Now that the node is fully synchronized, we return to the UI application.
Go to Network > Staking > Account actions > Validator and start filling the form.
Choose your stash and controller accounts and type in the number of tokens you want to stake from your stash account. Recommended value is 25,000 CGT. Make sure not to bond all your CGT balance since you will be unable to pay transaction fees from your bonded balance.
Setup validator: step 1/2
In the second step, you need to insert the session key and set the reward commission percentage.
Setup validator: step 2/2
Next, sign and submit transaction.
Make sure your account is on the waiting list. Go to Network > Staking > Waiting. You should see your account here.
Congratulations! You are almost finished. Now all you have to do is wait for your intention to be approved.