Setup guide
Stand up a Solidus validator from a fresh VPS in ~10 minutes. Walks through prerequisites, installation, configuration, DID registration, staking, and verification.
Prerequisites
Before you start, make sure you have these in place. The hardest requirement is KYC L2 — without it the chain will refuse your validator DID registration.
- 1KYC Level 2— Verified identity via identity.solidus.network. Free; takes ~5 minutes.
- 2Minimum stake— 10,000 SLDS (Light Node) · 100,000 SLDS (Subnet) · 1,000,000 SLDS (Core).
- 3Hardware— 2 GB RAM minimum, 1 TB SSD, 100 Mbps network. See the Hardware requirements for tier-specific guidance.
- 4Open ports— TCP 9651 (P2P) reachable from the public internet. RPC stays on 127.0.0.1.
Installation
Pick the install method that matches your environment. All three produce the same signed binary.
# One-line install. Verifies SHA256 + Ed25519 signature. curl -fsSL https://releases.solidus.network/install.sh | sh # Inspect first if you'd rather not pipe to sh: curl -fsSL https://releases.solidus.network/install.sh -o install.sh shasum -a 256 install.sh less install.sh && sh install.sh
Why pipe-to-sh is fine here
curl ... -o install.sh && less install.sh if you'd rather audit it first.Configuration
The installer drops a default config at /etc/solidus/config.toml. The defaults work for a Light Node. Edit the bracketed sections below to tune for your tier.
[node] name = "my-validator-01" data_dir = "/var/lib/solidus" log_level = "info" [network] listen_port = 9651 rpc_port = 9652 # bound to 127.0.0.1 only max_peers = 50 [validator] did = "did:sol:..." # set after registration reward_address = "0x..." tier = "subnet" # light | subnet | core [storage] pruning_mode = "archive" # archive | pruned prune_keep_blocks = 256000 # only used if pruning_mode = "pruned" [updater] auto_update = true channel = "stable" # stable | beta
| Key | Default | When to change |
|---|---|---|
| node.data_dir | /var/lib/solidus | Move to a larger / faster volume |
| network.listen_port | 9651 | Conflicts with another service |
| network.max_peers | 50 | Constrained CPU/bandwidth — lower to 25 |
| storage.pruning_mode | archive | Light Node + low disk — use "pruned" |
| updater.auto_update | true | Production: leave true (security) |
Register validator DID
Once you have KYC L2, bind a validator DID to your node. The DID is your on-chain identity — it's what receives rewards and accumulates reputation.
# Generate a new validator DID (writes to ~/.solidus/keys/) solidus-cli did create --tier subnet # → did:sol:b3d1f8c4a7f2e91c5b... (copy this) # Register the DID on-chain (requires KYC L2 binding) solidus-cli did register \ --did did:sol:b3d1f8c4a7f2e91c5b... \ --kyc-credential ~/.solidus/kyc/level2.vc.jwt
Keep ~/.solidus/keys/ off shared storage
Stake SLDS
Lock the stake amount required for your tier. Stake unbonds 21 days after you initiate withdrawal.
# Stake 100,000 SLDS to your validator DID (Subnet tier) solidus-cli stake \ --did did:sol:b3d1f8c4a7f2e91c5b... \ --amount 100000
Prefer a GUI? The setup wizard walks through staking step-by-step with a connected wallet.
Start the node
The installer drops a systemd unit at /etc/systemd/system/solidus-node.service. Enable it so the node starts at boot.
# Enable + start sudo systemctl enable --now solidus-node # Confirm it's running sudo systemctl status solidus-node # Tail logs (real-time) sudo journalctl -u solidus-node -f
Verify operation
Once the node has been up for 1-2 minutes, check that it's syncing and connected to peers.
# Block height (should grow over time)
curl -s http://127.0.0.1:9652 -d '{"jsonrpc":"2.0","method":"solidus_blockNumber","id":1}' | jq
# Peer count (>= 3 expected within first 5 minutes)
curl -s http://127.0.0.1:9652 -d '{"jsonrpc":"2.0","method":"solidus_peerCount","id":1}' | jq
# Validator status — should show "active" once stake confirms (~1 epoch)
solidus-cli validator status --did did:sol:b3d1f8c4a7f2e91c5b...You're live

