Validator Setup Guide
Step-by-step guide to setting up a Monolythium validator from scratch: hardware provisioning, Monarch CLI installation, testnet join, validator registration, and monitoring.
For an overview of validator roles and economics, see Validators Overview.
Hardware Requirements
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8 cores |
| RAM | 16 GB | 32 GB |
| Storage | 500 GB SSD (NVMe) | 1 TB NVMe |
| Network | 100 Mbps | 1 Gbps |
| OS | Ubuntu 22.04+ | Ubuntu 24.04 LTS |
At ~2-second block times, storage usage grows approximately 50-100 GB per year depending on transaction volume. Start with 500 GB minimum and plan to expand.
Step 1: Install Monarch CLI
Monarch is the official CLI tool for managing Monolythium nodes and validators.
# Download the latest release
curl -sSfL https://get.monarch.monolythium.xyz | bash
# Verify installation
monarch version
Monarch manages the monod binary, chain configuration, key management, and upgrades. It replaces manual binary management and configuration editing.
Step 2: Initialize Your Node
# Initialize for testnet
monarch init --network testnet --moniker "your-validator-name"
This command:
- Downloads the correct
monodbinary for the testnet - Creates the data directory at
~/.monod/ - Downloads and verifies the official genesis file
- Configures seed nodes automatically
Step 3: Start and Sync
# Start the node
monarch start
The node will begin syncing from genesis. Monitor sync progress:
# Check sync status
monarch status
Wait until the node is fully synced (latest block matches the network). This can take several hours depending on chain height and your connection speed.
To speed up initial sync, use state sync:
monarch init --network testnet --moniker "your-validator-name" --state-sync
monarch start
State sync downloads a recent snapshot instead of replaying all blocks from genesis. See State Sync for details.
Step 4: Create Validator Keys
Create the operator key that will manage your validator:
monod keys add validator-operator
Save the mnemonic phrase securely. This key controls your validator and your staked LYTH.
Check your address:
monod keys show validator-operator -a
Step 5: Fund Your Account
You need 200,000 LYTH to register a validator:
| Component | Amount | Purpose |
|---|---|---|
| Self-delegation | 100,000 LYTH minimum | Stake (slashable, returned on unbonding) |
| Burn deposit | 100,000 LYTH (exact) | Non-refundable burn proving long-term commitment |
On testnet, request LYTH from the faucet or contact the team for validator-sized allocations.
Verify your balance:
monod query bank balances $(monod keys show validator-operator -a)
Step 6: Register as Validator
The standard Cosmos SDK monod tx staking create-validator is blocked on Monolythium. Use the Monolythium-specific register-validator command instead.
monod tx mono register-validator \
--pubkey=$(monod tendermint show-validator) \
--moniker="your-validator-name" \
--identity="your-keybase-id" \
--website="https://your-website.com" \
--details="A brief description of your validator" \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="100000000000000000000000" \
--self-delegation=100000000000000000000000alyth \
--burn-deposit=100000000000000000000000alyth \
--from=validator-operator \
--chain-id=mono_6940-1 \
--gas=auto \
--gas-adjustment=1.5 \
--gas-prices=0.025alyth
| Parameter | Explanation |
|---|---|
--moniker | Your validator's display name |
--identity | Keybase.io identity (for avatar on explorers) |
--commission-rate | Initial commission (10% = 0.10) |
--commission-max-rate | Maximum commission you can ever set (cannot be changed later) |
--commission-max-change-rate | Maximum daily commission change |
--burn-deposit | Exactly 100,000 LYTH in alyth (100000 * 10^18) |
Step 7: Verify Registration
Check that your validator appears on the network:
# Query your validator
monod query staking validator $(monod keys show validator-operator --bech val -a)
# Check active set membership
monarch status
Your validator starts in the candidate set. To enter the active set (top 53 by total stake), you need sufficient total delegation (self + delegators).
Understanding LythiumBFT
Monolythium uses LythiumBFT, a modified CometBFT fork with quadratic (square root) proposer weighting. This changes how block proposal opportunities are distributed:
Square Root Weighting
In standard CometBFT, a validator with 10x the stake gets 10x the block proposals. In LythiumBFT, a validator with 10x the stake gets approximately 3.16x the proposals (square root of 10):
| Stake | Linear Weight | Sqrt Weight | Advantage |
|---|---|---|---|
| 100K LYTH | 100K | 316 | Baseline |
| 1M LYTH | 1M (10x) | 1,000 (3.2x) | 3.2x vs 10x linear |
| 10M LYTH | 10M (100x) | 3,162 (10x) | 10x vs 100x linear |
This design gives smaller validators up to 7x better reward-per-stake compared to a linear system, strengthening decentralization and making it viable to run a validator without whale-level capital.
Active Set
| Parameter | Value |
|---|---|
| Active validators | 53 |
| Selection | Top 53 by total stake |
| Block time | ~2 seconds |
| Finality | Instant (single-slot BFT) |
Step 8: Monitor with Monarch Connect
Monarch Connect is a desktop application for monitoring validator health, metrics, and alerts.
After installing Monarch Connect:
- Add your node by entering its RPC endpoint
- The dashboard shows block height, uptime, missed blocks, and peer count
- Configure alerts for downtime or missed block thresholds
You can also monitor via the command line:
# Live status
monarch status --watch
# Check missed blocks
monod query slashing signing-info $(monod tendermint show-validator)
Genesis Validator Incentive
Validators that join during the testnet genesis period and maintain high uptime earn a bonus reward:
| Requirement | Value |
|---|---|
| Uptime | 95% or higher over 21 consecutive days |
| Network | Testnet |
| Reward | 10,000 LYTH (distributed at mainnet genesis) |
The 21-day measurement window starts from the block your validator enters the active set. Uptime is measured as the percentage of blocks signed versus blocks proposed to your validator.
Operational Checklist
After registration, ensure you have:
- Node running and synced (
monarch status) - Validator in the active set or candidate set
- Monitoring configured (Monarch Connect or Prometheus/Grafana)
- Alerts for missed blocks and downtime
- Backup of validator keys (
~/.monod/config/priv_validator_key.json) - Secure key storage (consider KMS for production)
- Firewall configured (P2P port 26656 open, RPC/API restricted)
Troubleshooting
Node not syncing
- Verify seed nodes are configured:
monarch config show | grep seeds - Check network connectivity:
curl -s https://rpc.testnet.mononodes.xyz/status | jq .result.sync_info - Try state sync for faster initial catchup
Validator not in active set
- The active set is limited to the top 53 by total stake
- Attract delegations to increase your total stake
- Check your position:
monod query staking validators --limit 100 -o json | jq '.validators | sort_by(.tokens | tonumber) | reverse | to_entries[] | select(.value.operator_address == "YOUR_VALOPER") | .key'
Validator jailed
If your validator misses too many blocks, it gets jailed:
# Check jail status
monod query staking validator $(monod keys show validator-operator --bech val -a) -o json | jq .jailed
# Unjail (after fixing the issue)
monod tx slashing unjail --from=validator-operator --chain-id=mono_6940-1 --gas=auto --gas-prices=0.025alyth
Related
- Validators Overview -- Roles, economics, and active set
- Registration -- Detailed registration parameters
- Requirements -- Hardware and operational requirements
- Economics -- Revenue sources and cost analysis
- Slashing -- Penalties and prevention
- Best Practices -- Operational excellence
- Monarch CLI -- CLI reference
- Monarch Connect -- Desktop monitoring