This guide contains instructions on how to set up and run a Nolus validator for the Pirin mainnet. This guide assumes that you have already configured your Nolus full node.

⚒ Process

1. Create (Or Restore) A Local Key Pair

Prior to creating your validator, you must first create your application key. Note that this is not your consensus key and will not be used for signing consensus votes. Instead, it is used to sign transactions.

Create a new key pair

nolusd keys add <key-name>

Restore an existing Nolus wallet by providing a BIP39 mnemonic

nolusd keys add <key-name> --recover

Get your public address from the keystore

nolusd keys show <key-name> -a

Feel free to replace <key-name> with a name of your choice.

<aside> ⚠️ After creating a new key, its information will be shown alongside the seed phrase. Make sure to write it down, as it is the only way to restore your keys.

</aside>

2. Upgrade to a Validator

<aside> ⚠️ Do not attempt to upgrade your node to a validator until the node is fully in sync after you have started the nolusd binary, as shown in the previous section.

</aside>

Since you need to send a transaction to be part of the validator set, you need to have a small amount of NLS tokens in the wallet address you are using on your keyring. Once you have a positive balance, you can send the create-validator transaction.

nolusd tx staking create-validator \\
--amount 1000000unls \\
--commission-rate "0.05" \\
--commission-max-rate "0.10" \\
--commission-max-change-rate "0.01" \\
--min-self-delegation "1" \\
--pubkey=$(nolusd tendermint show-validator) \\
--moniker <the-name-of-your-node> \\
--chain-id "pirin-1" \\
--fees 500unls \\
--from <key-name>

Аn example empty command:

nolusd tx staking create-validator \\
--amount=[staking_amount_unls] \\
--commission-rate="[commission_rate]" \\
--commission-max-rate="[maximum_commission_rate]" \\
--commission-max-change-rate="[maximum_rate_of_change_of_commission]" \\
--min-self-delegation="[min_self_delegation_amount]" \\
--pubkey=$(nolusd tendermint show-validator) \\
--moniker="[moniker_id_of_your_node]" \\
--chain-id="[chain-id]" \\
--gas-prices="[gas_price]" \\
--from=[KEY_NAME] \\

If you need further explanation for each of these command flags: