# Maintaining your validator

The following page explains how to maintain your validator. This includes useful commands for editing validator metadata, confirming validator health, and performing maintenance safely.

Double-sign prevention
Keep a **single active validator signer** only. Never run two active instances with the same `~/.exrpd/config/priv_validator_key.json`, and never roll back `~/.exrpd/data/priv_validator_state.json`.

## Edit Validator Description

You can edit your validator's public description. This info identifies your validator, and *delegators* use it when they decide to stake XRP tokens to a particular validator. Make sure to provide input for every flag below. If a flag is not included in the command, the field defaults to empty (`--moniker` defaults to the machine name), if the field has never been set, or remains the same, if it has been set in the past. 

The <key_name> specifies which validator you are editing. If you choose to not include certain flags, remember that the --from flag must be included to identify the validator to update.

The `--identity` can be used as to verify identity with systems like Keybase or UPort. When using with Keybase `--identity` must be populated with a 16-digit string that is generated with a [keybase.io](https://keybase.io/) account. It is a cryptographically secure method of verifying your identity across multiple online networks. The Keybase API allows us to retrieve your Keybase avatar. This is how you can add a logo to your validator profile. 


```bash
exrpd tx staking edit-validator \
  --new-moniker="<your_custom_moniker>" \
  --website="https://xrpl.org" \
  --identity=6A0D65E29A4CBC8E \
  --details="<your_validator_description>" \
  --chain-id=<chain_id> \
  --gas="auto" \
  --gas-prices="0.025axrp" \
  --from=<key_name> \
  --commission-rate="0.10"
```

Note that the `commission-rate` value must adhere to the following invariants:

- Must be between 0 and the validator's `commission-max-rate`
- Must not exceed the validator's `commission-max-change-rate` which is the maximum % point change rate **per day**. In other words, a validator can only change its commission once per day and within `commission-max-change-rate` bounds.


## View Validator Description

View the validator's information with this command:


```bash
exrpd query staking validator <account>
```

## Track Validator Signing Information

To track a validator's signatures from past transactions use the `signing-info` command.


```bash
exrpd query slashing signing-info <validator-pubkey> --chain-id=<chain_id>
```

## Unjail Validator

When a validator is "jailed" for downtime, you must submit an `Unjail` transaction from the operator account to restore block proposer awards (depending on the zone fee distribution).


```bash
exrpd tx slashing unjail --from=<key_name> --chain-id=<chain_id>
```

## Confirm Your Validator is Running

Your validator is active if the following command returns anything:


```bash
exrpd query tendermint-validator-set | grep "$(exrpd tendermint show-address)"
```

You should now see your validator in one of the Exrp explorers. You are looking for the `bech32` encoded `address` in the `~/.exrpd/config/priv_validator_key.json` file. 

**Note** To be in the validator set, you must have more total voting power than the 100th validator.

## Halting Your Validator

When attempting to perform routine maintenance or planning for an upcoming coordinated upgrade, it can be useful to have your validator systematically and gracefully halt. Set the `halt-height` to the height at which you want your node to shut down, or pass the `--halt-height` flag to `exrpd`. The node shuts down with a 0 exit code at that given height after committing the block.

## Secure maintenance checklist (validators)

Use this checklist before restarting a validator:

1. Stop the node process (`systemctl`, `cosmovisor`, or `docker`) and confirm no active validator signer `exrpd` process remains.
2. Confirm no second host/container is running as an active validator signer with the same validator key.
3. Back up signer files:


- `~/.exrpd/config/priv_validator_key.json`
- `~/.exrpd/data/priv_validator_state.json`


1. Perform maintenance or upgrade.
2. Start exactly one signer instance and monitor logs.


For full upgrade runbook steps, see [Upgrading your node](/pages/operators/guides/upgrading-your-node).