Release prep

Kaspa solo mining guide

You have a Kaspa ASIC and a node. The missing piece is a Stratum bridge. Your miner speaks Stratum. Your Kaspa node speaks Kaspa RPC. The bridge sits between them.

Status checked June 29, 2026: Rusty Kaspa v2.0.1 can be used as the Toccata upgrade release. The Rusty Kaspa Stratum Bridge is marked beta in the official docs. Toccata remains DAA-gated at 474,165,565 until mainnet reaches the activation score.

Plain version

What you are building

Miner

Your ASIC does the hashing. Its web screen usually asks for a pool URL, username, and password.

Bridge

The Rusty Kaspa Stratum Bridge accepts the miner connection and talks to a Kaspa node.

Node

Your node gives the bridge block templates and receives solved blocks.

Wallet address

The address in the miner username is where a solo block reward should go if your miner finds a block.

Solo mining has variance. A connected miner can submit shares for a long time without finding a block. Shares prove the miner is talking to the bridge. A block reward arrives only if your hardware finds a valid block.

Quick path

The beginner setup

Use one computer for the node and bridge. Keep two terminal windows open on that computer, then open the miner web screen in your browser.

  1. Download the Rusty Kaspa zip for the node computer.
  2. Extract the zip and open a terminal in that folder.
  3. Terminal window A runs kaspad. Leave it open.
  4. Terminal window B runs stratum-bridge. Leave it open.
  5. The bridge dashboard opens at http://127.0.0.1:3030/ on the node computer.
  6. The miner points to the node computer's local IP plus port 5555.
  7. The miner username is your Kaspa receive address plus a worker name.
  8. The dashboard should show a worker, shares, and hashrate.

Keep the node, bridge, and miner on the same local network for the first setup. Do not expose RPC, dashboard, or Stratum ports to the public internet while learning.

What you need

Before touching the miner

ASIC

An IceRiver, Bitmain, Goldshell, or another compatible Kaspa ASIC. The bridge docs also list BzMiner support.

Node computer

A computer running Rusty Kaspa v2.0.1 or newer. The safer beginner setup runs bridge and node on the same machine.

Wallet address

A Kaspa address for rewards. Copy it carefully. Never paste a private key into miner or bridge settings.

Local IP

The IP address of the node computer on your home network, such as 192.168.1.10.

Bridge folder

The Rusty Kaspa release archive includes the stratum-bridge binary and the sample config path bridge/config.yaml.

Patience

Solo mining is lumpy. A working setup can show shares while block rewards remain rare.

Download

Which Rusty Kaspa file do I download?

Use the official Rusty Kaspa v2.0.1 release page. Download the archive that matches the computer running your node and bridge.

Computer Release asset
Windowsrusty-kaspa-v2.0.1-win64.zip
macOSrusty-kaspa-v2.0.1-osx.zip
Linux, 64-bit Intel/AMDrusty-kaspa-v2.0.1-linux-amd64.zip

Use the release asset for your operating system. Skip the GitHub Source code zip and the WASM SDK zip; they are for different jobs.

Extract

Get from zip file to working folder

The commands below run from the extracted Rusty Kaspa folder on your computer. GitHub supplies the download. The unopened zip stores the files. The terminal needs the extracted folder.

Windows

Right-click the downloaded zip, choose Extract All, then open the extracted folder. You should see kaspad.exe, stratum-bridge.exe, and a bridge folder.

macOS

Double-click the zip. Safari may already have made the folder for you. Open the extracted folder and look for kaspad, stratum-bridge, and bridge/config.yaml.

Linux

Use your file manager's Extract option, or run unzip rusty-kaspa-v2.0.1-linux-amd64.zip. Then enter the extracted folder before running commands.

When this guide says "open a terminal in that folder," it means the extracted Rusty Kaspa folder that contains the node, bridge, and bridge/config.yaml.

Pick your route

Which instructions apply to you?

Your setup Use this route
Node already runs on WindowsUse the Windows bridge command in external-node mode, then point the ASIC at the Windows computer's local IP.
Node already runs on macOS or LinuxUse the macOS / Linux bridge command in external-node mode, then point the ASIC at that computer's local IP.
You downloaded Rusty Kaspa but have not started the nodeStart kaspad first, wait for sync, then start the bridge.
You want the bridge to start its own nodeUse in-process mode from the official bridge docs. The beginner route below uses external-node mode because you said you already have a node.
Your node is on another computerKeep the first attempt on one machine if possible. If the node stays remote, edit the bridge config so kaspad_address points to that node's RPC address.

Step 1

Open terminal window A and run the node

