Skip to content

Run a validator today (2026) ​

Validators produce and finalize The Root Network's blocks, and keep the Ethereum and XRPL bridges honest. With much of the original infrastructure offline since the handover, every extra validator matters. This page is the current, tested way to run one. The other pages in this guide are the original Futureverse guide, kept for reference.

What you need ​

A machine that stays on4 cores, 8 GB RAM or more (16 GB is comfortable), 100 GB free SSD, a steady connection (wired if you can)
ROOTat least 100,000 ROOT bonded (staking.minValidatorBond), in a wallet you hold the keys for, or a FuturePass that wallet owns
XRPa few XRP for transaction fees
A walletMetaMask or the suite passkey wallet

A FuturePass that already nominates with 100,000 ROOT or more can switch to validating directly: no unstaking, no 28-day wait.

The simple path: Intel Mac ​

  1. Get the kit and a snapshot. Both are published in Codeology's signed catalog and shared over BitTorrent. Open them with rootscanner (its Catalog page checks the signature and the sha256 for you), or with any BitTorrent app:

    ItemSizesha256
    Intel Mac validator kit 11.0.031 MBc1cf561b5f408a5f30deb571b468da645373c2db7e54ed8f92dd700f85557c72
    Mainnet snapshot, block 28,528,61623.5 GBd791f42e0ddb126150b8c379b6592edd14b8921002ab076387daa7a9c4c51745

    Kit: magnet:?xt=urn:btih:4066733d13920cbac49abd30f7f5ac13e65a61a7

  2. Install. Unpack the kit and run, choosing your validator's name:

    sh
    ./install.sh --name my-validator --snapshot /path/to/the/snapshot.tar.gz

    It checks the Mac (including that swap is on, see below), verifies and unpacks the snapshot, installs the node so it starts at boot, turns sleep off, waits for the node to catch up with the network (a few hours), and prints your session keys.

  3. Go live. Open staking.trn.codeology.co.nz/validator, sign in with the wallet that holds the ROOT, choose wallet or FuturePass, paste the session keys, set a commission and sign once. That one transaction bonds (if needed), sets the keys and starts validating. You join the active set at the next era (eras are 24 hours) if elected.

The advanced path: any machine ​

  • Node: build the TRN seed node from the public mirror, https://github.com/marco-fv/trn-seed-public. The original futureversecom dependency forks are deleted; point Cargo at the same revisions in upstream paritytech/substrate and polkadot-evm/frontier with a [source] replacement, by commit SHA.

  • Data: start from the snapshot above (unpack into the node's base path) rather than syncing from genesis.

  • Run it:

    sh
    seed --chain root.json --base-path /data --name my-validator --validator \
      --state-pruning 256 --sync full \
      --eth-http https://ethereum-rpc.publicnode.com --xrp-http https://s1.ripple.com:51234 \
      --bootnodes /ip4/57.128.211.228/tcp/30333/ws/p2p/12D3KooWDoorKnooNXiBfwMLEHFuPs86jeudBtaiQnYjCE2uquf7 \
      --port 30333 --rpc-port 9944

    --eth-http and --xrp-http are required for a validator: it watches both chains for the bridges. Forward TCP 30333 to the machine if you can.

  • Keys: once in sync, call author_rotateKeys on the node's local RPC. The result (0x + 258 hex characters) is what the validator page asks for.

Rules that protect your stake ​

  • Never run the same session keys on two machines at once. Both would sign blocks (equivocation) and the stake is slashed. To move machines: stop the old node first, then make new keys on the new one.
  • Stay online. A validator that stops producing blocks is marked offline and can be penalised. Short restarts are fine.
  • To stop: use Stop validating on the validator page (staking.chill) before you turn the node off.

Problems we hit, and the fixes ​

SymptomCauseFix
Full sync from genesis stops for good at block 8,260,345 with "Digest item must match that calculated"The 2023 network ran an XRPL-bridge hotfix that was never published; today's node, running the published code, computes a different result for that blockStart from the snapshot instead. (A one-constant fix to the spec-42 runtime gets past it too, but the snapshot is far quicker.)
Fast (warp) sync downloads ~3 GB of state, then the node grows past 20 GB of memory and is killedThis node version builds the whole state in memory, in several copies, before writing any of itStart from the snapshot. Warp needs a machine with 32 GB+ (and swap)
macOS kills the node: "low swap: killing largest compressed process"Swap is off: a restart that never finished (often a stuck macOS update in another user's session) turns it offRestart the Mac; check sysctl vm.swap_enabled says 1
The node's memory creeps up while catching upMemory use grows during a long syncRestart it when it passes ~8 GB (the kit's watchdog does this for you)
No peersThe chain-spec bootnodes' DNS names are gonePass --bootnodes as above

Names ​

TRN has no on-chain identity pallet yet. Validators declare a name in the ownerless TrnRegistry contract (0x28C8B12177e8e359f6a01F2F71f8C7D35BD8C766 on Root's EVM; unique, first come, first served) from the validator page, in the same signature as validating. It also anchors publishers' signed catalogs, so anyone with a node can check which catalog is current. Sites that read it show self-declared names; names on Codeology's checked list carry a ✓.

Curated independently. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.