Running a Validator on Cronos POS Chain Mainnet: Complete Guide

·

This guide provides step-by-step instructions for setting up a Validator on the Cronos POS Chain mainnet. While anyone can set up a validator, only the top 100 validators are considered "active" and eligible to receive rewards.

👉 Learn more about validator rewards

Network Upgrade Considerations

There are two approaches to node setup:

Option 1: Validator with Complete Blockchain Data

Option 2: Quick Network Validation

Prerequisites

Supported Operating Systems

Minimum Hardware Requirements

Node TypeRAMDisk SpaceCPU Cores
Archive Node64GB3.4TB4
Full Node16-64GB1.2TB4
Pruned Node16-64GB40GB4

Note: Storage requirements grow with network activity

Step 1: Install Cronos POS Chain Binary

Linux Installation

curl -LOJ https://github.com/crypto-org-chain/chain-main/releases/download/v3.3.9/chain-main_3.3.9_Linux_x86_64.tar.gz
tar -zxvf chain-main_3.3.9_Linux_x86_64.tar.gz

Verify installation:

./chain-maind version
# Should return: 3.3.9

Alternative: Homebrew Installation (macOS)

brew tap crypto-org-chain/chain-maind
brew install chain-maind

Step 2: Configure Chain-Maind

Initialize Node

./chain-maind init [your-moniker] --chain-id crypto-org-chain-mainnet-1

Download Genesis File

curl https://raw.githubusercontent.com/crypto-org-chain/mainnet/main/crypto-org-chain-mainnet-1/genesis.json > ~/.chain-maind/config/genesis.json

Verify checksum:

sha256sum ~/.chain-maind/config/genesis.json
# Should match: d299dcfee6ae29ca280006eaa065799552b88b978e423f9ec3d8ab531873d882

Enable State Sync

LATEST_HEIGHT=$(curl -s https://rpc.mainnet.cronos-pos.org:443/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000))
TRUST_HASH=$(curl -s "https://rpc.mainnet.cronos-pos.org:443/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"https://rpc.mainnet.cronos-pos.org:443,https://rpc.mainnet.cronos-pos.org:443\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" ~/.chain-maind/config/config.toml

👉 Optimize your validator performance

Step 3: Launch Your Validator

Start Node

./chain-maind start

Check Sync Status

./chain-maind status 2>&1 | jq '.SyncInfo.catching_up'
# Returns false when synced

Create Validator Transaction

./chain-maind tx staking create-validator \
--from=[your_key_name] \
--amount=1000cro \
--pubkey=$(./chain-maind tendermint show-validator) \
--moniker="YourValidatorName" \
--security-contact="[email protected]" \
--chain-id="crypto-org-chain-mainnet-1" \
--commission-rate="0.1" \
--commission-max-rate="0.2" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas-prices 0.1basecro

Validator Management

Check Validator Status

./chain-maind query tendermint-validator-set | grep -c $(./chain-maind tendermint show-validator)
# Returns 1 if active

Common Operations

CommandDescriptionExample
query bank balancesCheck balance./chain-maind query bank balances [address]
tx bank sendTransfer tokens./chain-maind tx bank send [from] [to] 10cro
tx staking delegateDelegate to validator./chain-maind tx staking delegate [validator-addr] 100cro
tx staking unbondUnbond funds./chain-maind tx staking unbond [validator-addr] 100cro

FAQ

How do I check if my validator is active?

Run: ./chain-maind query tendermint-validator-set | grep -c [your-validator-pubkey]
Returns 1 if active in the set.

What's the minimum stake required?

There's no fixed minimum, but only the top 100 validators by stake receive rewards.

How do I unjail my validator?

./chain-maind tx slashing unjail --from [key_name] --chain-id crypto-org-chain-mainnet-1

How often are rewards distributed?

Rewards accumulate continuously and can be withdrawn anytime using:

./chain-maind tx distribution withdraw-all-rewards --from [key_name]

Can I change my commission rate?

Yes, but increases are limited by your max-change-rate parameter set during validator creation.

👉 Advanced validator strategies