First, get into the extracted Rusty Kaspa folder. On Windows, open the folder in File Explorer, click the address bar, type powershell, and press Enter. On macOS or Linux, open Terminal, type cd , drag the extracted folder into Terminal, and press Enter.

Run the node command for your system. Keep this window open. The bridge needs the node to stay running.

Windows PowerShell

Terminal window A

.\kaspad.exe --utxoindex --rpclisten=127.0.0.1:16110
macOS / Linux

Terminal window A

./kaspad --utxoindex --rpclisten=127.0.0.1:16110

Let the node sync before expecting useful mining results. If your node already runs with your own flags, keep your normal flags and add the RPC listen setting only if the bridge cannot reach the node. The official bridge docs use 127.0.0.1:16110 for the node RPC address.

Step 2A

Open terminal window B and run the bridge on Windows

PowerShell command, dashboard check, port check, and debug logs.
  1. Leave the node running in terminal window A.
  2. Open a second PowerShell window in the same extracted Rusty Kaspa folder.
  3. Run the bridge in external-node mode.
  4. Leave this window open too.
.\stratum-bridge.exe --config bridge/config.yaml --node-mode external

Then open the dashboard in a browser on the node computer:

http://127.0.0.1:3030/

To check whether the bridge is listening on port 5555:

netstat -ano | findstr :5555

To turn on more detailed bridge logs before starting it:

$env:RUST_LOG="info,kaspa_stratum_bridge=debug"

If PowerShell says it cannot find bridge/config.yaml, you are probably in the wrong folder. If the dashboard does not open, the sample config may not be loaded or the bridge may have stopped. Read the last few lines in terminal window B.

Step 2B

Open terminal window B and run the bridge on macOS or Linux

Terminal command, dashboard check, port check, and debug logs.
  1. Leave the node running in terminal window A.
  2. Open a second Terminal window in the same extracted Rusty Kaspa folder.
  3. If needed, allow the binary to run.
  4. Run the bridge in external-node mode.
  5. Leave this window open too.
chmod +x ./stratum-bridge
./stratum-bridge --config bridge/config.yaml --node-mode external

Then open the dashboard in a browser on the node computer:

http://127.0.0.1:3030/

To check whether the bridge is listening on port 5555:

lsof -i :5555

To turn on more detailed bridge logs for one run:

RUST_LOG="info,kaspa_stratum_bridge=debug" ./stratum-bridge --config bridge/config.yaml --node-mode external

If Terminal says it cannot find bridge/config.yaml, you are probably in the wrong folder. On macOS, Gatekeeper may ask you to approve a downloaded binary. Use your normal security process and only run binaries from the official Rusty Kaspa release page.

Other route

If the bridge should start its own node

In-process mode from the official bridge docs.

The official bridge docs also show in-process mode. In that mode the bridge starts kaspad in the same process.

Windows PowerShell

Bridge plus in-process node

.\stratum-bridge.exe --config bridge/config.yaml --node-mode inprocess -- --utxoindex --rpclisten=127.0.0.1:16110
macOS / Linux

Bridge plus in-process node

./stratum-bridge --config bridge/config.yaml --node-mode inprocess -- --utxoindex --rpclisten=127.0.0.1:16110

Use the -- separator exactly as shown. Bridge flags go before it. Node flags go after it.

Step 3

Find the node computer's local IP address

Your miner needs the local network address of the computer running the bridge. It usually looks like 192.168.x.x or 10.0.x.x.

Windows

PowerShell or Command Prompt

ipconfig

Look for the active Wi-Fi or Ethernet adapter and copy the IPv4 Address.

macOS

Wi-Fi

ipconfig getifaddr en0

If Ethernet is active, System Settings can be easier: Network, then your active connection, then Details.

Linux

Terminal

hostname -I

Use the address on the same network as your miner.

Step 4

Point the ASIC at the bridge

Open your miner's web screen. If you do not know the miner's IP address, check your router's connected-device list or the setup tool from the miner manufacturer. Type the miner IP into a browser, sign in, then find the mining or pool configuration page.

Use the bridge computer's local IP address and one of the Stratum ports from the sample config. Start with port 5555.

Miner field Put this in Example
Pool URL <node-computer-ip>:5555 192.168.1.10:5555
Username / worker kaspa:YOUR_WALLET_ADDRESS.WORKERNAME kaspa:kaspa:qq...abcd.ks0
Password Use the miner UI default if it requires a value. x is common in miner UIs, but the Rusty Kaspa bridge docs define only pool URL and username.

