Run a validator node on the Vexidus network and earn VXS rewards for securing the chain.
- Read the full Setup Guide
- Get testnet VXS from the faucet
- Stake a minimum of 1,000 VXS to join the active validator set
- Set your commission rate and validator profile
| Path | Description |
|---|---|
SETUP_GUIDE.md |
Complete validator setup guide (requirements, install, config, staking, troubleshooting) |
genesis/ |
Genesis files required by all validators (must be byte-identical across nodes) |
sdk/ |
Validator SDK (Rust) — keypair management, RPC client, config generation |
Validators earn from two sources:
- Block rewards — ~4.94 VXS per block (Year 1-2 rate, 0.8% annual inflation)
- Transaction fees — 100% of fees go to the block proposer
Testnet validators who maintain high performance earn mainnet VXS airdrops at launch, proportional to on-chain reputation score.
| Parameter | Value |
|---|---|
| Minimum stake | 1,000 VXS |
| Block time | 12 seconds |
| Unbonding period | 21 days |
| P2P transport | QUIC (UDP) |
| Consensus | HyperSync BFT + Vexcel Attestation DAG |
| Tx delivery | Dragonfly Stream (direct, PQ-sealed) or gossip mempool |
| Gas price | ~$0.0002 per transfer |
EU (Gravelines, France):
/ip4/51.255.80.34/udp/9945/quic-v1/p2p/12D3KooWGsFiGx7DxkmELeF7mymWQHpCwuQQ1Arx1DgCFBJixbbz
NA (Beauharnois, Canada):
/ip4/158.69.203.54/udp/9945/quic-v1/p2p/12D3KooWFyDKj3e8a9QQ2au3vmjQHDYCZp86kQoua7NLX1mSZsCL
Asia (Singapore):
/ip4/205.198.87.150/udp/9945/quic-v1/p2p/12D3KooWNtRB1LKdKCTsiqm4e4tCKrvDTHpzVmYKA1uYobmbyVv3
Use all three in your --bootnodes flag (comma-separated) for best redundancy.
The sdk/ folder contains the Validator SDK source for programmatic node management:
use vexidus_sdk::{ValidatorKeypair, ValidatorClient, ValidatorConfig};
// Generate a validator key
let keypair = ValidatorKeypair::generate();
keypair.save("/opt/vexidus/validator.key")?;
// Connect to your node
let client = ValidatorClient::new("http://localhost:9933");
// Stake to register
client.stake("YOUR_ADDRESS", "1000", &keypair.public_key_hex()).await?;
// Set commission (500 = 5%)
client.set_commission("YOUR_ADDRESS", 500).await?;
// Set your profile
client.set_validator_metadata(
"YOUR_ADDRESS",
"My Validator",
"Reliable validator node",
"https://mysite.com",
"https://mysite.com/avatar.png",
).await?;
// Check status
let info = client.get_validator("YOUR_ADDRESS").await?;