سجل إصدارات BZMiner
10 إصدارًا، الأحدث أولًا. الملاحظات منقولة كما نشرها المطوّر (بالإنجليزية).
BZMiner 100.70 الحالي
Release v100.70 of bzminer
All feedback is welcome ;)
- improved pearl hashrate/efficiency on nvidia ampere, ada, Blackwell, amd rdna 4
- added profit switching feature for moneroocean, see below
- fixed mmpos not showing gpu hashrate in some cases in dashboard
Profit switching
(see readme.md for more details)
-a mo (or moneroocean) is one pool connection. The login advertises the algorithms this rig can mine and a hashrate for each; every job the pool sends names the algorithm it currently considers most profitable, and bzminer follows. That is the same login MoneroOcean's profit switcher and their XMRig build use. It is not a local price calculator, and it is not the Pearl+C29 dual route below, which mines two algorithms at the same time.
The default set is kawpow, ergo, etchash, cn/gpu, pearl and c29. randomx is left out (its dataset is large, and the pool may then park the GPUs); add it with --mo-algos if you want it offered. The first run measures each algorithm that has no cached rate (mo-perf.json, keyed by PCI id) and then logs in. Later runs reuse the cache when the requested OC settings still match. Changing a selected OC profile remeasures the affected card/algorithm. --mo-benchmark-seconds 0 skips measuring and offers only matching cached rates.
./bzminer -a mo -p stratum+tcp://gulf.moneroocean.stream:10128 -w 4YOUR_MONERO_WALLET --pass rig1-gpu --devices1 gpu --mo-algos1 pearl,cn/gpu,c29
This GPU-only example offers Pearl, CryptoNight-GPU and C29. For CPU-only mining through the same switching protocol, give the CPU its own list:
./bzminer -a mo -p stratum+tcp://gulf.moneroocean.stream:10128 -w 4YOUR_MONERO_WALLET --pass rig1-cpu --devices1 cpu --mo-algos1 randomx
With only randomx offered, the CPU stays on RandomX. To mine both at once, use separate connections so a GPU algorithm choice cannot park the CPU:
./bzminer -a mo,mo --p1 stratum+tcp://gulf.moneroocean.stream:10128 --w1 4YOUR_MONERO_WALLET --pass1 rig1-gpu --devices1 gpu --mo-algos1 pearl,cn/gpu,c29 --p2 stratum+tcp://gulf.moneroocean.stream:10128 --w2 4YOUR_MONERO_WALLET --pass2 rig1-cpu --devices2 cpu --mo-algos2 randomx
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.70_windows.zip | 46.0 MB | aacf118062f9a011f677ff113bc1fcffb6054eb9d3951112f1aa8d4ec099af85 |
bzminer_v100.70_linux.tar.gz | 46.3 MB | 8e99e9aeb4b16356c72ab28a84e5ef2cee72e050b543717d9ad6654abac859e0 |
bzminer_custom-v100.70.tar.gz | 46.3 MB | 1628f0434c27c775d63c415d1c63517393c413c8a1f6751d90998689d9212a83 |
bzminer_v100.70_docker.tar.gz | 13.4 KB | 791115bc96a51b13ad53849137300f4951e6cb3fc533b874a4e2c257ccbc547b |
bzminer_v100.70_macos.tar.gz | 58.8 MB | fc91fa4c328f043c1ab1ab7dda8c6e3a7ada7867c55bc0c845fb1e007b6c7ec9 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.70
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.70 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.70_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.70"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.70.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.70/bzminer_custom-v100.70.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.70
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.60
Release v100.60 of bzminer
All feedback is welcome ;)
- nice hashrate improvements for pearl on ampere, ada, Blackwell, and hopper nvidia gpus
- improved pearl hashrate for amd rdna 3 and 4
- optimized quantus for 5000
- bz mines optimized dual algos whether the total combined hashrate is over 100% or not
NVidia
| GPU | Hashrate | Power | TH/W | Overclock (core / memory / PL) |
|---|---|---|---|---|
| H100 SXM 80GB | 815 TH/s | 698 W | 1.17 | stock / stock / 700 W |
| RTX 4090 | 272 TH/s | 239 W | 1.14 | 2100 lock / 810 / 450 W |
| RTX PRO 6000 (OC) | 386 TH/s | 373 W | 1.03 | 2100 lock +900 / 810 / 600 W |
| RTX 5060 Ti | 84 TH/s | 84 W | 1.01 | 2400 lock +400 / 810 / 180 W |
| RTX PRO 6000 | 447 TH/s | 592 W | 0.76 | stock / stock / 600 W |
| RTX 3080 | 103 TH/s | 143 W | 0.72 | 1500 lock +300 / 810 / stock |
| CMP 170HX | 180 TH/s | 249 W | 0.72 | - |
| RTX 4070 Ti SUPER | 185 TH/s | 277 W | 0.67 | stock / 810 / 295 W |
| RTX 3090 | 142 TH/s | 346 W | 0.41 | stock / 810 / 420 W |
| RTX 3060 Ti | 72 TH/s | 209 W | 0.35 | stock / 810 / 240 W |
| CMP 90HX | 3 TH/s | 110 W | 0.03 | - |
AMD:
| GPU | Miner | Overclock | Core / Mem clock | Hashrate | Power | Efficiency |
|---|---|---|---|---|---|---|
| RX 9070 XT | bzminer | Stock (317 W limit, stock clocks/voltage/fans) | ~2370 / ~1138 MHz | 141.64 TH/s | ~317 W | 0.4466 TH/W |
| RX 7900 XTX | bzminer | Stock (327 W limit, stock clocks/voltage/fans) | not recorded | 57.98 TH/s | ~327 W | 0.1775 TH/W |
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.60_windows.zip | 45.2 MB | e6166392c7e2a2455dd707a1952aaefd02a6b571534d6509ce4d8a7a92819523 |
bzminer_v100.60_linux.tar.gz | 45.5 MB | 1d736e08189a8bb0a5ebe1b1e1b51509b86af4aeea21337b8f799924d46533c5 |
bzminer_custom-v100.60.tar.gz | 45.5 MB | 35341303b7e040477548497584d2bb8b6fb082ea8f32cec3d3394a30a81f90ea |
bzminer_v100.60_docker.tar.gz | 13.4 KB | 9e4cc161847623d2ef9ffb06d76181be0c65654cbfc40b0e4b4b1c6041f4743f |
bzminer_v100.60_macos.tar.gz | 57.9 MB | 8f883c5cee0353d8f6f21246223571f3cd295f8b04f91337b35c87386d927838 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.60
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.60 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.60_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.60"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.60.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.60/bzminer_custom-v100.60.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.60
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.52
Release v100.52 of bzminer
All feedback is welcome ;)
- fixed pearl hashrate for nvidia Blackwell
- optimized quantus on nvidia Blackwell
- optimized pearl + c29 for amd rdna 1-4
- bz now resets oc's correctly when oc hotkeys are used
- fixed amd gpus not showing up on mmpos
Pearl + C29: Windows, Linux and HiveOS
Open start_pearl_c29.bat on Windows or start_pearl_c29.sh on Linux. Edit both XMR wallet placeholders first; the same Monero address can receive both payouts. Passwords rig1-pearl~pearl and rig1-c29~c29 select each algorithm at MoneroOcean. The macOS example reports that C29 has no Apple GPU backend and exits.
./bzminer -a pearl,c29 --nvidia 1 --amd 1 --cpu 0 --p1 stratum+tcp://gulf.moneroocean.stream:10128 --w1 4YOUR_MONERO_WALLET_HERE --worker1 "" --pass1 rig1-pearl~pearl --p2 stratum+tcp://gulf.moneroocean.stream:10128 --w2 4YOUR_MONERO_WALLET_HERE --worker2 "" --pass2 rig1-c29~c29
Use bzminer.exe instead of ./bzminer on Windows. Allow several minutes for calibration; no duplicate-device or kernel-selection option is needed.
In HiveOS, select pearl (or pearlhash) as the main hash algorithm. Use a bare XMR wallet, pool gulf.moneroocean.stream:10128, password rig1-pearl~pearl. In Extra config arguments, add this, replacing the second wallet:
--a2 c29 --p2 stratum+tcp://gulf.moneroocean.stream:10128 --w2 4YOUR_MONERO_WALLET_HERE --worker2 "" --pass2 rig1-c29~c29 --nvidia 1 --amd 1 --cpu 0
--a2 adds C29 without replacing HiveOS's main algorithm; --worker2 "" keeps its XMR login bare. This example uses supported NVIDIA and AMD GPUs and disables CPU mining.
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer-update-full-windows-x64.exe | 44.3 MB | 7f890db561eff2bceadc0d785efe2dc231f8073068e482bdb4a0cd4d87867b06 |
bzminer_v100.52_windows.zip | 44.3 MB | 1cfba5e738dad851798e2cab36b65e37ee19233540e2a05377688e11f80dda99 |
bzminer-update-full-linux-x86_64 | 44.6 MB | 3485d93077104906348cf5afbe52e4269fb4317327c4ba65801a5c7ddacd13f0 |
bzminer_v100.52_linux.tar.gz | 44.7 MB | 0c605f37bf50ce0ff24b0719fc816a318f9906b0c86af21d8844e18fec68aa3b |
bzminer_custom-v100.52.tar.gz | 44.6 MB | 847c447ac1d09494ef7a1b5d3d7deaf0eca0f51347cef8b2d51586633c14d8f5 |
bzminer_v100.52_docker.tar.gz | 13.4 KB | 1cfe129a2ad0e924fab73488be78de436930793518da8a8821ed2c2063062078 |
bzminer-update-full-macos-arm64 | 66.9 MB | cae680c5663cfb2f8fbf7e873ce982cefc683d5f4d22afbded9a7605ec4a6b62 |
bzminer_v100.52_macos.tar.gz | 57.0 MB | 656dba5eaec60a59c4badf98584895eeb156f5f4d4ec7d83e39a44674799e963 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.52
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.52 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.52_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.52"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.52.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.52/bzminer_custom-v100.52.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.52
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.51
Release v100.51 of bzminer
All feedback is welcome ;)
- NEW DUAL MINING PEARL + C29! (Nvidia only, see below)
- c29 improvement on 6gb gpus
- fixed (again) amd gpus not mining on mmpos
- bc250 enabled cu's are now opt-in
- bc250 now allows core lock below 1500
- updated docs to explain more about bc250 options
Pearl + C29
- dual pearl + c29, not all cards did well in this iteration and will need further updates, below is the table of tested cards
| GPU | Dual Pearl TH/s | Dual C29 graphs/s | Watts | Combined baseline % | Normalized efficiency % |
|---|---|---|---|---|---|
| 3060 Ti | 51.640 | 0.317 | 117.20 | 97.74% | 86.96% |
| 3080 | 72.268 | 3.557 | 214.79 | 121.29% | 94.51% |
| 3090 | 89.433 | 4.137 | 278.18 | 125.13% | 95.40% |
| 4070 Ti SUPER† | 77.841 | 1.433 | 105.07 | 71.64% | 94.45% |
| 4090 | 215.109 | 7.467 | 332.28 | 147.76% | 103.83% |
| 5060 Ti | 44.848 | 0.309 | 91.26 | 59.27% | 69.87% |
| 5090 | 263.398 | 13.901 | 600.01 | 112.30% | 104.97% |
| CMP 170HX | 115.542 | 3.015 | 178.37 | 100.33% | 101.12% |
Combined baseline is based on how much hashrate you get with pearly on its own and how much hashrate you get with c29 on its own (200% would be if neither algo had a loss in hashrate while dual mining)
oc's tested with:
| GPU | Core lock | Memory lock |
|---|---|---|
| 3060 Ti | 1500 MHz | 5001 MHz |
| 3080 | 1500 MHz | 5001 MHz |
| 3090 | 1500 MHz | 5001 MHz |
| 4070 Ti SUPER | 2370 MHz | 5001 MHz |
| 4090 | 2370 MHz | 5001 MHz |
| 5060 Ti | approximately 2392 MHz | 7001 MHz |
| 5090 | Stock tested | Stock tested |
Pearl + C29: Windows, Linux and HiveOS
Open start_pearl_c29.bat on Windows or start_pearl_c29.sh on Linux. Edit both XMR wallet placeholders first; the same Monero address can receive both payouts. Passwords rig1-pearl~pearl and rig1-c29~c29 select each algorithm at MoneroOcean. The macOS example reports that C29 has no Apple GPU backend and exits.
./bzminer -a pearl,c29 --nvidia 1 --cpu 0 --p1 stratum+tcp://gulf.moneroocean.stream:10128 --w1 4YOUR_MONERO_WALLET_HERE --worker1 "" --pass1 rig1-pearl~pearl --p2 stratum+tcp://gulf.moneroocean.stream:10128 --w2 4YOUR_MONERO_WALLET_HERE --worker2 "" --pass2 rig1-c29~c29
Use bzminer.exe instead of ./bzminer on Windows. Allow several minutes for calibration; no duplicate-device or kernel-selection option is needed.
In HiveOS, select pearl (or pearlhash) as the main hash algorithm. Use a bare XMR wallet, pool gulf.moneroocean.stream:10128, password rig1-pearl~pearl. In Extra config arguments, add this, replacing the second wallet:
--a2 c29 --p2 stratum+tcp://gulf.moneroocean.stream:10128 --w2 4YOUR_MONERO_WALLET_HERE --worker2 "" --pass2 rig1-c29~c29 --nvidia 1 --cpu 0
--a2 adds C29 without replacing HiveOS's main algorithm; --worker2 "" keeps its XMR login bare. This example uses NVIDIA GPUs and disables CPU mining.
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.51_windows.zip | 44.1 MB | f794159d4e20134519e9056f52dd366e77743078c9ffe5d2346d14c813b73a10 |
bzminer_v100.51_linux.tar.gz | 44.4 MB | dc2001f4bdcee6892b5a9cb8c96a44ddc12d17755fed360eca8917d0d2535ce5 |
bzminer_custom-v100.51.tar.gz | 44.4 MB | 28fcbf0cf0ee4d746242ca9674e84669ac5401e4f9260ab1c7c02fef29f1007e |
bzminer_v100.51_docker.tar.gz | 13.4 KB | 34bed32a357af955622ff6147d4071a4b7cbad4583d6ca852878f0f7ee7055f4 |
bzminer_v100.51_macos.tar.gz | 56.7 MB | 9b6a52f36a47a3ce2384317a3acdeaf0d24194a85351fc6271e527c274619ca3 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.51
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.51 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.51_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.51"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.51.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.51/bzminer_custom-v100.51.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.51
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.50
Release v100.50 of bzminer
All feedback is welcome ;)
- improved pearl on nvidia ampere+ (810 locked mem for higher efficiency)
- improved quantus on nvidia ampere+
- improvements on c29 cpu usage
- more robust OpenCL loading on Linux
- updated webui style
- other webui updates
- fixed amd gpus not showing up on later drivers
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.50_windows.zip | 42.8 MB | b66bef8c49bd99cba62919db90918f9e400d168f4b53d91e0e72cb913bed29e6 |
bzminer_v100.50_linux.tar.gz | 43.6 MB | eae8465b0714c448d6897679dde7a893a1caa1b17bc418b2a0e875ebb2960f61 |
bzminer_custom-v100.50.tar.gz | 43.6 MB | c159ab22d54b1c3f7856824530797ed4a9ef38a5ce9f53d39141f1ceeab04654 |
bzminer_v100.50_docker.tar.gz | 13.4 KB | 2103052b942edc7fb8e41e1814884589d6af52cd25e594891c07462dead8fb48 |
bzminer_v100.50_macos.tar.gz | 57.1 MB | a4d19f7e32f1c0a57d3a76e98284ca6431d12d49b9ed198d59d65655d3712baa |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.50
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.50 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.50_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.50"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.50.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.50/bzminer_custom-v100.50.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.50
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.46
Release v100.46 of bzminer
All feedback is welcome ;)
- Slight improvements on Pearl for nvidia
- Slight improvements on Quantus for nvidia
- c29 improvements on AMD RDNA 1-4
- cn improvements on nvidia/amd
- Some bug fixes
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.46_windows.zip | 38.3 MB | c1dda90fb738e2f0cc7b795a152a69719d248768798bb6903c7269c5a88659ec |
bzminer_v100.46_linux.tar.gz | 39.1 MB | d96669e26b9a31cf11bebb144226143c8c0da528c8f9ebaba68c2bd8f52337a6 |
bzminer_custom-v100.46.tar.gz | 39.0 MB | 175be7e93520b7450f3fe7bae9bfb081c9606e2fbb75d11bb2f0f9ca20eeee22 |
bzminer_v100.46_docker.tar.gz | 13.4 KB | 5f778f145e208425147510dd45da2eb0265ca677df4468061eb9742102ef3a3e |
bzminer_v100.46_macos.tar.gz | 51.4 MB | e27cdaceb70cc39b52e2e13f59399fa4f18612cfd742bac80e9178903899fdf5 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.46
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.46 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.46_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.46"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.46.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.46/bzminer_custom-v100.46.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.46
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.45
Release v100.45 of bzminer
All feedback is welcome ;)
- improvements (~2%) on pearl for nvidia
- improvements on quantus on both amd and nvidia 30 and 50 series
- big improvements on pearl for intel battlemage gpus
- bc250 improvements on pearl, quantus, cn, and c29
- fixed an issue with pools being unable to reconnect
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.45_windows.zip | 37.9 MB | f925f0fb03b1244ea0182296acba8dd7fef9aee655483a08ecc3f6a948abfc91 |
bzminer_v100.45_linux.tar.gz | 38.6 MB | e52cceefb78b88dd57197dd833c17424fa40644b7d49b4c194f74efeb3d5054c |
bzminer_custom-v100.45.tar.gz | 38.6 MB | 008eadda7cfffcc8774e3d785f6dd2943beba8db4e9275a2a9f52d86d22bb76f |
bzminer_v100.45_docker.tar.gz | 13.4 KB | e18ae7daea8cd9de167c88ea41cddc789ee76402fe2dab46625f6eee0a09a626 |
bzminer_v100.45_macos.tar.gz | 50.8 MB | cd2375414f11770ecee35fb1f7bc1d3650fd4d9f99533dbce4ba9377ac2b46b0 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.45
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.45 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.45_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.45"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.45.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.45/bzminer_custom-v100.45.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.45
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.41
Release v100.41 of bzminer
All feedback is welcome ;)
- 1660 pearl, quantus, c29, cn
- pearl improvements to 20 series nvidia
- quantus improvements on amd
- minor pearl improvements to all amd's
- fixed oc's on windows for nvidia
- fixed oc ui in webui for amd and intel
- webui now shows a warning for oc's that are unavailable due to permissions or something else
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.41_windows.zip | 37.1 MB | dc602d392eb53088eef2d1cdf48f0d93ffeb9b31f63b18f1f1835e10cf9bdd31 |
bzminer_v100.41_linux.tar.gz | 37.8 MB | 701b0cc906546e156a0166cc2cd27aeaff11ef93c83f5951a02ffe0eb29d11e5 |
bzminer_custom-v100.41.tar.gz | 37.8 MB | 652d84b758abe14fce3850b367c88ea44970e621fc9031130e24ee395f175fa6 |
bzminer_v100.41_docker.tar.gz | 13.4 KB | 9eb95445ec962b24c94f25b487963eed9107ac4b06322d5b9c73e69b548e92a5 |
bzminer_v100.41_macos.tar.gz | 49.7 MB | 202cb4499439e00f594e4469127a3628f9e37271f2ad4c6b0fd5d29f180f88d3 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.41
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.41 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.41_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.41"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.41.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.41/bzminer_custom-v100.41.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.41
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.40
Release v100.40 of bzminer
All feedback is welcome ;)
- Big Nvidia & AMD pearl optimizations
- Further randomx optimizations
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.40_windows.zip | 36.2 MB | 33f534c7ed1f1d4d330651f0e86ccceebf6c9bc28ee2f8aca89e0db1679d2c3a |
bzminer_v100.40_linux.tar.gz | 37.0 MB | ce819865c7fc114b4c967bb0878bf8adaa5c09489348b89f5093813bfef49c6b |
bzminer_custom-v100.40.tar.gz | 37.0 MB | d5bda5a81cdda46a846cad6e1d8757da4c500d45472652ba6d0b15bf696c22e2 |
bzminer_v100.40_docker.tar.gz | 13.4 KB | ed410b730ab2407cde280806997741b9d7e0acf21d7683715035ba8b070b7e4a |
bzminer_v100.40_macos.tar.gz | 48.1 MB | 55ebdfcd7a965a655fb2357b2274dff0a63e0cb4bef61c8f12c69ef35f462999 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.40
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.40 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.40_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.40"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.40.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.40/bzminer_custom-v100.40.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.40
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
BZMiner 100.36
Release v100.36 of bzminer
All feedback is welcome ;)
- big pearl improvement on amd rnda4 (other amd's too)
- big pearl improvement on intel battlemage
- c29 improvements
- randomx improvements
- --amd should disable cpu (--nvidia, --amd, --intel)
- reset hashrate averaging window when oc is changed
- fixed issue with workers silently crashing and not submitting shares
- added watchdog for crashed workers
Mines Tari, Conceal, Ryo, Ergo, Ethereum Classic, EthereumPoW, Ravencoin, Neurai, Neoxa, Meowcoin, Clore, nexa, Pearl, Quantus, Monero, Zephyr, Salvium, VERUS, Warthog and XELIS, and ships sha256d as the open-source SDK example.
Downloads
| file | size | SHA-256 |
|---|---|---|
bzminer_v100.36_windows.zip | 34.4 MB | 85b07dafea1e61a76711fcbd5ca06a4d3671698963283bd829a67f54060fdd49 |
bzminer_v100.36_linux.tar.gz | 35.2 MB | 8a665ddd7138a87b94cabba851cc6897e86c65bfcd8f0639ebcb99c1b7c3f889 |
bzminer_custom-v100.36.tar.gz | 35.1 MB | d8153e57b5d6805a04b8c78a53d692cd771520cea2b77f985f92c73140b97c22 |
bzminer_v100.36_docker.tar.gz | 13.4 KB | d74a6ca44a9b2e20ed9aa2360275afe387cbae6c8079fec01ee7206dfe539a96 |
bzminer_v100.36_macos.tar.gz | 44.0 MB | 948c11ddbf2affae59c3abaeb3ee604307b724e366ba3a94379cff41ab8b2709 |
Verify before running:
# Linux / macOS
sha256sum -c <<< " "
# Windows (PowerShell)
Get-FileHash .\ -Algorithm SHA256
A checksum only proves the file is the one that was published — always download from the official release page.
Getting started
- Unpack the archive for your platform.
- Open a
start_script and replace the placeholder wallet with your own. - Run it, then open for the dashboard.
readme.txt inside each archive has the full quick start, the common options, and the hardware-safety settings. config.txt is a commented copy of every setting, generated from the shipped binary, so it always matches the build you have.
config.txt may be JSON or a command line. The shipped file is JSON — every setting inside one { } object. bzminer equally accepts the same file written as the options you would have typed, which is what a mining OS generates and the easier form to write by hand:
# one option per line, or a flag and its value on one line
-a pearl
-p stratum+tcp://pool:1234
-w YOUR_WALLET
--worker "My Rig"
Quote a value containing a space, and start a comment with #. An option you type on the command line beats the file's copy of it, so the file is a default you can override without editing it.
Docker
There is an image, and it carries the GPU userspace as well as the miner - no ROCm install, no driver packages, nothing on the host but a kernel driver:
docker pull bzminer/bzminer:v100.36
docker run --rm -it --gpus all bzminer/bzminer -a pearl -o stratum+tcp://pool:port -w YOUR_WALLET
The identical image is on GitHub as ghcr.io/bzminer/bzminer:v100.36 if you would rather not pull from Docker Hub.
Or keep your config, log and plugins on the host and run it as a service:
docker run -d --name bzminer --restart unless-stopped --gpus all \
-v /opt/bzminer:/data -p 127.0.0.1:4014:4014 \
bzminer/bzminer --set http_address=0.0.0.0
With no arguments it runs /data/config.txt; anything you pass goes straight to bzminer, so every command line on this page works unchanged. http_address has to be 0.0.0.0 for the dashboard, because the default 127.0.0.1 binds the container's loopback, which no published port can reach.
GPU flags differ per vendor. NVIDIA is --gpus all (with nvidia-container-toolkit on the host). AMD and Intel are --device /dev/kfd --device /dev/dri --group-add video --group-add render and --device /dev/dri. Overclocking, MSR tuning and huge pages additionally need --privileged; mining does not.
Update with a pull, not the miner's self-update - and the old tag stays published, so a rollback is just naming it:
docker pull bzminer/bzminer && docker restart bzminer
The binary inside the image is byte-identical to the one in bzminer_v100.36_linux.tar.gz above. Full documentation: docker run --rm bzminer/bzminer cat /opt/bzminer/docs/DOCKER.md.
Updating on a mining OS
Both fetch this exact version, so they can be pasted as-is - the version below is already the one on this page.
MMPOS
Put this in miner profile → advanced → "Initiate command prior to miner launch". It downloads once; on every later launch the if sees the archive already in /tmp and exits immediately, so it costs nothing per restart.
export version="v100.36"
if [ -f "/tmp/bzminer_${version}_linux.tar.gz" ]; then
exit 0
else
cd /tmp; wget https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz; tar -xvf bzminer_${version}_linux.tar.gz; sudo cp -adpR bzminer_${version}_linux/bzminer /opt/mmp/miners/bzminer/
fi
Hive OS custom miner
The Linux release now includes bzminer_custom-v100.36.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.
- Click Copy on the Flight Sheet JSON below.
- Open the Hive OS farm page that lists all workers.
- Open the Flight Sheets tab.
- Click Import from Clipboard.
- Create/save the flight sheet and add your PEARL wallet.
- Apply the flight sheet to the workers.
The sample mines Pearl on HeroMiners. Change url, pool_urls, algo, and coin for another pool or algorithm. The package maps those fields, %WAL%, the Hive worker name, and pass directly to bzminer. Put optional bzminer CLI arguments in user_config.
Flight Sheet JSON
{
"name": "PEARL_BZMINER_CUSTOM",
"isFavorite": false,
"items": [
{
"coin": "PEARL",
"pool_ssl": false,
"pool_urls": [
"us.pearl.herominers.com:1200"
],
"dpool_ssl": false,
"miner": "custom",
"miner_alt": "bzminer_custom",
"miner_config": {
"url": "us.pearl.herominers.com:1200",
"algo": "pearl",
"pass": "x",
"miner": "bzminer_custom",
"template": "%WAL%",
"install_url": "https://github.com/bzminer/bzminer/releases/download/v100.36/bzminer_custom-v100.36.tar.gz",
"user_config": ""
},
"pool_geo": []
}
]
}
Hive OS built-in miner (manual binary replacement)
Run it over SSH or in the Hive web shell.
You do not need to know which bzminer version is installed. Hive keeps one folder per version under /hive/miners/bzminer/, and the flight sheet decides which one runs - so this replaces the binary in every bzminer folder it finds and whichever one your flight sheet points at gets the new build. That is the whole reason it does not name a version directory.
version=v100.36
cd /tmp && wget -q https://github.com/bzminer/bzminer/releases/download/${version}/bzminer_${version}_linux.tar.gz && tar -xf bzminer_${version}_linux.tar.gz || { echo "download failed"; exit 1; }
miner stop
n=0; for d in /hive/miners/bzminer/*/; do [ -d "$d" ] && cp -f "bzminer_${version}_linux/bzminer" "$d" && n=$((n+1)); done
[ "$n" -gt 0 ] && echo "updated $n bzminer folder(s)" || echo "no /hive/miners/bzminer// found - install bzminer from the flight sheet first"
miner start
It prints how many folders it updated. 0 means bzminer has never been installed from a flight sheet on that rig, so there is nothing to replace yet.
Reporting problems
Please include: your OS, GPU model(s) and driver version, the algorithm and pool, and the first ~40 lines of the log (it prints the build, the devices it found, and what each backend reported). --list-metrics output helps for sensor issues.
