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

Run a Validator

TL;DR

Three ways to run a validator, all producing the same blocks with the same consensus code:

How Valdium validators work

Validators on Valdium are members of a rotating ~100-validator BFT committee. Each epoch (roughly every 4 hours), the protocol selects committee members from the eligible candidate set using a stake-weighted lottery. Selected validators take turns proposing blocks and sign every block with their ML-DSA-65 (Dilithium3) post-quantum key.

A block becomes final when 2/3 of committee voting power has pre-committed — typically within 2 seconds of proposal. No reorgs are possible once a block is finalized.

Read more: Consensus & Validators.

Requirements

See Hardware Requirements for the full specification.

Method 1 — Desktop app

The easiest path. Recommended for first-time validators, non-technical users, and anyone who wants a GUI.

  1. Download Valdium Operator for your OS (macOS, Windows, or Linux).
  2. Open the app. Create a new wallet, or import an existing one with your recovery phrase.
  3. Click Sync. The app downloads the chain from genesis — takes 5–15 minutes on the testnet.
  4. Click Stake. Enter the amount of VLD to bond (minimum 1,000) and confirm.
  5. The app registers your validator with the protocol and starts producing blocks when your epoch comes up. The system tray icon shows your status in real time.

That's it. The app keeps your node running in the background even when the main window is closed.

Method 2 — VPS one-liner

Recommended for operators who want their validator running 24/7 on a dedicated machine, or who already have a server.

On a fresh Ubuntu 22.04 or Debian 12 VPS, run:

curl -fsSL testnet.valdium.xyz/install/validator | bash

The script does everything: installs dependencies, generates a Dilithium3 key, syncs the chain, registers your validator, and writes a systemd unit so the node restarts on boot. You'll be prompted once for the amount of VLD to bond.

After install, check status with:

valdium status systemctl status valdium

Method 3 — Build from source (coming soon)

Once the repository is public, Method 3 will be: clone the repo, build the binary, write your own systemd unit. Full control over every flag and config. Until then, use Method 1 or Method 2 — they run the same validator binary under the hood.

Staking & bonding

To activate your validator, you must bond at least 1,000 VLD as self-stake. Your bonded VLD is the economic collateral that secures consensus — if you double-sign or repeatedly go offline during your assigned epochs, a portion of your stake will be slashed.

You can top up your bond at any time. Delegators can also stake to your validator, increasing your selection weight without you having to put up more capital yourself. Delegated stake is slashed proportionally if you misbehave.

Unbonding & withdrawing

Stake is locked for a 14-day unbonding period after you initiate withdrawal. During this window your validator stops earning rewards but remains slashable for past actions. After 14 days the funds become available in your wallet again.

Slashing

Slashing parameters are governance-tunable. Read the full slashing spec for the current values.

Monitoring your node

The desktop app shows live status, peer count, current epoch, and rewards earned. For CLI installs, useful commands:

valdium status # current sync state, peers, validator status valdium logs -f # tail the node logs valdium rewards # claimable + pending rewards valdium peers # connected peer list journalctl -u valdium # systemd logs (if installed via one-liner)

A Prometheus exporter ships with the node binary on port 9100 — point Grafana at it for dashboards. See Monitoring & Logs for the full setup.