npminer is the NushyPool GPU miner. It is a Rust-based miner with CUDA and OpenCL backends and currently supports these algorithms:
memhashfor Vecno Foundationcryptixfor Cryptix Networkhoohashfor Hoosat Networkxelishashfor Xelis Networkcapstashfor CapStash Chainpearlhashfor Pearl Chain
It supports standard Stratum pool mining and solo gRPC/RPC mining.
- Low CPU usage during normal GPU mining.
0%devfee on supported NushyPool fee-exempt pools.- Supports solo mining directly against a blockchain node over gRPC/RPC.
- Supports Stratum mining on any compatible pool.
- Supports Linux, Windows, HiveOS, and mmpOS.
- Supports NVIDIA GPUs through CUDA and AMD GPUs through OpenCL.
- Supports multiple algorithms in one miner:
memhash,hoohash,cryptix,xelishash, andcapstash. - Includes autotune with cache reuse to keep tuned launch settings across restarts.
- Supports multi-GPU rigs with simple per-GPU selection via
--devices. - Includes watchdog-based worker supervision and recovery-oriented startup checks.
- Optional signed auto-update with
--enable-autoupdate. - Local stats API which expose read-only HTTP stats for HiveOS, mmpOS, and XMRig-compatible dashboards.
Caution
- Drivers: Always install the latest GPU drivers to achieve optimal hashrate performance.
- Pearl support is experimental. Optimal Pearl performance is currently available only on NVIDIA Ampere / RTX 30-series GPUs. Support for other GPU architectures is coming soon.
- --prl-cpu-cooldown is experimental and may affect Pearl hashrate or stale/late shares.
🙏 Special thanks to @ivchobow, @galindo9856, @MrGodzillaa166, and Mike
Main executable:
- Linux (inc. HiveOS/mmpOS):
npminer - Windows:
npminer.exe
Typical pool mining command:
./npminer -a memhash -o stratum+tcp://POOL:PORT -u vecno:YOUR_WALLET -w worker1Typical solo node mining command (gRPC/RPC):
./npminer -a hoohash -o grpc://127.0.0.1:42420 -u hoosat:YOUR_WALLET
./npminer -a hoohash --url grpc://127.0.0.1:42420 --user hoosat:YOUR_WALLET
./npminer -a xelishash -o rpc://127.0.0.1:PORT -u xel:YOUR_WALLET
./npminer -a capstash -o rpc://127.0.0.1:8332 -u cap1YOUR_WALLET --rpc-user capstashrpc --rpc-pass YOUR_RPC_PASSWORDCapStash pool mining command:
./npminer -a capstash -o stratum+tcp://eu.capspool.io:7333 -u cap1YOUR_WALLET -w worker1Useful GPU selection commands:
./npminer --list-gpus
./npminer -a memhash -o stratum+tcp://POOL:PORT -u cryptix:YOUR_WALLET -d 0,2-d, --devices uses the GPU Index values printed by --list-gpus.
It does not use Bus ID.
Example --list-gpus output:
========================================
Index | Bus ID | Name
========================================
0 | 2 | GeForce RTX 3080 Ti
1 | 3 | GeForce RTX 3080 Ti
2 | 7 | Radeon RX 6800 XT
========================================
In that example:
-d 0means the first GPU-d 0,2means the first and third GPUs-d 2selects the GPU withIndex = 2, not the GPU withBus ID = 2
More examples:
./npminer -a hoohash -o grpc://POOL:PORT -u hoosat:YOUR_WALLET -d 1
./npminer -a memhash -o stratum+tcp://POOL:PORT -u vecno:YOUR_WALLET -d 0
./npminer -a memhash -o stratum+tcp://POOL:PORT -u vecno:YOUR_WALLET --devices 0,2,3
./npminer -a xelishash -o rpc://POOL:PORT -u xel:YOUR_WALLET --http-enabled --http-port 42330
./npminer -a capstash -o stratum+tcp://eu.capspool.io:7333 -u cap1YOUR_WALLET -w worker1 --opencl-disable
./npminer -a capstash -o stratum+tcp://eu.capspool.io:7333 -u cap1YOUR_WALLET -w worker1 --cuda-disable --opencl-enableIf --devices is not provided, all detected GPUs are used.
Primary targets:
- NVIDIA GPUs through CUDA
- AMD GPUs through OpenCL
Current backend coverage:
| Backend | Vendor | Algorithms | OS |
|---|---|---|---|
| CUDA | NVIDIA | memhash, hoohash, cryptix, xelishash, capstash, pearl |
Windows, Linux, HiveOS, mmpOS |
| OpenCL | AMD | memhash, hoohash, cryptix, xelishash, capstash |
Windows, Linux, HiveOS, mmpOS |
Notes:
- OpenCL is limited to one OpenCL platform per miner process.
--opencl-platformcan be used when the default OpenCL platform is not the one you want.- NVIDIA OpenCL is intentionally not the primary path; NVIDIA cards are expected to use CUDA.
--devicesis the recommended end-user way to select GPUs. Use--cuda-deviceand--opencl-deviceonly when backend-specific selection is required.
Print short CLI help with:
./npminer -hPrint detailed CLI help with:
./npminer --helpUse -h when you only need the option list. Use --help when you want the longer descriptions and examples for options such as --url, --user, --devices, and the HTTP API flags.
The current supported npminer command-line options are:
-h, --helpPrint help.-v, --versionPrint version.-a, --algo <memhash|hoohash|cryptix|xelishash|capstash|pearl>Select algorithm explicitly.--mining-address <ADDRESS>Mining reward address.-u, --user <USER>Standard pool-style wallet field, for examplevecno:...orvecno:....worker.--rpc-user <USER>JSON-RPC username for direct-node solo mining, currently used by CapStash RPC.--rpc-pass <PASSWORD>JSON-RPC password for direct-node solo mining, currently used by CapStash RPC.--list-gpusPrint the miner GPU inventory and exit.-d, --devices <LIST>Comma-separated GPUIndexvalues from--list-gpus, notBus ID.--reset-autotuneDelete cached autotune state and force a fresh retune.--enable-autoupdateAutomatically download, verify, install, and restart into a newer npminer release when one is available.--prl-cpu-cooldown <ms>Reduce CPU usage during Pearl mining by adding a cooldown between GPU filter-event polls.0disables the cooldown and actively polls the GPU filter event. Higher values can reduce CPU usage but may reduce Pearl hashrate or increase stale/late shares. This option is Pearl-specific and experimental; use it at your own risk.
-o, --url <URL>Mining server URL, for examplestratum+tcp://host:portfor Stratum,grpc://host:portfor Vecno-style solo mining, orrpc://host:portfor XelisHash/CapStash direct-node solo mining.-w, --worker <WORKER>Standard worker name.-p, --pass <PASSWORD>Standard worker password.
Legacy compatibility Stratum options are also supported:
--stratum-server <HOST>--stratum-port <PORT>--stratum-worker <WORKER>--stratum-password <PASSWORD>
--api-port <PORT>Starts the local HTTP stats API on the selected port.--api-bind <ADDR>Bind address for the API listener. The default is localhost.--api-token <TOKEN>Bearer token used to protect API responses. Required for non-local binds.--api-disableDisables the API, including when a mining OS package would normally enable it.--api-worker-id <ID>Overrides the worker ID shown in API responses.--api-id <ID>Overrides the miner instance ID shown in API responses.--http-enabled, --http-host, --http-port, --http-access-tokenXMRig-compatible aliases for monitoring software that already knows miner HTTP flags.--http-no-restrictedAccepted for CLI compatibility. npminer does not expose write or control endpoints in v1.
--cuda-disableDisable CUDA workers.--cuda-device <LIST>Backend-specific CUDA device list.--cuda-workload <VALUE>CUDA workload ratio.--cuda-workload-absoluteTreat CUDA workload as an absolute nonce count.--cuda-no-blocking-syncDisable blocking-sync mode and actively poll.--cuda-nonce-gen <lean|xoshiro>CUDA nonce generator.--cuda-lock-core-clocks <LIST>Optional GPU clock lock values.--cuda-lock-mem-clocks <LIST>Optional GPU memory clock lock values.--cuda-power-limits <LIST>Optional GPU power limits.
--opencl-amd-disableDisable OpenCL AMD mining.--opencl-device <LIST>Backend-specific OpenCL device list on the selected platform.--opencl-platform <INDEX>Select one OpenCL platform.--opencl-workload <VALUE>OpenCL workload ratio.--opencl-workload-absoluteTreat OpenCL workload as an absolute nonce count.--opencl-nonce-gen <lean|xoshiro>OpenCL nonce generator.--opencl-no-amd-binaryDisable fetching/using the precompiled AMD OpenCL binary.
--devicesis the recommended end-user selector and maps to theIndexcolumn from--list-gpus.--list-gpusprints bothIndexandBus ID;--devicesalways usesIndex.- Do not combine
--deviceswith--cuda-deviceor--opencl-device. - If no device selection flags are provided, all detected GPUs are used.
--debugexists in debug builds only and is not part of the normal release-user CLI surface.
npminer checks the official downloads manifest at startup. If a newer version is available and --enable-autoupdate is not passed, the miner prints a warning and continues mining with the current version.
Enable automatic updates explicitly:
./npminer --algo hoohash --url stratum+tcp://POOL:PORT --user hoosat:YOUR_WALLET --worker Hashvilly --enable-autoupdateWhen enabled, npminer downloads the matching release archive, verifies the archive sha256, size, and Ed25519 signature from downloads.json, installs the update into the current miner directory, and restarts itself. If the update check, download, verification, or install step fails, npminer keeps running the current version.
HiveOS and mmpOS packages use their own package markers so auto-update selects the matching HiveOS or mmpOS archive instead of the generic Linux archive. The install directory must be writable by the miner process.
| Algorithm | Stratum | Solo gRPC/RPC | NushyPool |
|---|---|---|---|
memhash |
1% |
1% |
0% |
hoohash |
1% |
1% |
0% |
cryptix |
1% |
1% |
0% |
xelishash |
1% |
1% |
0% |
capstash |
2% |
2% |
0% |
pearlhash |
2% |
n/a |
0% |
NushyPool fee-exempt pool users mine with no dev fee.
CapStash direct RPC node mining uses the solo RPC devfee setting.
Replace <VERSION> with the release version you want, for example 0.0.1.
Download and extract the Windows package in one line from PowerShell:
$v="<VERSION>"; Invoke-WebRequest "https://github.com/nushypool/npminer/releases/download/v$v/npminer-windows-x86_64-v$v.tar.gz" -OutFile "npminer.tar.gz"; tar -xzf .\npminer.tar.gzDownload and extract the Linux package in one line:
VERSION=<VERSION> && curl -L "https://github.com/nushypool/npminer/releases/download/v${VERSION}/npminer-linux-x86_64-v${VERSION}.tar.gz" | tar -xzExample HiveOS configurations
| Hoohash | Vecno | Cpay |
|---|---|---|
![]() |
![]() |
![]() |
--list-gpusis the reference output for end-user GPU selection.--devicesapplies the same GPU selection model across enabled backends.- Do not combine
--deviceswith--cuda-deviceor--opencl-device. - If no GPU-selection flags are provided, the miner uses all detected GPUs.


