How to Run an XRP Ledger Validator
This is a quick practical guide for running rippled in validator mode on the XRP Ledger. Keep the validator dedicated, private, updated, and monitored.
1. Prepare the Server
For production, use a dedicated bare-metal server. The practical baseline is:
- Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, Debian 12, RHEL, or another supported Linux distribution.
- 8+ x86_64 CPU cores at 3+ GHz.
- 64 GB RAM for production. 16 GB is only a testing minimum.
- Fast SSD or NVMe storage with sustained 10,000 IOPS or better.
- Gigabit network, stable latency, and accurate system time.
Enable NTP before installing rippled so the server clock stays in sync with the network:
2. Install rippled
Choose your operating system and copy the matching command. Use the stable package repository for production validators.
Ubuntu 24.04 uses Ripple's deb package. Ubuntu 24.04 Noble Numbat is supported on x86_64 and uses the stable deb repository.
- Highest support and testing level for Ubuntu 24.04 on x86_64.
- The repository codename is noble.
- After gpg --show-keys, check that the key belongs to Ripple TechOps Team.
- The rippled service should start automatically after installation.
Check that the service started:
A fresh server can take several minutes to sync. Wait until server_state becomes full before enabling validation.
3. Set Your Validator Domain
Use your own domain if you have one and want it associated with the validator. You must be able to publish an xrp-ledger.toml file for this domain later.
In the next step, use that domain in ./validator-keys set_domain example.com, and then use the same domain in xrp-ledger.toml.
4. Create Validator Keys and Token
Generate validator keys on a secure machine, not on the validator host. Store validator-keys.json offline and backed up. Never publish it, never keep it on the validator, and generate one token at a time from the current backup.
Create the master validator key file:
Example output:
Set the domain in the validator key file before you configure the server. This updates the manifest and prints both the domain attestation and the validator token that belongs in rippled.cfg.
Example output format:
Do not copy the sample token above; copy the token from your own terminal. Copy only the [validator_token] block to the validator server. Keep the # validator public key line somewhere safe; you will need it for TOML and for checking the validator on Bithomp.
If you later need to rotate a token without changing the domain, the command has the same output format:
Store the updated validator-keys.json backup after every command that generates a new token.
5. Configure the Validator
Back up the config, then edit /etc/opt/ripple/rippled.cfg:
Add the token printed by set_domain:
For a practical first setup, connect through known public hubs and keep your validator private.
Restrict the config file and restart:
6. Check That It Is Live
First check locally. The validator public key should match the key created by validator-keys, and server_state should normally settle on proposing.
Useful live log command:
Check on Bithomp
Run server_info and copy the pubkey_validator value from the output:
Then open https://bithomp.com/validator/YOUR_VALIDATOR_PUBLIC_KEY, or search for it on the Bithomp Validators page. It may take time to appear the first time, because the validator must be seen by the network and indexed by Bithomp.
7. Publish TOML Domain Verification
After the domain is set in the validator keys and the validator token is installed in rippled.cfg, publish the matching xrp-ledger.toml. Serve it over HTTPS at:
Minimal validator entry. Use your validator public key and attestation from the set_domainoutput.
Check that the file is reachable and validate it on Bithomp:
You can also use the Bithomp TOML checker to inspect the file.
Quick Troubleshooting
- No peers: check firewall rules, outbound access, and the
[ips_fixed]hosts. - Not proposing: wait for sync, check system time, check
rippled server_info, and readjournalctl -u rippled.service. - Validator list expired: check outbound HTTPS access and validator list configuration.
- Public key mismatch: confirm that the token in
rippled.cfgwas generated from the key file you backed up.