When to use this
- You want to validate on mainnet, the Evolve canary, or a private testnet.
- You’re running an organisation-internal block producer for a permissioned zone.
Prerequisites
- A funded controller DID with at least the network’s
min_block_validator_self_bond(ormin_block_producer_self_bond) in MINT. - A registered identity NFT (issued via the Genesis Ceremony or
RegisterIdentity+ identity collection).
Recipe
Generate validator keys
Use the CLI to derive a fresh consensus keypair. The keys are written under Back up
--data-dir.~/.sigil/keys/validator.key — losing it means rebonding from scratch.Bond stake
Use the SDK’s Or via CLI:
TransactionBuilder::stake to bond. mode is "validator" for a block validator and "producer" for a block producer.Register on-chain
validator register submits a ValidatorRegister transaction that ties your stake to the consensus key and the human-root DID for lineage verification.pending until the next epoch boundary, then active), and last-attested slot.Start the node
See Operate → Run a validator for the full launch procedure. Minimum invocation:Watch sync progress:
Inspecting validator state
Common errors
| Symptom | Cause | Fix |
|---|---|---|
stake below minimum | Bonded below min_block_validator_self_bond | Bond more, or pick --mode producer if its floor is lower |
lineage verification failed | --human-root not in your DID’s HMR chain | Re-export the lineage proof; match the HMR shown in gal_getHmr |
consensus key already registered | Reused a key across validators | Generate a new key with validator generate-keys |
validator status pending past one epoch | The chain has not crossed an epoch boundary since registration | Wait one full epoch; query current_epoch |
See also
- Concept: consensus and finality
- Operate → Run a validator
- Cookbook: Set up social recovery — for protecting the validator controller key.