DocsGetting startedSetup guide

Setup guide

Stand up a Solidus validator from a fresh VPS in ~10 minutes. Walks through prerequisites, installation, configuration, DID registration, staking, and verification.

~10 min · 7 stepsPre-release · v0.1.0

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.

  • 1
    KYC Level 2— Verified identity via identity.solidus.network. Free; takes ~5 minutes.
  • 2
    Minimum stake— 10,000 SLDS (Light Node) · 100,000 SLDS (Subnet) · 1,000,000 SLDS (Core).
  • 3
    Hardware— 2 GB RAM minimum, 1 TB SSD, 100 Mbps network. See the Hardware requirements for tier-specific guidance.
  • 4
    Open 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.

install (curl)
# 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

The install script is GPG-signed and itself verifies the binary's SHA256 + signature before installing. Inspect with 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.

/etc/solidus/config.toml
[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
KeyDefaultWhen to change
node.data_dir/var/lib/solidusMove to a larger / faster volume
network.listen_port9651Conflicts with another service
network.max_peers50Constrained CPU/bandwidth — lower to 25
storage.pruning_modearchiveLight Node + low disk — use "pruned"
updater.auto_updatetrueProduction: 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.

solidus-cli
# 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

Your validator signing key is in this directory. Loss = inability to validate. Theft = ability to sign as you (slashing risk). Back it up offline; never sync it to cloud storage.

Stake SLDS

Lock the stake amount required for your tier. Stake unbonds 21 days after you initiate withdrawal.

solidus-cli
# 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

Once your validator status reads active, you'll start producing blocks at your tier's expected rate. Open the operator dashboard to watch performance, rewards, and uptime in real time.
Setup Guide