BZminer. Download BZ miner

รุ่นล่าสุด

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

filesizeSHA-256
bzminer_v100.40_windows.zip36.2 MB33f534c7ed1f1d4d330651f0e86ccceebf6c9bc28ee2f8aca89e0db1679d2c3a
bzminer_v100.40_linux.tar.gz37.0 MBce819865c7fc114b4c967bb0878bf8adaa5c09489348b89f5093813bfef49c6b
bzminer_custom-v100.40.tar.gz37.0 MBd5bda5a81cdda46a846cad6e1d8757da4c500d45472652ba6d0b15bf696c22e2
bzminer_v100.40_docker.tar.gz13.4 KBed410b730ab2407cde280806997741b9d7e0acf21d7683715035ba8b070b7e4a
bzminer_v100.40_macos.tar.gz48.1 MB55ebdfcd7a965a655fb2357b2274dff0a63e0cb4bef61c8f12c69ef35f462999

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.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.

  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.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/<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.

ดาวน์โหลด

Bzminer .bat File Examples

bzminer.exe -a ethw -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096

bzminer.exe -a etchash -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000

bzminer.exe -a kaspa -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3112

bzminer.exe -a ergo -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3100

bzminer.exe -a nexa -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3124

bzminer.exe -a kawpow -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:55555

bzminer.exe -a meowcoin -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3116

bzminer.exe -a alph -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3106

bzminer.exe -a radiant -w WALLET_ADDRESS.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3122

bzminer -a novo -p stratum+tcp://pool.woolypooly.com:3134 -w YOUR_WALLET.WORKER_NAME --nc 1

bzminer.exe -a ethw -w WALLET_ADDRESS_ETHW.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096 --a2 alph --w2 WALLET_ADDRESS_ALPH.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3106

bzminer -a etchash -w WALLET_ADDRESS_ETC.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000 --a2 alph --w2 WALLET_ADDRESS_ALPH.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3106

bzminer -a ethw -w WALLET_ADDRESS_ETHW.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096 --a2 alph --w2 WALLET_ADDRESS_ALPH.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3106 --a3 zil --w3 WALLET_ADDRESS_ZIL.WORKER_NAME --p3 zmp://ZIL_POOL

bzminer -a etchash -w WALLET_ADDRESS_ETC.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000 --a2 alph --w2 WALLET_ADDRESS_ALPH.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3106 --a3 zil --w3 WALLET_ADDRESS_ZIL.WORKER_NAME --p3 zmp://ZIL_POOL

bzminer -a ethw -w WALLET_ADDRESS_ETHW.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096 --a2 kaspa --w2 WALLET_ADDRESS_KAS.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3112

bzminer -a etchash -w WALLET_ADDRESS_ETC.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000 --a2 kaspa --w2 WALLET_ADDRESS_KAS.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3112

bzminer -a ethw -w WALLET_ADDRESS_ETHW.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096 --a2 kaspa --w2 WALLET_ADDRESS_KAS.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3112 --a3 zil --w3 WALLET_ADDRESS_ZIL.WORKER_NAME --p3 zmp://ZIL_POOL

bzminer -a etchash -w WALLET_ADDRESS_ETC.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000 --a2 kaspa --w2 WALLET_ADDRESS_KAS.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3112 --a3 zil --w3 WALLET_ADDRESS_ZIL.WORKER_NAME --p3 zmp://ZIL_POOL

bzminer -a ethw -w WALLET_ADDRESS_ETHW.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096 --a2 radiant --w2 WALLET_ADDRESS_RXD.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3122

bzminer -a etchash -w WALLET_ADDRESS_ETC.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000 --a2 radiant --w2 WALLET_ADDRESS_RXD.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3122

bzminer -a ethw -w WALLET_ADDRESS_ETHW.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:3096 --a2 radiant --w2 WALLET_ADDRESS_RXD.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3122 --a3 zil --w3 WALLET_ADDRESS_ZIL.WORKER_NAME --p3 zmp://ZIL_POOL

bzminer -a etchash -w WALLET_ADDRESS_ETC.WORKER_NAME -p stratum+tcp://pool.woolypooly.com:35000 --a2 radiant --w2 WALLET_ADDRESS_RXD.WORKER_NAME --p2 stratum+tcp://pool.woolypooly.com:3122 --a3 zil --w3 WALLET_ADDRESS_ZIL.WORKER_NAME --p3 zmp://ZIL_POOL

Bzminer Setup

Download the latest Bzminer from the link above. After that, extract the archive and go to the folder with the miner. Select the coin you are interested in for mining and edit the .bat file. If you have not yet chosen what you want to mine, then we recommend that you first go to our mining calculator, where you can specify your video card and get the most profitable coin for the current day. Above you will find ready-made examples of bat files for each coin that you can mine on our pool. You will only have to specify your wallet address and, if desired, the name of the worker (rig).

Bzminer Basic Commands

-a, -a2 selection of algorithm for main and dual mining;
--disable disables the specified video cards from mining. A space is used as a separator. Use the device ID in the format pci_bus:pci_device (eg --disable 1:0 3:0). Use the --devices command to find the device IDs. In HiveOS, this parameter is set in the add. configuration;
-w this field specifies the address of your wallet or the address of the account on the pool;
--w2 to specify the second address if you mine in dual mode;
--pool_password, --pool_password2 password, use x by default;
-w, --worker, --worker2 worker name (rig ). It is set either as a separate parameter or through a dot after the wallet address;
--cpu-priority the level of CPU utilization during mining on a video card. The default is set to 2. If the processor does not pull, you can set 0. The maximum value is 5;
--reconnect-on-fail-shares reconnect the miner to the pool in case of receiving rejected shares from the pool ;
--nvidia 1mine only on Nvidia devices;
--amd 1mine only on AMD devices;
-h, --help display all available commands.

Bzminer Overclocking

--oc_lock_core_clock Lock core overclock value. You can also set different values ​​for video cards by specifying their ID, for example --oc_lock_core_clock 1000 1200 1300 (1000 for video card with ID0, 1200 for video card with ID1, 1300 for video card with ID2);
--oc_lock_memory_clock Lock overclock value in memory. You can also set different values ​​for video cards separated by a space;
--oc_core_clock_offset sets the core clock frequency of the video card in MHz. A space-separated value can be specified for multiple cards;
--oc_memory_clock_offset sets the graphics card memory frequency in MHz. You can specify a value for several cards through a space;
--oc_power_limit specifying the power limit (video card consumption), in watts. Through a space, you can specify a value unique for each card. For example --oc_power_limit 140 150 160 150.

Bz miner Common Errors/Issues

bzminer hung gpu detected - overclocking. Turn down your settings. If this does not help, update the miner to the latest version.

Dev Fees

ETH - 0,5%
ETC - 0,5%
RVN - 0,5%
ALPH - 0,5%
Kaspa - 0,5%

Bzminer API

--http_address specifies the IP address to listen on for the HTTP API. The default is 0.0.0.0;
--http_port sets the port. The default port is 4014.

Bz miner not starting

If you have Windows OS and the miner crashes immediately at startup, then add pause to the second line of the miner. Next, start the miner and read the error. After that, double-check your miner settings. If you have HiveOS or any other OS - go to the miner console and look at the logs of what is happening in the miner. After that, double-check your miner settings.