Cronos POS Chain Mainnet: Running a Validator

·

Setting up a validator on the Cronos POS Chain mainnet is a powerful way to participate in network consensus, contribute to blockchain security, and earn staking rewards. While anyone can run a validator node, only the top 100 validators by stake are considered active and eligible for reward distribution. This guide walks you through the complete process of setting up a validator using fast synchronization via State Sync, ensuring minimal downtime and rapid integration into the network.

Whether you're a developer, node operator, or blockchain enthusiast, this step-by-step tutorial provides everything needed to configure and launch your validator efficiently.


Prerequisites for Running a Validator

Before diving into configuration, ensure your system meets the minimum hardware requirements. These vary depending on the type of node you plan to run.

Supported Operating Systems

The Cronos POS Chain officially supports:

While other platforms may function, they are not guaranteed. Support may expand as the network matures.

Hardware Requirements

Choose the appropriate configuration based on your node type:

Archive Node (pruning = nothing)

Default Full Node (pruning = default)

Pruned Node (pruning = everything)

📌 Note: Snapshot sizes from Quicksync continue to grow over time. Ensure sufficient disk space and plan for future expansion.

Step 1: Install the Cronos POS Chain Binary

This guide uses Linux for demonstration, but binaries are also available for macOS and Windows.

You can install chain-maind in two ways.

Option 1: Download from GitHub (Recommended)

Use this method if you plan to interact with multiple networks (e.g., testnet and mainnet):

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 the installation:

./chain-maind version
# Output should be: 3.3.9

👉 Start setting up your validator node with expert tools and insights.

Option 2: Install via Homebrew (Mainnet Only)

Ideal for macOS or Linux users focused solely on mainnet:

# Install Homebrew if not already present
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Tap the official repository
brew tap crypto-org-chain/chain-maind

# Install the CLI
brew install chain-maind

Verify:

chain-maind version
# Should return: 3.3.9
⚠️ Note: The Homebrew version does not support testnet interactions.

Step 2: Configure chain-maind for Mainnet

Proper configuration ensures your node connects securely and efficiently to the Cronos POS Chain mainnet.

By default, configuration files are stored in ~/.chain-maind/. We’ll use this path throughout.

Step 2-1: Initialize Your Node

Run the init command with a unique moniker (your node’s public name):

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

Replace your-node-moniker with a descriptive name (e.g., my-cronos-validator).

Step 2-2: Set Up Genesis File

Download the official mainnet 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 integrity using SHA-256 checksum:

if [[ $(sha256sum ~/.chain-maind/config/genesis.json | awk '{print $1}') = "d299dcfee6ae29ca280006eaa065799552b88b978e423f9ec3d8ab531873d882" ]]; then echo "OK"; else echo "MISMATCHED"; fi;

For macOS users missing sha256sum, add this function:

function sha256sum() { shasum -a 256 "$@"; } && export -f sha256sum

Next, set minimum gas price to prevent spam:

sed -i.bak -E 's#^(minimum-gas-prices[[:space:]]+=[[:space:]]+)""$#\1"0.025basecro"#' ~/.chain-maind/config/app.toml

Step 2-3: Enable State Sync for Fast Startup

State Sync allows your validator to sync quickly by downloading recent blockchain states instead of processing every block from genesis.

✅ Ideal for validators who want to join the network rapidly.

❌ Not suitable if you need full historical data (use full sync instead).

Edit the config file:

sed -i.bak -E 's#^(persistent_peers[[:space:]]+=[[:space:]]+).*$#\1"[email protected]:26656,[email protected]:26656,[email protected]:26656"#' ~/.chain-maind/config/config.toml
sed -i.bak -E 's#^(seeds[[:space:]]+=[[:space:]]+).*$#\1""#' ~/.chain-maind/config/config.toml

Fetch trust height and hash:

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)

Enable State Sync:

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

For macOS, install jq first:

brew install jq

Step 3: Launch Your Node and Become a Validator

With configuration complete, it’s time to start syncing and register as a validator.

Step 3-1: Start the Node

Begin syncing with:

./chain-maind start

To run in background (Linux), use systemd:

git clone https://github.com/crypto-org-chain/chain-main && cd chain-main
./networks/create-service.sh
sudo systemctl start chain-maind
journalctl -u chain-maind -f

Check sync status:

./chain-maind status 2>&1 | jq '.SyncInfo.catching_up'

👉 Secure your staking rewards with advanced tools and real-time tracking.


Step 3-2: Send Create-Validator Transaction

Once synced, submit your validator registration:

./chain-maind tx staking create-validator \
  --from=your-key-name \
  --amount=1000cro \
  --pubkey=$(./chain-maind tendermint show-validator) \
  --moniker="your-node-moniker" \
  [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=8000000 \
  --gas-prices=0.1basecro

Replace:

🔐 Your validator’s pubkey is generated automatically using tendermint show-validator.

Step 3-3: Verify Validator Status

Confirm inclusion in the validator set:

./chain-maind tendermint show-address
./chain-maind query tendermint-validator-set | grep -c [your-consensus-address]

Output:

Check signing activity:

curl -sSL https://raw.githubusercontent.com/crypto-org-chain/chain-docs/master/docs/getting-started/assets/signature_checking/check-validator-up.sh | bash -s -- \
  --tendermint-url https://rpc.mainnet.cronos-pos.org:443 \
  --pubkey $(cat ~/.chain-maind/config/priv_validator_key.json | jq -r '.pub_key.value')

If successful, you’ll see confirmation that your validator is signing blocks.


Core Keywords

cronos pos chain, run validator, staking rewards, state sync, cosmos sdk, proof of stake, blockchain node, validator setup


Frequently Asked Questions (FAQ)

Q: How many validators are active on Cronos POS Chain?
A: Only the top 100 validators by total staked CRO are considered active and eligible for rewards.

Q: Can I use State Sync if I want full blockchain history?
A: No. State Sync skips older blocks for speed. Use full sync instead for complete historical data.

Q: What happens if my validator goes offline?
A: It may be temporarily jailed for downtime, halting rewards. Use unjail after resolving issues.

Q: How do I withdraw staking rewards?
A: Run tx distribution withdraw-all-rewards --from [key_name] to claim accumulated rewards.

Q: Is self-delegation required?
A: Yes. You must self-delegate at least 1 CRO using --min-self-delegation.

Q: Can I change my commission rate after creation?
A: Yes, but only within the bounds set by --commission-max-rate and --commission-max-change-rate.


Congratulations! You've successfully deployed a Cronos POS Chain validator, secured with State Sync and proper configuration. Now you’re actively contributing to network decentralization and earning staking rewards.

For ongoing maintenance, monitor uptime, update software regularly, and consider running sentry nodes for enhanced security.

👉 Maximize your validator performance with real-time analytics and portfolio tools.