NushyPool Downloads
Download npminer packages for NushyPool and keep setup notes, commands, platform support, and future mining tools in one place.
NPMiner
Newest release packagesHigh-performance, multi-coin GPU miner with CUDA and OpenCL backends.
Linux
npminer-linux-x86_64-v1.0.9.tar.gz
Standard Linux package.
ba4105f982500f5c05f7c1c5f3ddb23699ae2d2231549e2cdcc62ec597752051mmpOS
npminer-mmpos-linux-x86_64-v1.0.9.tar.gz
Package for mmpOS.
128b15697dace3284da6269af05a63f9adb9cb50ded1a65d5b47cf8333a6e32aHiveOS
npminer-v1.0.9.tar.gz
Package for HiveOS.
a16793e37bf5bad334cebfe3705d18738d86cedf28fb708a6b23c8e6a4d2d74dWindows
npminer-windows-x86_64-v1.0.9.tar.gz
Standard Windows package.
a72ab53fcf90000ef6e1635984b29365d1c2f6e05c3089425fc1696a6d309028Previous versions Older packages are kept for rollback and compatibility. Use the latest packages above for normal installs. 8 packages
Linux
npminer-linux-x86_64-v1.0.8.tar.gz
Standard Linux package.
a2001dc68a447e7a34463ce614cc15eb9ba0affe4f1c9e20bcb8631e180e8f5cmmpOS
npminer-mmpos-linux-x86_64-v1.0.8.tar.gz
Package for mmpOS.
17bfe5e2cdb1de1f0020dd3c62a2fc5740d88ffe5bb1aedb82cc1c782f866fa5HiveOS
npminer-v1.0.8.tar.gz
Package for HiveOS.
9941d1b009aa58e943df70b452a2b886d559bba065c232d2f4b4704ef10b13bcWindows
npminer-windows-x86_64-v1.0.8.tar.gz
Standard Windows package.
b972aa04128d91fac9b13c6bbd31db7c23a4ffef26385c904b80dfbf808857e7Linux
npminer-linux-x86_64-v1.0.7.tar.gz
Standard Linux package.
05c7a1d4ae237de9e1577d9d07db029df6a081a5d324527ec40ce06e5f29d4fdmmpOS
npminer-mmpos-linux-x86_64-v1.0.7.tar.gz
Package for mmpOS.
997e7c1874f219e0fb93c27adff6b23612486a1e8de2383ab89b8414924ddd6fHiveOS
npminer-v1.0.7.tar.gz
Package for HiveOS.
09e77f0e0b1f57e77c8b5de0669da6f31e7ef0f4fe38bb52f8c4c14696b092a1Windows
npminer-windows-x86_64-v1.0.7.tar.gz
Standard Windows package.
b764df0166566298267426e564460345502d0d4ca71446dc952b56bb62980185Pearl Stratum Protocol V1 (Pool Integration Spec) Minimal Pearl Stratum JSON-RPC contract for pools that want to accept npminer. Spec
NPMiner uses newline-delimited JSON-RPC over stratum+tcp://host:port. For third-party Pearl pool support,
implement the V1 plain-proof submit path first. The compact submit path is an optional NushyPool fast-path extension.
This is the initial version of the Pearl Stratum protocol used by npminer. We are open to improvements and pool feedback that can help standardize Pearl mining across compatible miners and pools.
1. Login
The miner may send mining.authorize without a prior mining.subscribe, so pools must not require subscribe.
The first authorize parameter is pearl_address or pearl_address.worker.
{"id":1,"method":"mining.authorize","params":["prl1youraddress.worker1"]}
{"id":1,"result":true,"error":null}
2. Pool job
Send Pearl work with mining.notify and object params. header is 76 bytes encoded as 152 hex chars.
target is required and is 32 bytes encoded as 64 hex chars. difficulty and height are optional
metadata fields in V1, but production pools should include both.
{"id":null,"method":"mining.notify","params":{
"job_id":"pearl-00004020abcd_53333",
"header":"<152 hex chars>",
"target":"<64 hex chars>",
"height":4014280,
"difficulty":53333
}}
2.1. Job fields
job_id: required; format: non-empty opaque string, unique among active jobs.
NushyPool uses pearl-<header-prefix>_<difficulty>, for example pearl-00004020abcd_53333,
so logs and stale-share handling show the job family and vardiff. Other pools may use any unique stable string;
the miner only echoes it back in mining.submit.
header: required; format: 152 hex chars representing exactly 76 bytes.
This is the Pearl incomplete block header without the nonce. It contains the block-header bytes used by the Pearl verifier,
including version, previous block hash, merkle root, time, and nBits/compact network target in Pearl's expected wire byte order.
Do not reinterpret it in the miner; send the exact bytes that will be used when validating the submitted plain proof.
target: required; format: 64 hex chars representing a 32-byte big-endian share target.
This is the authoritative V1 share target. The pool and miner must treat a share as valid only if the Pearl proof result
meets this target.
difficulty: optional; format: positive JSON number, preferably an integer.
It is related to target by target = diff1_target / floor(difficulty), clamped to at least 1.
It is included so the miner can report stats, effective hashrate, and vardiff state without reverse-calculating from target.
It is optional because V1 share validation relies on the required target, but if sent it must match the advertised target.
height: optional; format: unsigned integer block/template height.
It is not part of the Pearl hashing path and most Stratum protocols do not require miners to know it.
It is included for diagnostics, stale-job analysis, block-candidate attribution, and easier pool/miner log correlation.
3. Plain-proof share submit
This is the required compatibility path. The pool validates plain_proof against the exact job header and target.
hs is optional miner telemetry in hashes per second; it must not be used as proof validity.
{"id":2,"method":"mining.submit","params":{
"job_id":"pearl-00004020abcd_53333",
"plain_proof":"<base64 Pearl plain proof>",
"hs":110000000000000,
"lpm_shape":{"rows":256,"cols":256,"k":4096,"rank":256}
}}
3.1. Submit fields
job_id: required; format: exact string received in the corresponding mining.notify.
The pool uses it to find the active job, reject stale shares, and validate the proof against the correct header and target.
plain_proof: required; format: base64-encoded Pearl plain proof.
Pools decode it and validate it against the job header and share target.
hs: optional; format: positive JSON number representing miner-reported hashes per second.
This is telemetry only and must not be used to decide whether a share is valid.
lpm_shape: optional; format: object with positive integer rows, cols,
k, and rank. This is npminer diagnostic/compatibility metadata and is not required for
lpminer/SRBMiner compatibility. Pools may ignore it. The decoded plain_proof remains authoritative.
3.2. Plain proof decoding and validation
Decode plain_proof from standard base64, then deserialize the bytes as the Pearl plain-proof structure.
The current V1 proof payload contains m, n, k, noise_rank,
an a matrix proof, and a bt matrix proof. Each matrix proof carries Merkle leaf data,
leaf indices, total leaves, Merkle root, siblings, and selected row indices. Reject malformed base64, truncated data,
trailing bytes, unexpected dimensions, or invalid row/proof layout.
Validation uses the exact 76-byte job header from mining.notify. Derive the Pearl LPM job key
from that header, detect the compatible proof variant from the row-index pattern, extract the selected A rows and B columns
from the Merkle proofs, derive the deterministic noise seeds from the job key and proof roots, add the deterministic noise,
compute the jackpot dot-products, then hash the jackpot with BLAKE3 using the derived A-noise seed.
The resulting jackpot hash is the share hash. Accept the share only if that hash meets the advertised V1 share
target. If your verifier API accepts share difficulty instead of target, pass the same pool difficulty
that was used to build the advertised target. Do not use miner-reported hs or lpm_shape
for validity decisions.
4. Optional compact submit
If a pool supports npminer compact shares, it can accept pearl.compact.v1. The pool reconstructs and validates
the proof from the stored job, nonce, and profile. Unsupported pools should use plain-proof mode.
{"id":3,"method":"mining.submit","params":{
"job_id":"pearl-00004020abcd_53333",
"nonce":"0000000000000042",
"hs":110000000000000,
"pearl_protocol":"pearl.compact.v1",
"profile":"zero_signal_256x256_v1"
}}
4.1. Compact submit fields
job_id: required; format: exact string received in the corresponding mining.notify.
The pool uses it to find the stored job header and reject stale compact shares.
nonce: required; format: 16 hex chars representing an unsigned 64-bit nonce.
The pool combines this nonce with the stored job header and compact profile to reconstruct
the canonical Pearl plain proof or validate the compact share directly.
hs: optional; format: positive JSON number representing miner-reported hashes per second.
This is telemetry only and must not be used to decide whether a compact share is valid.
pearl_protocol: required for compact submit; format: string pearl.compact.v1.
It identifies the submit as the npminer compact extension instead of the V1 plain-proof submit path.
profile: required; format: compact profile string. The currently documented profile is
zero_signal_256x256_v1. Pools should reject unknown profiles unless they can reconstruct and validate
the exact same proof deterministically.
5. Share response
Return the same JSON-RPC id. Accepted shares use {"result":true,"error":null}.
Rejected shares should use result:false or a JSON-RPC error object with a short reason such as stale,
low difficulty, duplicate, or invalid proof.
What npminer Supports
- 0% devfee on nushypool.com
NushyPool users mine with no dev fee. - Stratum, gRPC, and Xelis RPC
Use one consistent--urland--userflow. - Local stats API
Expose read-only HTTP stats for HiveOS, mmpOS, and XMRig-compatible dashboards. - NVIDIA and AMD GPUs
CUDA for NVIDIA, OpenCL for AMD cards. - Multi-GPU selection
Use--deviceswith the GPU Index from--list-gpus. - Autotune cache
Tuned launch settings are reused across restarts. - Opt-in auto-update
Use--enable-autoupdateto securely install newer signed releases at startup. - Watchdog supervision
Recovery-oriented worker startup and monitoring.
Algorithms
| Coin | Algo | Backend |
|---|---|---|
| Vecno | memhash | CUDA / OpenCL |
| Cryptix | cryptix | CUDA / OpenCL |
| Hoosat | hoohash | CUDA / OpenCL |
| Xelis | xelishash | CUDA / OpenCL |
| CapStash | capstash | CUDA / OpenCL |
| Pearl | pearl | CUDA |
Pearl support is experimental. Optimal performance is currently available only on NVIDIA Ampere / RTX 30-series GPUs; support for other GPU architectures is coming soon.
Use latest GPU drivers for best stability and hashrate.
Devfee
NushyPool endpoints marked 0% are fee-exempt. CapStash currently uses the listed devfee until a miner-side exemption is released. When mining on other compatible pools, or when solo mining directly to your own node, npminer applies the built-in devfee shown below.
| Coin | Algorithm | Other Stratum Pools | Solo Direct Node | NushyPool |
|---|---|---|---|---|
| CapStash | capstash |
2% | 2% via rpc:// |
0% |
| Pearl | pearl |
2% | — | 0% |
| Vecno | memhash |
1% | 1% via grpc:// |
0% |
| Hoosat | hoohash |
1% | 1% via grpc:// |
0% |
| Cryptix | cryptix |
1% | 1% via grpc:// |
0% |
| Xelis | xelishash |
1% | 1% via rpc:// |
0% |
For XelisHash, direct-node solo mining uses the Xelis JSON-RPC endpoint, for example rpc://ADDRESS:PORT. Vecno, Hoosat, and Cryptix direct-node examples use grpc://ADDRESS:PORT.
Pool Mining Examples
Vecno PPS/Solo pool
./npminer -a memhash -o stratum+tcp://POOL:PORT -u vecno:YOUR_WALLET -w worker1
Hoosat PPS/Solo pool
./npminer -a hoohash -o stratum+tcp://POOL:PORT -u hoosat:YOUR_WALLET -w worker1
Cryptix PPS/Solo pool
./npminer -a cryptix -o stratum+tcp://nushypool.com:40003 -u cryptix:YOUR_WALLET -w worker1
XelisHash PPS/Solo pool
./npminer -a xelishash -o stratum+tcp://nushypool.com:40008 -u xel:YOUR_WALLET -w worker1
CapStash PPS on NushyPool
./npminer -a capstash -o stratum+tcp://nushypool.com:40011 -u cap:cap1YOUR_WALLET -w worker1
List GPUs
./npminer --list-gpus
Select GPUs
./npminer -a memhash -o grpc://POOL:PORT -u vecno:YOUR_WALLET -d 0,2
Solo Direct-Node Examples
Vecno gRPC
./npminer -a memhash -o grpc://127.0.0.1:7110 -u vecno:YOUR_WALLET
Hoosat gRPC
./npminer -a hoohash -o grpc://127.0.0.1:42420 -u hoosat:YOUR_WALLET
Cryptix gRPC
./npminer -a cryptix -o grpc://127.0.0.1:19201 -u cryptix:YOUR_WALLET
XelisHash RPC
./npminer -a xelishash -o rpc://127.0.0.1:8080 -u xel:YOUR_WALLET
CapStash RPC
./npminer -a capstash -o rpc://127.0.0.1:8332 -u cap1qYOUR_WALLET --rpc-user RPC_USER --rpc-pass RPC_PASSWORD
Use grpc:// for Vecno-style direct-node mining. Use rpc://host:port[/json_rpc] for XelisHash direct-node mining. --devices uses the GPU Index printed by --list-gpus, not the Bus ID.
CapStash: Solo mining CapStash directly to your own node uses rpc://host:port. Add --rpc-user and --rpc-pass if your node requires RPC authentication. For NushyPool Solo, use stratum+tcp://nushypool.com:45011 instead.
API Reference
npminer exposes a read-only local HTTP API for HiveOS, mmpOS, and XMRig-compatible monitoring tools. Standalone runs keep the API off until you enable it; HiveOS and mmpOS packages enable localhost by default.
Enable the API
Use --api-port to start the API on localhost. The default mining OS port is 42330, and --api-disable always wins.
./npminer -a memhash -o stratum+tcp://nushypool.com:50010 -u vecno:YOUR_WALLET -w Hashvilly --api-port 42330
XMRig-compatible flags
Existing dashboards can use the --http-enabled, --http-host, --http-port, and --http-access-token aliases. The npminer v1 API is read-only; --http-no-restricted is accepted as a no-op.
./npminer -a xelishash -o stratum+tcp://nushypool.com:40008 -u xel:YOUR_WALLET -w Hashvilly --http-enabled --http-port 42330
Security defaults
The API binds to 127.0.0.1 by default. Binding to another address requires --api-token, and clients must send Authorization: Bearer TOKEN.
| Option | Description |
|---|---|
--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-disable | Disables 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-token | XMRig-compatible aliases for monitoring software that already knows miner HTTP flags. |
--http-no-restricted | Accepted for CLI compatibility. npminer does not expose write or control endpoints in v1. |
| Endpoint | Response |
|---|---|
/npminer/v1/health | Small health response with uptime, algorithm, and snapshot status. |
/npminer/v1/stats | Full native npminer stats, including total hashrate, per-device telemetry, shares, difficulty, mode, URL, and snapshot age. |
/npminer/v1/hiveos | HiveOS-shaped stats JSON for mining OS integrations. |
/npminer/v1/mmpos | mmpOS-shaped stats JSON for mining OS integrations. |
/2/summary, / | XMRig-style summary response for common monitoring dashboards. |
/2/backends | XMRig-style backend and per-GPU thread response. |
/1/summary, /1/threads | Compatibility aliases for older XMRig-style clients. |
Query examples
curl http://127.0.0.1:42330/npminer/v1/stats curl http://127.0.0.1:42330/2/summary curl -H "Authorization: Bearer YOUR_TOKEN" http://127.0.0.1:42330/npminer/v1/stats
Command Reference
Output from npminer -h.
npminer version
NushyPool Miner is high performance GPU miner
USAGE:
npminer [OPTIONS]
OPTIONS:
-a, --algo <ALGO> Mining algorithm to use (supported: memhash, hoohash, cryptix, xelishash, capstash)
--api-bind <API_BIND> HTTP stats API bind address [default: 127.0.0.1] [aliases: http-host]
--api-disable Disable the HTTP stats API even when a mining OS integration enables it
--api-id <API_ID> Custom instance ID reported by the HTTP stats API
--api-port <API_PORT> Enable the local HTTP stats API on this port [aliases: http-port]
--api-token <API_TOKEN> Bearer token for HTTP stats API access; required when binding outside localhost [aliases: http-access-token]
--api-worker-id <API_WORKER_ID> Custom worker ID reported by the HTTP stats API
--cuda-device <CUDA_DEVICE> Comma separated list with CUDA GPUs to use (example: --cuda-device 2,3 or --cuda-device=2,3) [default: all]
--cuda-disable Disable CUDA workers
--cuda-lock-core-clocks <CUDA_LOCK_CORE_CLOCKS> Lock core clocks eg: ,1200, [default: 0]
--cuda-lock-mem-clocks <CUDA_LOCK_MEM_CLOCKS> Lock mem clocks eg: ,810, [default: 0]
--cuda-no-blocking-sync Actively wait for result. Higher CPU usage, but less red blocks. Can have lower workload.
--cuda-nonce-gen <CUDA_NONCE_GEN> The random method used to generate nonces. Options: (i) xoshiro (ii) lean [default: lean] [default: lean]
--cuda-power-limits <CUDA_POWER_LIMITS> Lock power limits eg: ,150, [default: 0]
--cuda-workload <CUDA_WORKLOAD> Ratio of nonces to GPU possible parallel run for CUDA, optionally comma-separated per device [default: 128] [default: 128]
--cuda-workload-absolute The values given by workload are not ratio, but absolute number of nonces [default: false]
-d, --devices <DEVICES> Comma separated GPU Index values from --list-gpus, not Bus ID [default: all] [aliases: device]
--enable-autoupdate Automatically download and restart into a newer npminer release when one is available
-h, --help Print help information
--http-enabled Enable the HTTP stats API using the default API port
--http-no-restricted Accepted for XMRig CLI compatibility; npminer v1 API remains read-only
--list-gpus List detected GPUs and exit
--mine-when-not-synced Mine even when node says it is not synced
-o, --url <URL> Mining server URL for stratum, grpc, or RPC (e.g. stratum+tcp://host:port, grpc://host:port, rpc://host:port)
--opencl-amd-disable Disables AMD mining (does not override opencl-enable)
--opencl-device <OPENCL_DEVICE> Comma separated list with OpenCL GPUs to use on a specific platform
--opencl-no-amd-binary Disable fetching of precompiled AMD kernel (if exists)
--opencl-nonce-gen <OPENCL_NONCE_GEN> The random method used to generate nonces. Options: (i) xoshiro (ii) lean [default: lean]
--opencl-platform <OPENCL_PLATFORM> Which OpenCL platform to use (limited to one per executable)
--opencl-workload <OPENCL_WORKLOAD> Ratio of nonces to GPU possible parallel run for OpenCL [default: 128] [default: 128]
--opencl-workload-absolute The values given by workload are not ratio, but absolute number of nonces in OpenCL [default: false]
-p, --pass <PASS> Standard stratum mining CLI worker password (stratum only)
--reset-autotune Delete cached autotune/JIT state and force fresh autotuning before startup
--rpc-pass <RPC_PASS> RPC password for direct-node solo mining when the node requires authentication
--rpc-user <RPC_USER> RPC username for direct-node solo mining when the node requires authentication
--testnet Use testnet for solo grpc mining
-u, --user <USER> Mining wallet/address for stratum, grpc, or RPC (for example vecno:... or vecno:....worker)
-v, --version Print version information
-w, --worker <WORKER> Standard stratum mining CLI worker name (stratum only)
Examples:
npminer --algo memhash --url stratum+tcp://pool:50010 --user vecno:... --worker Hashvilly
npminer --algo hoohash --url grpc://127.0.0.1:7110 --user hoosat:...
npminer --algo cryptix --url stratum+tcp://nushypool.com:40003 --user cryptix:... --worker Hashvilly
npminer --algo xelishash --url stratum+tcp://nushypool.com:40008 --user xel:... --worker Hashvilly
npminer --algo xelishash --url rpc://127.0.0.1:8080 --user xel:...
npminer --algo capstash --url stratum+tcp://nushypool.com:40011 --user cap:cap1... --worker Hashvilly
npminer --algo capstash --url rpc://127.0.0.1:8332 --user cap:cap1... --rpc-user RPC_USER --rpc-pass RPC_PASSWORD
npminer --algo xelishash --url stratum+tcp://nushypool.com:40008 --user xel:... --worker Hashvilly --api-port 42330
npminer --algo xelishash --url stratum+tcp://nushypool.com:40008 --user xel:... --worker Hashvilly --http-enabled
HTTP API examples:
curl http://127.0.0.1:42330/npminer/v1/stats
curl http://127.0.0.1:42330/2/summary
curl http://127.0.0.1:42330/2/backends



