Updated: 7/28/2026

Use Testnet

Developing against Kaspa testnet-10 - running a testnet node, connecting SDKs, and getting test KAS.

Testnet runs the same protocol as mainnet with worthless coins. Use testnet-10 (TN10) while developing - it is the active public testnet, and the network where hardforks are staged before mainnet (both Crescendo and Toccata ran on TN10 first).

The testnets

  • Testnet-10 - the active public testnet. Default when running kaspad --testnet.
  • Testnet-11 - defunct. It served as the 10 BPS testing ground pre-Crescendo; node support was dropped from rusty-kaspa releases starting v0.17.0 (March 2025).
  • Testnet-12 - a separate covenants experiment run from a dedicated tn12 branch pre-Toccata (see testnet12.md). Unclear whether it remains active now that Toccata is on mainnet.

Run a testnet node

Same as running a mainnet node, plus network flags:

kaspad --testnet --netsuffix=10 --utxoindex

TN10 is the default netsuffix, but the official guidance is to specify it explicitly. Data lands in its own subfolder under ~/.rusty-kaspa. Testnet-10 ports: P2P 16211, gRPC 16210, wRPC 17210 (borsh) / 18210 (json) - see Network Parameters.

Connect SDKs to testnet

Pass the testnet network id instead of mainnet:

// WASM SDK
const rpc = new RpcClient({ resolver: new Resolver(), networkId: 'testnet-10' });

Testnet addresses use the kaspatest: prefix and their own BIP-44 derivation network type. A mainnet address cannot be used on testnet - the prefix is covered by the address checksum.

Get test KAS

  • Faucets. See the faucet list. The official docs point to faucet-testnet.kaspanet.io for TN10.
  • CPU mine it. Testnets are CPU-mineable with kaspa-miner, the miner the official docs recommend for testnets: kaspa-miner --testnet --mining-address kaspatest:... -p 16210 -t 1 against a local synced node. Mined coinbase outputs mature after 1,000 blocks.
  • Ask. Other testnet participants (e.g. the #testnet channel on the Kaspa Discord) can send test KAS.

Note testnet coins have no value and testnets are periodically reset or replaced - do not build anything that assumes testnet state persists.

See Also: Run a Node, Build a Transaction