A Kaspa address already starts with kaspa:, so the username can look like kaspa:kaspa:.... That matches the official bridge format. Some miner screens want a URL prefix. The official bridge docs show the pool URL as <your_pc_IPv4>:<stratum_port>. If your miner rejects that, check its manual for the exact Stratum URL format.

Miner brands

What changes by miner or software type?

IceRiver, Bitmain, BzMiner, Goldshell, and field-name differences.

The bridge docs say the bridge automatically detects several miner and mining-software types and adjusts the protocol handling. The setup screen still belongs to the miner manufacturer, so labels can differ.

IceRiver

The bridge docs list IceRiver support and say these miners require extranonce plus a single hex string job format.

Bitmain

The bridge docs list Bitmain and GodMiner support and say these miners use no extranonce, with array plus timestamp job format.

BzMiner

The bridge docs list BzMiner support and say it requires extranonce plus a single hex string job format.

Goldshell

The bridge docs list Goldshell support and say it requires extranonce plus a single hex string job format.

For a beginner, the practical fields are still the same: pool URL, username or wallet field, and password if the miner UI requires one.

Ports

Pick the first port

Start with 5555, then use lower difficulty ports only for troubleshooting.

The sample config exposes several Stratum ports. Start with 5555. Use lower difficulty ports only when you are troubleshooting a connection or the bridge docs tell you to match a weaker worker.

Port Sample config purpose
5559Very low-difficulty workers.
5560Low-difficulty workers.
5561Medium-difficulty workers.
5555Higher-difficulty workers. Start here for a normal ASIC setup.
5556, 5557, 5558Higher difficulty ports.
Step 5

Check that it is working

Bridge window, dashboard, miner screen, and node checks.
Bridge window

The bridge should keep running and show miner connection or job activity.

Dashboard

Open http://127.0.0.1:3030/. Look for active workers, shares, hashrate, and recent activity.

Miner screen

The miner should show an active pool, accepted shares, and hashrate.

Node

The node should stay synced and continue receiving network updates.

Accepted shares are a setup signal. A found block is the reward event. Solo mining can be configured correctly while rewards remain rare.

Toccata

Toccata mining checks

Version, DAA gate, post-Toccata template fields, and testnet checks.

Toccata changes the mining path because post-activation block templates can contain new transaction fields. The official node guide warns pools and custom mining stacks to preserve those fields from block template to solved block submission.

Upgrade

Use Rusty Kaspa v2.0.1 or newer for the node and bridge path.

DAA gate

Mainnet activation is scheduled at DAA score 474,165,565. Check Toccata status before calling it live.

Template fields

Custom mining software must preserve post-Toccata fields such as transaction version, storage mass, compute budget, and covenant outputs.

Test first

Use Testnet-10 where possible before relying on a mainnet mining path after activation.

Fixes

If it does not connect

Pool dead, empty dashboard, bridge-node RPC, firewall, rewards, and activation-day checks.
Symptom Check
Miner says pool deadUse the node computer's local IP address inside the miner screen. 127.0.0.1 points the miner back at itself.
Dashboard is emptyCheck the bridge is still running, the miner is on the same network, and the pool URL uses a port from the sample config.
Bridge cannot reach nodeConfirm the node is running with RPC at 127.0.0.1:16110 or update the bridge config to the node's RPC address.
Firewall blocks connectionAllow the Stratum port on the node computer for your local network.
No rewardsCheck shares first. Rewards need a solved block, and solo mining variance can be brutal.
Toccata activation dayRecheck versions and logs. After activation, blocks that strip new fields can be invalid.
Safer setup

What to avoid

Network exposure, wallet safety, shares versus blocks, and Toccata compatibility.
Network exposure

Keep node RPC, the bridge dashboard, and Stratum ports on your local network while learning. Public ports invite avoidable trouble.

Wallet safety

Use a public Kaspa receive address for the miner username. Never paste a seed phrase or private key into miner, bridge, or dashboard settings.

Shares versus blocks

Accepted shares show the miner is talking to the bridge. They do not mean a payout is coming soon. Solo rewards need a found block.

Toccata compatibility

After Toccata activation, use current node, bridge, pool, and custom mining software. Old software can drop new block-template fields.

Sources

Official references

Rusty Kaspa bridge docs, config, node guide, release files, and activation status.

Bridge how-to

Rusty Kaspa Stratum Bridge docs cover beta status, external-node mode, in-process mode, dashboard, ports, miner setup, and the username format.

Bridge config

Sample bridge config shows the default dashboard port, Stratum ports, and bridge settings.

Toccata node guide

Toccata node setup guide covers v2.0.1 upgrade guidance, miner and pool checks, fee policy, and post-Toccata field preservation.