Skip to content

Becoming a Validator

Validator onboarding has two independent parts:

  1. prepare and operate a node
  2. register and become eligible through the on-chain validators contract

Starting a node does not add its key to the active validator set.

Prepare the Node

bash
xian keys validator generate --out-dir ./keys/validator-1

xian network join validator-1 \
  --network private-net \
  --network-manifest /path/to/accepted/manifest.json \
  --validator-key-ref ./keys/validator-1/validator_key_info.json \
  --stack-dir ../xian-stack

xian node init validator-1
xian node start validator-1
xian node health validator-1

Verify genesis, chain ID, image digests, peers, snapshot trust, and the operator contact process. The current codebase has no active public testnet or mainnet; do not treat checked-in rehearsal manifests as onboarding endpoints.

On-Chain Lifecycle

  1. Call validators.register(...) with the consensus key and operator profile.
  2. Escrow the registration bond.
  3. Add self-bond or accept delegations when required by policy.
  4. Enter pending status.
  5. Become active according to the selection mode.
  6. For a planned exit, call announce_leave() and later leave().

Common statuses are pending, approved, active, leaving, left, removed, and withdrawn. Jailing is a separate flag.

Validator records include the consensus key, reward key, requested/active power, commission, profile metadata, registration bond, self-bond, delegation, pending unbonds, and jail/slash/evidence information.

Selection Modes

ModeAdmission
manualan approved add_member vote activates the validator
auto_top_neligible candidates are ranked and selected by total bonded stake
hybridgovernance approval is required before stake-ranked selection

Auto/hybrid selection excludes jailed and leaving validators, enforces bond and activation-delay gates, ranks by total bond, and applies configured churn and replacement-margin limits.

Voting Power

ModeActive power
equalfixed equal power
requestedvalidator's requested power
stake_weightedinteger total bonded stake, minimum 1

The checked-in local/dev/test bundles use manual selection and equal power. The draft xian-mainnet-1 rehearsal bundle uses auto_top_n, at most 13 active validators, equal power, a 720-block rebalance interval, and a one-epoch activation delay. These values remain launch inputs until an accepted operator manifest is published.

Governance and Overrides

The validators contract governs membership, jailing, slashing, power, fees, reward parameters, and validator policy. Only active validators vote, using snapshotted voting power.

In non-manual modes, selected membership overrides depend on manual_override_enabled; evidence slashing remains available regardless. See Protocol Governance for the proposal model.

Planned Exit

announce_leave() starts the leave delay. leave() removes the validator, refunds the registration bond, and converts self-bond and delegations into pending unbonds. Stake becomes claimable only after the configured unbonding period.

Use the Validator Operations Runbook for the reviewed checklist and Staking Mechanics for value flows.