Official GPU miner for BitcoinIII (BC3) — post-fork SHA3-256t — built for the ArgfaMining pool. Native multi-GPU: one process drives every supported card in the rig (single worker, summed hashrate).
No kernel or engine changes: same hashrate as 5.5.0. What changed is everything around a start that does not work.
REGION is refused instead of quietly falling back to usa — and the
city name works now (frankfurt, mumbai, virginia).no GPU detected with nothing else.PTX fallback while running a native
kernel.5.5.1 was an image carrying the 5.5.0 binary: it only fixed the entrypoint, which called the miner without going through
run.shand broke--check-address.
The image ships native code for eight NVIDIA architectures instead of four. If you rent GPUs, this is the release that matters: the datacenter cards on vast.ai, RunPod and octa.space were detected before but could not mine — the binary had no kernel for them.
Newly supported:
| Architecture | sm_ | Cards |
|---|---|---|
| Ampere datacenter | 80 | A100, A30, CMP 170HX |
| Hopper | 90 | H100, H200 |
| Blackwell datacenter | 100 | B100, B200 |
| Blackwell datacenter | 103 | B300 |
Already supported, unchanged: RTX 20xx / GTX 16xx / T4 (75), RTX 30xx (86),
RTX 40xx (89), RTX 50xx (120).
These are natively compiled kernels, not JIT — full speed from the first second, no warm-up compile. Mining behaviour is unchanged on cards that already worked: same kernel, same hashes, same speed.
The miner verifies the checksum of your payout address, not just its shape, and refuses to start if a single character is wrong. A mistyped address still looks perfectly valid (right prefix, right length) but nobody can pay it: your shares count, your hashrate shows on the dashboard, and the reward never arrives.
Check any address without starting the miner:
docker run --rm argfa/bc3-gpu:latest --check-address <your address>
It prints the address type and exits 0 when valid.
Also fixed in 5.3.0: duplicate shares that the pool rejected while auto-tune was stepping through intensity levels.
The miner enumerates CUDA and OpenCL GPUs in a single unified list and runs
CUDA + OpenCL contexts in the same process: rigs mixing NVIDIA and AMD cards mine
with all of them (per-backend boot self-test; iGPUs are listed but deselected by
default; true AMD multi-GPU). Inside Docker, --gpus injects the NVIDIA driver only,
so the mixed-rig case applies to the native Linux/Windows builds for now (ROCm base
image pending).
docker run --rm --gpus all \
-e WALLET=your_bc3_address \
-e WORKER=rig1 \
-e MODE=prop \
-e REGION=usa \
argfa/bc3-gpu:latest
On clore.ai, Salad, TensorDock and similar, you pick an image and fill a form — you
never write the docker run, so there is no --gpus all to add. GPU access there is
driven by environment variables, and the two below are the ones that matter. Set them
next to WALLET / WORKER / MODE / REGION:
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=compute,utility
The image already declares both, but these platforms build their own run command and the image's values do not always survive it. Setting them explicitly costs nothing.
If the miner exits immediately with exit 127, that is the NVIDIA driver not reaching
the container — libcuda.so.1 and libnvidia-ml.so.1 come from the host and are not
inside the image. Confirm it in one command:
docker run --rm --entrypoint nvidia-smi argfa/bc3-gpu:latest
If that fails inside the container the problem is the GPU passthrough, not the miner.
| Var | Values | Default | Notes |
|---|---|---|---|
WALLET | 1… / 3… / bc1… | — (required) | Your BC3 payout address (checksum-validated) |
WORKER | letters, digits, -, _ (max 24) | container hostname | Worker name shown on the dashboard |
MODE | solo · prop | prop | solo = 99% of the block (1% fee) · prop = split by round shares |
REGION | latam · usa · eu · in | usa | Pick the closest endpoint by ping |
DEVICES | e.g. 0,1 | all | Pin specific GPUs (default: all detected) |
INTENSITY | 22–31 | auto | 2^N nonces per launch (advanced) |
Regions: latam (Venezuela) · usa (Virginia) · eu (Frankfurt) · in (Mumbai, India).
BC3 accepts all five address formats: 1… (P2PKH), 3… (P2SH), bc1q… (P2WPKH/P2WSH),
bc1p… (P2TR).
By default the miner uses all supported GPUs. Pin specific cards with -e DEVICES=0,1.
Any extra arguments after the image name pass straight to the miner.
docker run (clore.ai, Salad, TensorDock), see the note above the configuration table.sm_75 or newer — Turing, Ampere (incl. A100), Ada, Hopper (H100/H200) and
Blackwell (RTX 50xx and B100/B200/B300). AMD via OpenCL (mixed NVIDIA+AMD rigs supported by
the miner binary; in Docker the AMD runtime needs a ROCm base — pending).ubuntu:22.04 base (~143 MB); the CUDA runtime (libcudart.so.13) ships inside the
image and the driver is injected at runtime by --gpus.On start it prints the kernel self-test per backend — it must say PASS. In the
stats lines, verify_fail must stay 0 and accepted shares (acc) should climb.
5.5.2 (pinned) · latest.Support: https://discord.gg/nZTu2QC2YC
Content type
Image
Digest
sha256:fa4709ec0…
Size
32.6 MB
Last updated
22 days ago
docker pull argfa/bc3-gpu