Skip to main content
Double-signing is unrecoverable. If two processes ever sign at the same height with your consensus key, the network permanently tombstones your validator and slashes your stake. Before you start any node, confirm the previous one is fully stopped. This is the single most expensive mistake a validator can make.

Quick reference

Two addresses come up in almost every command. Set them once per shell session.
If you open a new terminal later, run those two lines again before using $VAL or $ACC.

Staking operations

Delegate more stake.
Withdraw rewards and commission.
Check what is claimable first.
Always leave enough LUME in the account to cover future fees. A validator that cannot pay for an unjail transaction stays jailed.
Edit validator metadata. Omit any flag you do not want to change.
To change only commission.
Setting a Keybase identity makes your logo appear in explorers and delegation dashboards. It is worth doing before you solicit delegation. Commission changes are capped by commission-max-change-rate and allowed once per 24 hours.
Unjail after downtime.
Check the tombstoned field before you unjail. Tombstoning results from double-signing and is permanent. The validator can never rejoin the active set, and unjail will fail. Fix the root cause before you unjail after downtime, or you will simply be jailed again.

Governance

Validators are expected to vote. Delegators who do not vote inherit your vote. Abstaining silently moves their stake too.
Valid options are yes, no, abstain, and no_with_veto.

Chain upgrades

Upgrades pass through governance and halt the chain at a set height until validators run the new binary. Missing one means downtime, and eventually a jail and slash. Watch for pending upgrades.
Note the plan name and height. Both matter below. Cosmovisor swaps the binary automatically at the upgrade height without causing any downtime. Install Cosmovisor. It is a prebuilt binary, so no Go is required.
Initialize the layout with your current binary as the genesis version.
Point systemd at Cosmovisor.
Stage the upgrade binary. The directory name must exactly match the upgrade plan name, for example v1.20.1.
Verify the staged binary before the upgrade height arrives.
DAEMON_ALLOW_DOWNLOAD_BINARIES=false is deliberate. Letting a node download and run a binary named in an on-chain proposal is a serious security risk. Always stage binaries yourself and verify the checksum. Also note that each Lumera release ships an updated libwasmvm.x86_64.so and Cosmovisor swaps only lumerad. Copy the new shared library into /usr/lib as shown above. Skipping this is a common cause of a node failing to restart right after an upgrade, exactly when you can least afford it.

Option B. Manual swap

If you are not using Cosmovisor, you must be present when the chain halts at the upgrade height.
Always stop the node before you replace the binary. Never start a second instance while the first is running. Two processes using the same priv_validator_key.json cause double-signing and permanent tombstoning.

Monitoring

Health checks.
Compare against the live chain.
What to alert on. With prometheus = true in config.toml, metrics are served on localhost:26660/metrics. Scrape them with Prometheus and build alerts in Grafana. Purpose-built options include tenderduty and cosmos-validator-watcher. Both page you on missed blocks directly.
On mainnet, treat alerting as mandatory rather than optional. At minimum, page a human on missed blocks. Catching downtime in minutes instead of hours is the difference between a warning and a slash.
Routine maintenance.

Troubleshooting

Re-syncing from scratch

If state becomes corrupted, wipe and re-sync. Your keys are untouched by this.
unsafe-reset-all deletes chain data and resets the private validator state file. It never touches priv_validator_key.json or node_key.json. Your validator identity survives.

Migrating to a new server

The dangerous part is the window where both machines could sign.
  1. Set up the new server completely and sync it, without copying the consensus key.
  2. Stop the old node with sudo systemctl stop lumera and confirm with systemctl is-active lumera.
  3. Confirm the old node has stopped producing signatures in the explorer.
  4. Only then copy priv_validator_key.json to the new server and start it.
  5. Delete the key from the old server and disable its service with sudo systemctl disable --now lumera.
Never shortcut step 3. Missing a few blocks during a clean cutover costs almost nothing. Double-signing during a sloppy one ends the validator permanently.

Next steps

Run a SuperNode

Provide Cascade and Sense services alongside your validator.

Testnet guide

Rehearse upgrades and operations on testnet.