Kaspa is currently only mineable with ASICs. Initially, it was possible to mine it with CPUs and even on mobile devices, and then with GPUs. However, those times have long since passed (they ended around mid-2023) because ASICs—specialized mining machines—have taken over most of the Kaspa network's hashrate.
Technically, it is still possible to mine Kaspa with a GPU or even a CPU, but this endeavor results in a negative profit: you would end up paying more for electricity than you could possibly acquire by selling the mined Kaspa. Therefore, it is wiser to use the same money to directly buy Kaspa; this way, you will have more Kaspa in your possession.
When mining any cryptocurrency, there are two mining modes available: solo and pool.
In solo mining, the mining program (or device, such as an ASIC) directly interacts with the node, requesting tasks for mining (specifically, block templates). Upon successfully solving the cryptographic puzzle, the finished block is returned to the node. The block templates received from the node have the cryptographic puzzle complexity threshold set to the value defined by the network, allowing for immediate incorporation of the found block into the DAG and its dissemination to all other nodes in the Kaspa network.
When mining in a pool, the pool server interacts with the node, and individual miners connect to this server. The server requests block templates from the node and distributes these templates to miners. However, it adjusts the difficulty threshold in the templates to a lower level to facilitate easier solution finding for the miners. The solutions discovered by the miners are collected by the pool. Occasionally, based on the probability theory, a miner's solution may significantly exceed the miner's personal difficulty threshold to the extent that it surpasses the node's “global” difficulty threshold. In such instances, the pool publishes the block to the node on behalf of the server, and the reward is distributed among all miners actively searching for solutions at that time, following the server's rules (PPS, PPLNS, etc.).
In general, solo mining is typically more profitable because pools usually take a percentage of the block reward for their services (and occasionally engage in deceitful practices). However, solving the cryptographic puzzle is inherently a random process. Thus, when engaging in solo mining with equipment that holds a small share of the network's total hashrate, there is a risk of mining for extended periods without finding a block if luck is not on your side. In such cases, it is often more practical to mine in a pool, ensuring a slightly reduced yet stable reward.
You can estimate the number of coins that you will receive per day when mining solo and the average time between discovered block with this calculator. Please note that this is merely the average time that will be obtained over a large observation period (when the result will be evaluated upon finding several dozen of blocks). The time of finding each next block can be both much less and much more than that average.
Please note that the "native" protocol for communicating with the Kaspa node differs from the widespread Stratum one, so no ASIC is able to use it (and, for reference, only two mining programs out of all those on the market were able to work with the node using its native protocol: the Community miner and the BzMiner). In order to provide solo mining ability for other mining software, as well as hardware, such as ASICs, special Kaspa-Stratum adapters have been written, and you need to additionally run them. For more on this topic, see Node: Make Your Node Stratum Compatible.
Note also some pools provide solo mining on them as well. Yet this solo differs from a true solo mining: you're still the only one looking for blocks and getting rewards for it at a full difficulty, but the pool publishes these blocks on your behalf, takes the reward and accounts you with almost all of that reward except the pool fee.
See here.
There are free overclocking firmware versions for IceRiver's ASICs, made by one of the community members, @pbfarmer. Use at you own risk. Seek the community support and troubleshooting at Kaspa's Discord server, channel #mining-and-hardware.
Here are some of the available pools (payout threshold data may be inaccurate, see the latest values on the pool site):
No | Pools | Payout System | Payout Threshold | Mining Guide |
---|---|---|---|---|
1 | Kaspa-pool.org | PPLNS + SOLO | 50 KAS | Read here |
2 | Acc-Pool | PPLNS + SOLO | 100 KAS | Read here |
3 | ViaBTC | PPLNS + SOLO | 50 KAS | Read here |
4 | WoolyPooly | PPLNS | 100 KAS | Read here |
5 | Hashpool.com | PPLNS | 100 KAS | Read here |
6 | Humpool.com | PPLNS | 100 KAS | Read here |
7 | K1POOL | PPLNS + SOLO | 100 KAS | Read here |
8 | 2Miners | PPLNS | 100 KAS | Read here |
9 | Kryptex | PPS+ | 10 KAS | Read here |
10 | F2Pool | PPLNS | 100 KAS | Read here |
11 | Poolin | PPLNS | 100 KAS | Read here |
12 | herominers.com | PROP + SOLO | 10 KAS | Read here |
13 | Antpool.com | PPLNS | 100 KAS | Read here |
A full list of working mining pools is available here.
Below is archival data that makes no sense anymore since ASICs are dominating the network nowadays. Left here for historical references.
There are the following GPU miners in use:
The GPU miner contains precompiled PTX files for different architectures under a different CUDA Toolkits. As a result, devices will need different minimum driver, depending on the PTX they use. The following table lists the minimum requirement for each device in the official releases. If you need to use older drivers with newer GPU, consider compiling the miner along with the PTX.
Compute Version | Compiled With | Driver Linux | Driver Windows | Devices (Examples) |
---|---|---|---|---|
8.6 | CUDA 11.5 | >=495.29.05 | >=496.13 | 30xx, V100 |
7.5 | CUDA 11.5 | >=495.29.05 | >=496.13 | 16xx, 20xx |
6.1 | CUDA 11.2 | >=460.32.03 | >=461.33 | 10xx |
3.0 | CUDA 9.2 | >=396.37 | >=398.26 | |
2.0 | CUDA 8.0 | >=375.26 | >=376.51 |
To update drivers for Windows/MacOS you should act as usual: go to NVidia's site, find a driver there, download it and install. For a HiveOS updating process see the appropriate article.
The following is the easiest possible way to test Kaspa GPU-mining.
There are currently two (known) GPU miner implementations - the open-source community miner and BzMiner.
According to some the community miner is faster on AMD GPUs and BzMiner on nVidia - so be sure to try out both.
It is recommended to tune core and mem clock (high core, low mem) for better hashrate and lower power use.
- As well as making sure the miner is restarted when freezing or crashing (at minimum a "while true" in the .bat-file).
See here for clock settings.
https://wallet.kaspanet.io/ (write down the recovery phrase and keep it in a safe location).
Download and unpack Kaspa Miner for Windows (https://github.com/tmrlvi/kaspa-miner/releases)
Right-click and edit mine.bat, add your wallet address on line 6 (replacing kaspa:......).
Double-click mine.bat.
Download and unpack BzMiner for Windows (https://github.com/bzminer/bzminer/releases)
Right-click and edit kaspa.bat, add your wallet address on line 7 (replacing kaspa:0000).
Double-click kaspa.bat.
Download and unpack Kaspa Miner for Linux (https://github.com/tmrlvi/kaspa-miner/releases)
Create empty file mine.sh in miner directory with the following content:
while true; do ./kaspa-miner* -a kaspa:<your_wallet_address> -s n.seeder1.kaspad.net; done
Run mine.sh (sh ./mine.sh).
Download and unpack BzMiner for Linux (https://github.com/bzminer/bzminer/releases)
Edit kaspa.sh, add your wallet address on line 7 (replacing kaspa:0000).
Run kaspa.sh (./kaspa.sh).
Download and unpack GMiner for Windows (https://github.com/develsoftware/GMinerRelease/releases)
Right-click and edit mine_kaspa.bat, and add your wallet address (replacing kaspa:0000).
Example bat file:
miner.exe --algo kheavyhash --server stratum+tcp://kaspa-pool.org:4444 --user kaspa:0000 --dag_mode 0 --p2state 1 --watchdog 1 --watchdog_mode 0 --api 4003 --pec 1 --nvml 1
Double-click mine_kaspa.bat.
For a full list of Gminers options and possible configurations see the readme (https://github.com/develsoftware/GMinerRelease)
Download and unpack GMiner for Linux (https://github.com/develsoftware/GMinerRelease/releases)
Edit mine_kaspa.sh, and add your wallet address on line 3 (replacing kaspa:0000).
Run mine_kaspa.sh (./mine_kaspa.sh).
Download and unpack LOLMiner for windows (https://github.com/Lolliedieb/lolMiner-releases/releases/tag/1.63)
Right-click and edit mine_kas.bat, and add your wallet address (replacing kaspa:0000)
Edit the Pool to the stratum you are going to mine at.
For best efficiency lock your core and memory clock by editing the EXTRAPARAMETERS. Right after --apiport 8020 add
mclk 810 --cclk 1470
Double-click mine_kas.bat.
Download and unpack LOLMiner for windows (https://github.com/Lolliedieb/lolMiner-releases/releases/tag/1.63)
Right-click and edit mine_kas.sh, and add your wallet address (replacing kaspa:0000)
Edit the Pool to the stratum you are going to mine at.
Run mine_kas.sh (./mine_kas.sh).
1. Create a wallet for holding your KAS :
2. Create a flight sheet with your wallet and "custom" miner:
3. On the miner configuration:
- copy the url form the miner's repository (https://github.com/tmrlvi/kaspa-miner/releases ) as "installation URL". The miner name should be updated automatically.
Then Add the following parameters
- Algorithm : Heavyhash
- Wallet : %WAL%
- Pool URL : IP of your kaspad server
- Extra config arguments : Any additional parameters you want to send to the miner
For a BZminer check your config page, make sure these are turned off: TLS is basically SSL, not TCP.
Notes :
- For mining under HiveOS with the latest GPU miner you may need the latest Nvidia drivers from feature branch, not the latest stable. Check How to update HiveOS Nvidia drivers to the latest one.
- Even if stats are reported, they are only global and not per GPU. You can use it to set a watchdog and restart the miner / reboot rigs but it may have side effects depending on the health of your kaspad server (eg if the server is down or if out of sync for a period of time all your rigs might keep rebooting... which is not healthy... It is advised to use it to send alerts / monitor)
Experimental one-liner to replace the newest installed bzminer version in HiveOS (replace bzminer_url with the version you want installed):
bzminer_url=https://github.com/bzminer/bzminer/releases/download/v9.1.4/bzminer_v9.1.4_linux.tar.gz && bzminer_path=$(ls -d /hive/miners/bzminer/* | sort --version-sort --field-separator=. | tail -n 1) && miner stop && cp -p "$bzminer_path/bzminer" "$bzminer_path/bzminer.bak" && wget -O- "$bzminer_url" | tar xvz --strip-components 1 --no-anchored -C "$bzminer_path" bzminer && miner start
CPU mining is no longer justified. Better mine Monero, sell it and buy Kaspa for that money, this way you'll get much more Kaspa in the same time period.
In case you still want to try, start a kaspa-miner (https://github.com/tmrlvi/kaspa-miner) with the -t N
parameter of the command line, where N
is the number of threads you want to mine with. This value is usually set equal to the number of your CPU's physical cores, utilizing hyperthreading cores worsens the result.
The rough estimation of a hashrate is 2-5 MH/s per CPU physical core, see also CPUs hashrate tables.