Run a Node Testnet · v1.10 · all tests passing
Estimated read time: 6 minutes

VPS One-Liner

What this does

One command on a fresh Ubuntu or Debian VPS turns the box into a running, faucet-funded, auto-bonded Valdium validator. It installs the node binary, generates a Dilithium3 validator key, pulls chain genesis, syncs the chain, requests a faucet drop, posts a bonding transaction, and starts the validator as a systemd service. Total elapsed time from the command running to "validating blocks" is around five minutes on a modest 2-core VPS with a fast disk.

It's the right tool for operators who already manage Linux servers and want the cheapest path to a working testnet validator. It is not for production mainnet validators — see "What this won't do" near the bottom of the page.

The command

Sudo-able shell on a fresh Ubuntu 22.04+ or Debian 12+ machine:

curl -sL https://valdium.xyz/install-vps | sh

That's the whole thing. The installer is idempotent — re-running it on the same machine reuses the existing key and re-syncs from wherever it left off.

What happens, in order

The installer script (you can read the full source at https://valdium.xyz/install-vps before piping it to a shell — recommended for any curl-bash install) walks these steps:

  1. System check. Verifies Ubuntu 22.04+ or Debian 12+, 2+ CPU cores, 4+ GB RAM, 10+ GB free disk. Bails with a clear message if any of these are missing.
  2. User and directories. Creates a non-login valdium system user, /var/lib/valdium for chain data, /etc/valdium for config.
  3. Binary install. Downloads the latest signed valdium-node binary for your architecture, verifies the BLAKE3 checksum against the release manifest, drops it in /usr/local/bin.
  4. Key generation. Runs valdium key new as the valdium user. The Dilithium3 keypair lands in /var/lib/valdium/keystore/ with 0600 permissions.
  5. Genesis pull. Fetches the testnet genesis block and chain spec from the public seeds.
  6. Sync. Catches up to head from the network. On testnet this is currently a few minutes; mainnet will be longer.
  7. Faucet drip. Posts a faucet request for the validator's address. Adds 1,000 testnet VLD — enough to cover the minimum bond.
  8. Bond. Submits a bonding tx with 1,000 VLD (the testnet validator minimum). The validator is now in the active-set queue.
  9. Systemd unit. Drops /etc/systemd/system/valdium-node.service, enables it, starts it. The service runs as valdium, restarts on failure, and logs to journald.

After it finishes

The installer prints the validator address, the bonding tx hash, and a one-line status check. To verify the node is healthy:

systemctl status valdium-node # active (running) since ... journalctl -u valdium-node -n 50 # tail of the last 50 log lines valdium-cli node status # height, peers, sync state, validator-active flag

If valdium-cli node status says validator: active and peers > 4, your node is producing blocks when its slot comes up.

Where things live

PathWhat's there
/usr/local/bin/valdium-nodeNode binary
/usr/local/bin/valdium-cliCLI binary
/var/lib/valdium/chain/Block database
/var/lib/valdium/keystore/Validator key (sensitive)
/etc/valdium/node.tomlNode config — peers, ports, log level
/etc/systemd/system/valdium-node.serviceSystemd unit

Upgrading

Re-running the same one-liner upgrades the binary in-place, preserves the keystore and chain data, and restarts the service. Major-version upgrades may need a config migration; the installer detects and prompts.

Uninstalling

curl -sL https://valdium.xyz/install-vps | sh -s -- --uninstall

Stops the service, removes the binary, leaves the chain data and keystore in place. Add --purge to delete those too. Make sure you've saved your validator key elsewhere before purging.

What this won't do

The one-liner is opinionated for fastest-path testnet operators. It will not: