Node

A Testnet-10 node, then tKAS.

tKAS on TN10 today is a synced rusty-kaspa node, a kaspatest: address, and a miner pointed at that node. It is faucet money. It is not mainnet KAS. Official line: CPU mining so you do not own the tiny testnet.

Dated lab notes plus official docs. Pin: rusty-kaspa v2.0.1. Do not use testnet-12. Addresses start with kaspatest:.

What you actually run

Node first. Miner second. Mining while unsynced is how you mine a private fork. There is no official kaspa.exe. The Windows node binary is kaspad.exe from the rusty-kaspa zip.

Do not ASIC or pool this

Wiki line: do not put GPU, FPGA, or ASIC on testnet. Same kHeavyHash, different network, different address prefix. Pointing BzMiner at WoolyPooly or 2Miners is mainnet KAS. Wrong network, wasted power. If you only need coins for scripts, use the faucet.

1. Get a TN10 address

Kaspa-NG set to Testnet-10, rusty wallet, or Rothschild. Copy an address that starts with kaspatest:. If it starts with kaspa:, stop. Optional: fund it from the faucet so you can test spends without waiting for coinbase to mature.

2. Run the node

Download the Windows zip from rusty-kaspa v2.0.1 (rusty-kaspa-v2.0.1-win64.zip). Unzip to a real folder. Confirm you see kaspad.exe. It is often in that folder or one level down in bin.

PowerShell, from the folder that contains the exe. Leave this window open. Closing it kills the node.

cd C:\Kaspa
dir kaspad.exe
.\kaspad.exe --testnet --netsuffix=10 --utxoindex

If you need Borsh RPC as well:

.\kaspad.exe --testnet --netsuffix=10 --utxoindex --rpclisten-borsh=127.0.0.1:17110

Linux:

./kaspad --testnet --netsuffix=10 --utxoindex --rpclisten-borsh=default

Wait until it is synced and has peers. First run can sit on IBD. That is normal. Windows Firewall: allow private networks.

Check the public net is alive before you debug your box: explorer-tn10.kaspa.org · api-tn10.kaspa.org

3. CPU miner (the intended path)

Default TN10 gRPC port is 16210. Start with one thread. Node first, miner second. kaspanet/cpuminer (v0.2.7 lineage):

kaspa-miner --testnet --mining-address kaspatest:YOUR_ADDRESS -p 16210 -t 1

GPU, if you still insist

Official line is still CPU only on TN10. GPU is allowed by physics, not by etiquette. One card can own a network that sits around tens of MH/s. There is no public GPU pool for tKAS. You solo against your own synced node.

After Toccata, block templates carry extra fields. Old GPU miners talking raw gRPC can hash and still submit invalid blocks. If that happens, use node + stratum-bridge + miner, not more overclock.

BzMiner to the node

bzminer -a kaspa -w kaspatest:YOUR_ADDRESS -p node+tcp://127.0.0.1:16210 --nc 1. Some builds want solo+tcp://. Do not use stratum+tcp://pool....

Community miner

tmrlvi/kaspa-miner GPU build. ./kaspa-miner --testnet --mining-address kaspatest:YOUR_ADDRESS -s 127.0.0.1 -p 16210 -t 0. AMD: add --opencl-enable. This miner is old. Hashing with zero accepted blocks is protocol age, not clocks.

Stratum-bridge (least likely to lie after Toccata)

Node as above. Bridge pointed at 127.0.0.1:16210. Miner to the local stratum port (often 5555, confirm with netstat). Do not port-forward that port to the internet. GPU on another PC: use the node PC LAN IP, not 127.0.0.1.

SymptomActual cause
Reconnect loopWrong port (16210 vs 16211 vs 16110) or node not listening
Invalid addressYou used kaspa:
Hashing, zero blocks, rejected submitPre-Toccata miner vs Toccata templates. Use the stratum-bridge path
Mining instantly at startNode not synced. You forked yourself
Pool dashboard on Wooly or F2You are on mainnet. Stop
.\kaspad.exe not foundYou are not in the extract folder. cd to the directory that contains the exe, then run it
invalid IP / glued flagsTwo commands pasted as one line. One command, then Enter