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:
- macOS
- Windows
- Linux
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)
- RAM: 64GB (RocksDB)
- Disk: 3.4TB
- CPU: 4 cores
Default Full Node (pruning = default)
- RAM: 64GB (RocksDB) or 16GB (GoLevelDB)
- Disk: 1.2TB (after quick sync)
- CPU: 4 cores
Pruned Node (pruning = everything)
- RAM: 64GB (RocksDB) or 16GB (GoLevelDB)
- Disk: 40GB (after quick sync)
- CPU: 4 cores
📌 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.gzVerify 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-maindVerify:
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-1Replace 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.jsonVerify 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 sha256sumNext, set minimum gas price to prevent spam:
sed -i.bak -E 's#^(minimum-gas-prices[[:space:]]+=[[:space:]]+)""$#\1"0.025basecro"#' ~/.chain-maind/config/app.tomlStep 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.tomlFetch 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.tomlFor macOS, install jq first:
brew install jqStep 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 startTo 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 -fCheck sync status:
./chain-maind status 2>&1 | jq '.SyncInfo.catching_up'- Returns
false→ Node is fully synced - Returns
true→ Still 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.1basecroReplace:
your-key-name: Your local key name or wallet address--amount: Initial self-delegation (must be ≥1 CRO)--security-contact: Recommended for operational alerts
🔐 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:
1→ Successfully added0→ Still pending
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.