Updated: 7/28/2026

Run a Node

Running a Kaspa full node (rusty-kaspa kaspad) - install, run, verify sync.

Running a node provides a trustless view of the network and a local RPC endpoint for development. Kaspa nodes prune by default, keeping storage requirements manageable despite the 10 BPS block rate.

Hardware

Official post-Crescendo specs, from the rusty-kaspa Crescendo guide:

  • Minimum: 8 CPU cores, 16 GB RAM, 256 GB SSD, ~40 Mbit/s bandwidth.
  • Preferred: 12-16 cores, 32 GB RAM, 512 GB SSD (helps serve syncing peers).

1. Get kaspad

Prebuilt: download the archive for your OS from the rusty-kaspa releases page (e.g. rusty-kaspa-v2.x.x-linux-amd64.zip) and unzip. bin/ contains kaspad and kaspa-wallet. Linux binaries are x86_64 only; ARM requires building from source.

From source: install Rust via rustup plus the protobuf compiler (apt install protobuf-compiler libprotobuf-dev build-essential libssl-dev pkg-config on Debian/Ubuntu, brew install protobuf on macOS), then:

git clone https://github.com/kaspanet/rusty-kaspa
cd rusty-kaspa
git checkout stable   # the README recommends the stable branch for nodes
cargo build --release --bin kaspad
# binary at target/release/kaspad

2. Run

kaspad --utxoindex

--utxoindex enables the address/UTXO index. It is required for wallet functionality and any RPC call that looks up balances or UTXOs by address.

Other notable flags:

  • --testnet - run on testnet-10 instead of mainnet.
  • --rpclisten-borsh / --rpclisten-json - enable wRPC (WebSocket RPC), used by the WASM/Python SDKs and browser clients. Both off by default. gRPC is on by default, bound to loopback.
  • --appdir <dir> - data location. Default ~/.rusty-kaspa, with per-network subfolders (e.g. kaspa-mainnet/).
  • --archival - keep all block data instead of pruning. Only needed for explorers/analytics; heavy disk usage.
  • --ram-scale=<x> - scale RAM cache usage (0.1-10).

3. Sync

Initial sync (IBD) proceeds in stages - pruning proof, headers, the pruning point UTXO set, then block bodies - and takes on the order of hours depending on hardware. Relevant log lines:

IBD started with peer ...
IBD: Processed 1000 headers (2%)
IBD: Processed 5000 blocks (14%)
IBD with peer ... completed successfully

Once synced, the log settles into a steady stream of Accepted block ... via relay - the node is following the DAG tip in real time.

4. Verify via RPC

getServerInfo returns isSynced along with server version and DAA score. Execute it from the RPC Calls page pointed at the node, or from an SDK connection. Default ports are listed in Network Parameters.

Notes

  • Forwarding P2P port 16111 makes the node publicly reachable, which helps network connectivity. RPC ports should normally stay on loopback.
  • No official prebuilt Docker images exist, but the repo ships Dockerfiles: docker build -f docker/Dockerfile.kaspad -t kaspad:latest .