BzMiner v100.31

Sep 20, 2026

Release v100.31 of bzminer

All feedback is welcome ;)

x improved pearl hashrate on amd and nvidia (post screenshot of 9070xt) x added docker container for bzminer x vega56 amd gpu support for warthog x add Ellesmere support for quantus (rx 570) x add Polaris,tonga,vega support for quantus x improved randomx performance on intel and zen cpus


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 34.2 MB 5918a40e2a97916db69f334b53673105a19234415a57a5390c96dfa20347833c
bzminer_v100.31_windows.zip 34.2 MB 2043139a7584c6884d03ce5b3c1f2ff57be0a0204be68be0bd5a92f7c2201596
bzminer_custom-v100.31.tar.gz 34.9 MB 4f776631c7d918836f56c24a25962ec73fb247a4d053d1f00270f79a716d9666
bzminer_v100.31_macos.tar.gz 43.4 MB 27ca541c95a52ad574c300650743822f2d077016155a0d51b94f99a5a36a8a81

Verify before running:

# Linux / macOS
sha256sum -c <<< "<hash>  <file>"

# Windows (PowerShell)
Get-FileHash .\<file> -Algorithm SHA256

A checksum only proves the file is the one that was published — always download from the official release page.

Getting started

  1. Unpack the archive for your platform.
  2. Open a start_<algo> script and replace the placeholder wallet with your own.
  3. Run it, then open http://127.0.0.1:4014/ 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.31
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.31 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.31_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.31"
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.31.tar.gz, a complete Hive OS custom miner: the full bzminer binary, flight-sheet config adapter, log launcher, and native /hive_status reporting.

  1. Click Copy on the Flight Sheet JSON below.
  2. Open the Hive OS farm page that lists all workers.
  3. Open the Flight Sheets tab.
  4. Click Import from Clipboard.
  5. Create/save the flight sheet and add your PEARL wallet.
  6. 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.31/bzminer_custom-v100.31.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.31
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/<version>/ 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.