- install guide
- contributions
Solana Testnet Validator Installation Guide
About the testnet cluster
Solana's testnet cluster is where new releases are exercised before mainnet.
It is not a low-stakes toy: testnet runs the same software under real load, and
operating there is the accepted way to demonstrate competence before taking on
mainnet stake. It is also where the Solana Foundation Delegation Program looks
for a track record.
Differences from mainnet that change what you do:
- Restarts and cluster restarts are normal. Testnet is upgraded first and occasionally restarted from a snapshot by coordination. Being ready to follow a restart announcement is part of the job here in a way it is not on mainnet.
- Hardware requirements are lower, but not trivially so — testnet frequently runs heavier synthetic load than mainnet.
- SOL is worthless here, but the vote account still needs a balance, because voting still costs fees. A testnet validator that stops voting has usually just run out of test SOL.
- If you intend to apply to a delegation program, note that the client you run on testnet and mainnet is expected to match. Switching clients on only one of the two can disqualify you.
The install procedure is the mainnet one. This page states the deltas.
Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 12 cores / 24 threads | 24+ cores |
| RAM | 128 GB | 256 GB |
| Ledger disk | 1 TB NVMe | 1 TB NVMe, dedicated |
| Accounts disk | 500 GB NVMe | 500 GB NVMe, dedicated |
| Network | 1 Gbps | 10 Gbps |
Ledger, accounts and snapshots on separate filesystems, off root — same rule as mainnet, same consequence when ignored.
Point the CLI at testnet
Keys and vote account
Generate a separate identity and vote account for testnet. Never reuse the mainnet identity keypair on testnet — one identity, one running process, per cluster:
Fund the identity from the faucet, then create the vote account:
Unit differences
Use the mainnet unit as the template and change the cluster wiring:
--expected-genesis-hash is worth setting explicitly. It is the cheapest
guarantee that a misconfigured entrypoint has not quietly joined you to a
different cluster.
Verify
As on mainnet, the only real health signals are external: delinquent=false, a
fresh lastVote, and an advancing rootSlot.
Following a cluster restart
Testnet restarts are announced with a specific slot and snapshot hash. When one happens:
- stop the validator;
- follow the announced procedure exactly — usually a hard fork at a named slot with specific flags;
- start, then confirm your node is on the announced fork by comparing your block hash at a common slot with a public testnet RPC, not just your height.
Equal height on a different fork is the failure that looks like success.
Monitoring
Same as mainnet, plus: vote account balance (top it up from the faucet before it empties) and awareness of the release and restart announcements for the cluster.
Created by POSTHUMAN validators
Website: https://posthuman.digital