> For the complete documentation index, see [llms.txt](https://service.block-pro.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://service.block-pro.net/mainnet/celestia/validator-node.md).

# Validator Node

Already running a node? See [Upgrade](/mainnet/celestia/validator-node/upgrade.md).

**Mainnet** · Chain ID `celestia`

First complete [Consensus Node](/mainnet/celestia/consensus-node.md) and wait until it is synced. Check the CPU benchmark and [Requirements](/mainnet/celestia/requirements.md). App v10 is live on Mainnet. Bonded validators should run [Fibre](/mainnet/celestia/validator-node/fibre.md) on a separate nearby host, connect its signing service with mTLS, and register its reachable public address.

## Create or recover the operator account

Create a password-protected operator account. Keep the recovery phrase offline.

```bash
celestia-appd keys add validator --keyring-backend file
```

To use an existing account instead, choose the recovery command on [Key Management](/mainnet/celestia/useful-commands/key-management.md); do not create a second key with the same name.

Show the address to fund for self-delegation and transaction fees.

```bash
celestia-appd keys show validator -a --keyring-backend file
```

Show the consensus public key for this node. This is not the operator wallet public key.

```bash
celestia-appd tendermint show-validator
```

## Register the validator

Run `celestia-appd tx staking create-validator --help` on the installed release first. The command below follows Celestia's published flag-based example; if the binary requires a JSON file, use its release-specific format instead.

Choose commission settings deliberately: the maximum rate and maximum rate change constrain later updates. The amounts below are examples, not an active-set entry threshold.

Set a current fee price, including the denomination, for example 0.005utia only if accepted by your endpoint.

```bash
GAS_PRICE="YOUR_GAS_PRICE_IN_UTIA"
```

Submit a validator registration with 1 TIA self-delegation. Review the interactive confirmation before broadcasting.

```bash
celestia-appd tx staking create-validator \
  --amount 1000000utia \
  --pubkey "$(celestia-appd tendermint show-validator)" \
  --moniker "YOUR_VALIDATOR_NAME" \
  --commission-rate 0.10 \
  --commission-max-rate 0.20 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1000000 \
  --from validator \
  --chain-id celestia \
  --node http://127.0.0.1:26657 \
  --keyring-backend file \
  --gas auto \
  --gas-adjustment 1.5 \
  --gas-prices "$GAS_PRICE"
```

Print your validator operator address.

```bash
celestia-appd keys show validator --bech val -a --keyring-backend file
```

Check registration, jailed state and bonding status. A successful transaction does not guarantee entry into the active set.

```bash
celestia-appd query staking validator YOUR_VALOPER_ADDRESS --node http://127.0.0.1:26657 -o json
```

## Protect signing state

Keep the consensus private key and latest signing state backed up securely. Never run the same consensus signing key on two active nodes. For snapshot recovery, preserve your stopped node's signing state; do not replace it with the snapshot provider's state.

Once bonded and fully synchronized, complete [Fibre setup and host registration](/mainnet/celestia/validator-node/fibre.md). Keep your operator wallet and consensus private key on their existing trusted hosts.

Source: [Celestia documentation](https://docs.celestia.org/operate/consensus-validators/validator-node/).
