Which miners actually work on BTCB2.
This chain is mined with BLAKE2b, the function Siacoin used. That single fact decides everything on this page: hardware built for Sia mines this chain on stock firmware, and hardware built for SHA-256 cannot mine it at all — not with a setting, not with a firmware, not ever.
BLAKE2b ASICs
Sia-generation hardware, no reflash. Pick your machine — the settings below follow it, and so does the link to buy one.
The code b2pool takes 2 % off any order at bt-miners. The three dimmed machines are no longer made, so those links go to what replaced them. These are affiliate links: an order through one pays B2Pool a commission and costs you no more than going direct.
stratum+tcp://de.b2pool.io:3333
- Worker
- your payout address
- Password
- d=170000
- First share
- ≈23 s
- Without that password
- ≈3 s
4.3 TH/s at 1380 W, and the fastest of the four. It was sold as a SIACOIN miner and still says so on the label; the algorithm underneath is BLAKE2b, which is what this chain uses. Nothing is flashed and nothing is patched.
Web login: admin / dragonadmin
- 01Find it on your network
Its own IP reporter, or your router's client list. Open that address in a browser.
- 02Sign in
Default login
admin/dragonadmin— notadmin/admin, which is the guess that costs people an evening. - 03Mining Pools → Pool 1
Paste the URL above. The
stratum+tcp://prefix is required here; this interface rejects a bare host. Worker is your payout address, password anything. - 04Save & Apply
Pools 2 and 3 take a second and third region for failover. The first share lands in about 16 seconds.
19 TH/s, and 24 TH/s on the BM-S3+ — the fastest thing you can point at this chain, several times an S11. Both revisions connect the same way; only the starting difficulty below differs.
Web login: varies by revision — see the label
- 01Find it on your network
Your router's client list is the quickest way; iBeLink units do not all ship with the same discovery tool.
- 02Sign in
iBeLink's defaults differ between models and revisions — some ship
admin, someiBeLink, some pair the two. It is on the label or in the manual that came with the unit. We would rather say that than print a guess. - 03Miner Configuration
Paste the URL above into the first pool, your payout address as the worker, anything as the password.
- 04Apply
Fill the second and third pool with another region so a network hiccup does not idle the machine. First share in about 16 seconds.
815 GH/s at 1275 W. A lot of these have been sitting idle since Siacoin moved away from BLAKE2b, which is exactly why this chain is worth their while again. It is an Antminer, but not a SHA-256 one — there is nothing to reflash.
Web login: root / root
- 01Find it on your network
Press the IP Reporter button on the controller and it announces its address, or read it off your router.
- 02Sign in
Default login
root/root. - 03Miner Configuration → Pools
Three slots, each with URL, worker and password. Paste the URL above into Pool 1, your payout address as the worker.
- 04Save & Apply
First share in about 86 seconds; the pool's difficulty control then settles it to one every 30 seconds or so.
550 GH/s at 500 W — the most efficient of the four per watt, and the quietest case to run at home. The Immersion variant is the same silicon in a different shell.
Web login: admin / admin
- 01Find it on your network
Your router's client list, or the address the unit prints on its display if it has one.
- 02Sign in
Default login
admin/admin. - 03Pools
Paste the URL above, your payout address as the worker,
xas the password — this pool reads the address, not the password. - 04Save
First share in about two minutes. If that feels slow, it is only the starting difficulty; the control moves it down for a machine this size.
The Gen 2 is a different machine. Its firmware (ob2, cgminer-sia 4.10.0) has a 32-bit extranonce2 compiled in and checks the advertised size against 4. This chain's dialect advertises 8, so a stock Gen 2 refuses the work and never starts hashing. The four steps above are for the first-generation SC1 and the Immersion; a Gen 2 needs the firmware patch below first.
Obelisk SC1 Gen 2: firmware patch and endpoint
Patched firmware passes its own size check, but it hex-encodes eight bytes out of a four-byte variable — so the last four bytes of every extranonce2 it sends are whatever sat next to that variable in memory. Read literally they rebuild a different work root and the pool rejects every share as H-not-zero. Our DATUM gateway reads the extranonce2 exactly as submitted first and, only if that fails, retries once with those four bytes zeroed. A miner that means all eight bytes never reaches the retry, so nothing changes for any other machine.
Point it at the DATUM gateway, not the ordinary ASIC port:
stratum+tcp://de.b2pool.io:23333 — worker is your payout address, password
anything. The retry exists only there. On ports 3333, 4444 and 5555 a patched Gen 2 is
still rejected.
This patch is not ours and we have not run it on real hardware. It was published and then independently verified by a third party on a single SC1 Gen 2 on 13 October 2026, with 149 shares accepted by a pool and none rejected — a snapshot, not a measurement of sustained operation. Editing a miner's firmware can leave it unable to start. Keep the original executable; it is the only way back.
The file
/usr/local/ob2/bin/cgminer-sia, 264096 bytes, ELF32 ARM little-endian. Verify this before you touch anything — if either checksum differs, your firmware is not the one this was tested on and these offsets do not apply to it.
| File | MD5 | SHA-256 |
|---|---|---|
| Original | 4c0b44bc41226205347abd3e4a65311a | 95aa670de49712efb2c210096855f111e37ae65b1bfd77b2f84a97ded524f11e |
| Patched | a59d7e04cb01e03cc52617320fd11614 | 8101a007f5f08e1add1f5a33780ca34207efca1e99d8cbe32f517605279b400a |
The four instructions
These are file offsets, and the bytes are in file order.
| Offset | Original | Replacement |
|---|---|---|
| 0x0c6bc | 04 00 53 e3 | 08 00 53 e3 |
| 0x32610 | 0a 70 a0 e1 | 08 00 a0 e3 |
| 0x32694 | 34 40 ff eb | 00 80 80 e5 |
| 0x32698 | 07 20 88 e0 | 04 20 87 e2 |
The instruction at 0x32610 is mov r7,r10, not mov r0,#4 as the patch was first described. The real mov r0,#4 sits at 0x325f8 and stays as it is. Do not move the patch there — that produces a different and untested variant. The checksums above come from exactly the four changes in the table.
How to do it
- 01Back up first
Copy the original executable and your configuration off the machine. Check the original checksums and all four original byte sequences. If anything differs, stop here.
- 02Patch a copy
Never the file in place. Verify both target checksums on the copy before it goes anywhere near the miner.
- 03Test from RAM
Stop the miner and its process monitor in a controlled way, run the patched copy from a writable temporary directory, and confirm shares the pool has accepted — the miner's own counters include local rejections, which are a separate number.
- 04Install only after that works
The root filesystem is read-only by default on this unit; return it to read-only afterwards. Keep the original executable on the machine for rollback.
- 05Reboot and check again
Confirm it starts by itself and that new shares are accepted. Treat the firmware and the pool endpoint as a pair: roll both back together.
A Found block line in the miner's log is not proof that the network accepted a block — check an explorer.
If you would rather not patch anything, say so in the password field: xn=4. A stock
Gen 2 then gets a four-byte extranonce2 — the session id is padded out to eight bytes
instead, so the hashed leaf stays 52 bytes and only the range the miner varies gets
smaller. It combines with the difficulty switch in either order, as in
d=50000,xn=4, and only 4 and 8 are accepted: any other number is ignored
rather than rounded, because a width we cannot serve would reject every share. The
password arrives after we have already announced the width, so the pool corrects it
with a mining.set_extranonce message. Firmware that ignores
that message is no worse off than before, but will not start either — tell us the user
agent your unit reports and we will serve it the narrow field from the first message.
There is no click-by-click guide for this model yet, and it does not need one: every BLAKE2b miner wants the same three fields — the URL above, your payout address as the worker, and the password. Only where the interface keeps them differs, and the manual that came with the unit says where.
Figures are the manufacturers', and they are the BLAKE2b ones — every Goldshell in the HS series runs Handshake or Siacoin, and its BLAKE2b rate is roughly double the Handshake number on the box: an HS5 is sold as 2.7 TH/s and does 5.4 TH/s here. J/TH is the other two divided, which is what a machine costs to run rather than what it is worth — an A3 draws eleven times a BM-S3+ for the same work.
Not an ASIC? Also welcome.
Own ports for graphics cards, processors and FPGAs, at difficulties they can actually reach — which is not something the other pools on this chain offer. Same Stratum, same three fields, and the difficulty is the only thing that differs.
Graphics cards
BLAKE2b is cheap enough that a graphics card is a real participant here rather than a gesture. The miner is supryolo, open source, NVIDIA through CUDA and AMD through OpenCL.
stratum+tcp://de.b2pool.io:4444
- Starting difficulty
- 128
- At 2 GH/s
- a share every ≈4.5 min
- At 6 GH/s
- a share every ≈90 s
- Worker
- your payout address
./supryolo --url stratum+tcp://de.b2pool.io:4444 \ --user <your-payout-address>.rig1 --gpu-device 0 --no-cpu
--list-devices shows what it found and --benchmark
measures without connecting, which is the quickest way to know what your card is worth before
you point it anywhere. Building it, and the Windows, Hive OS and Docker routes, are on
the setup page.
Processors
The CPU port runs at difficulty 1. That is not a courtesy, it is the floor of the chain: one share at difficulty 1 costs 232 hashes and nothing smaller exists. A processor is therefore the cheapest honest way to see whether all of this works before you move a machine that matters.
stratum+tcp://de.b2pool.io:5555
- Starting difficulty
- 1
- Per core, measured
- 6.66 MH/s
- 8 cores
- a share every ≈81 s
- 16 cores
- a share every ≈40 s
./supryolo --no-gpu --cpu-threads 15 \ --url stratum+tcp://de.b2pool.io:5555 --user <your-payout-address>.cpu1
Leave a thread for the operating system — --cpu-threads 15 on sixteen
cores, not 16. The per-core figure above is this pool's own benchmark, not a manufacturer's
number, so your machine will land near it rather than exactly on it.
FPGAs
An FPGA around 20 GH/s lands a share every twenty-seven seconds on the same port a graphics card uses. The board does not care which chain it is: what it needs is a bitstream for BLAKE2b.
stratum+tcp://de.b2pool.io:4444
- Starting difficulty
- 128
- At 20 GH/s
- a share every ≈27 s
- Boards
- ZTEX 1.15y and newer Xilinx
- BLAKE2b bitstream
- in the works
The software is suprminer-fpga — a C miner for ZTEX USB-FPGA 1.15y boards and newer Xilinx parts, with the bitstream loaded over USB. It does not mine BLAKE2b yet. What ships today are bitstreams for Groestl, Myriad-Groestl, Blakecoin and BLAKE3; the BLAKE2b one for the 1.15y is being built and will be published shortly. We would rather say that than let you spend an evening looking for a file that is not there.
When it lands, the command is the shape the project already uses — an algorithm, a pool, a worker:
./fpga_miner -a blake2b -o stratum+tcp://de.b2pool.io:4444 \ -u <your-payout-address>.fpga1 -p x --ztex
Until then the port is open to anything else that computes BLAKE2b and speaks Stratum V1 — the protocol is published in full, hash construction included, so a bitstream written against it will work here on the first try.
Work out your own machine either way: seconds per share = difficulty × 4.295 × 109 ÷ your hash rate. That is the whole arithmetic, and it is the same one the pool uses.
Tell the pool how big you are
Each port starts everyone on the same difficulty, and that number is a compromise. Put
d= and a number in the password field and it stops being one.
This matters for exactly one moment, and it is the first one: the pool cannot adjust your difficulty until it has seen a share from you. Until then the port's starting value decides alone. Too high and a small machine looks dead for minutes; too low and a large one floods the pool with traffic neither side needs.
| Machine | Hash rate | Password | First share | Without it |
|---|---|---|---|---|
| Rented rig | 100 TH/s | d=700000 | 23 s | 0.7 s |
| Mid-size rig | 20 TH/s | d=140000 | 28 s | 4 s |
| FPGA | 20 GH/s | d=140 | 27 s | 27 s |
The rule behind the column: d = your hash rate × 30 ÷ 4.295 × 109 — one share every thirty seconds, which is what the pool aims for anyway. Vardiff takes over from your first share and settles the rest, so the number only has to be close.
It is rounded to the nearest power of two, and that is not a rounding we chose:
on this chain a share target is 2224−1 shifted right by a whole number of bits, so
there is nothing between 32,768 and 65,536. d=50000 becomes 65,536.
The port's floor still holds. Asking for less than the port allows gets you the
floor, not the number — a 2 GH/s graphics card wants d=16, but port 4444 never
goes below 128, so that card belongs on 5555 where the floor is 1. If your miner speaks
mining.suggest_difficulty, that works too and does the same thing.
Put your own name in the block
Your machine is running. This is the part most people never find out about, and it costs nothing to try: the same hardware, pointed at a different port, stops renting its hashrate to a pool and starts being part of one.
On the ordinary ports we decide which transactions go into the block you are working on. With DATUM you decide, from a node in your own house — and we only send back a list of who gets paid. We never see your block, and we could not censor a transaction in it if we wanted to. There are two doors, and they are not the same door.
| Our gateway — port 23333 | Your gateway — port 28915 | |
|---|---|---|
| What you run | Nothing. Point the miner at it. | Bitcoin Knots (BLAKE2b) and a stock datum_gateway, on your own machine. |
| Who picks the transactions | We do, from our node. | You do, from yours. |
| How a block pays you | From our wallet, like every other port. | In the coinbase of the block itself — the money is yours the moment it confirms, with no pool balance in between. |
| Whose name is in the coinbase | Ours. | Ours and yours. |
Port 23333 is for an ASIC; 24444 and 25555 are the same gateway for graphics cards and processors. Port 28915 takes a gateway, not a miner — your machines connect to your gateway, and it connects to us.
The coinbase tag
A block carries a short piece of text that anyone can read forever. Ours says who ran the pool. On port 28915 the second half of it is yours.
# datum_gateway config, on your machine
"mining": {
"pool_address": "bc1q…your payout address",
"coinbase_tag_secondary": "Bob's garage"
}
Up to 60 characters. Find a block and the coinbase reads
/mined on B2Pool.io/ followed by your text — on
mempool.guide, in every explorer, and in the
chain for as long as it exists. It is not a setting on a website that we could quietly change; it
is in the block. Block 969,774 is one of ours, found through somebody's own gateway — the tag
after ours is theirs, not a default. Every block we have found is on the blocks
page.
The catch is honest: it costs you a synced node and one more service to keep running, and if your node is down your gateway has nothing to build on. That is the whole trade. The setup page walks through it.
Why a SHA-256 ASIC cannot be made to work
The BLAKE2b hardfork changed the proof of work at block 961,640. Before that height the chain is Bitcoin's, hash for hash; after it, a block is valid only if its BLAKE2b hash meets the target. A SHA-256 ASIC has that function etched into silicon — there is no instruction set to reprogram and no firmware that adds a second algorithm.
What you see when you try is unmistakable, and worth recognising because rental platforms will happily take the order: the miner connects, authorises against your address, and reports itself as hashing at full rate, while the pool records a hundred percent rejects and a best share thousands of times below the difficulty it was given. If your miner page shows that pattern, the machine is on the wrong algorithm. Nothing else produces it.
If you rent hashrate, rent it under Blake2B (sometimes listed as Sia or SC), never under SHA-256.
Common questions
Can an Antminer S19 or S21 mine this chain?
No. Both are SHA-256 machines. They connect and submit, and the pool rejects every share. There is no setting or firmware that changes this.
Do I need to reflash my Sia ASIC?
No. Stock firmware is enough. Enter the pool URL, your payout address as the worker and anything as the password — the same three fields a Siacoin pool wanted.
Is a Goldshell or other Sia miner supported?
Any machine that computes BLAKE2b and speaks Stratum V1 works, whether or not it is listed above. The table names the models people ask about most; it is not a compatibility list. If in doubt, connect to the CPU port with any BLAKE2b miner first and see whether shares are accepted — that costs nothing and answers the question in a minute.
Can I put my own text in a block I find?
Yes, if you run your own DATUM gateway and connect it to port 28915. The coinbase of every
block carries a short piece of text; the pool's half says B2Pool, and the other half is whatever
you set as coinbase_tag_secondary in your gateway config — up to 60 characters. Find
a block and it is in the chain permanently, readable on mempool.guide and every other explorer.
On the ordinary ports, and on our own DATUM gateway at 23333, the tag is ours.
How much hashrate do I need?
On the shared pool, none in particular: you are paid in proportion to the shares you contribute, so a CPU earns a CPU's share of a block and an ASIC earns an ASIC's. Solo is the opposite — there a single machine against the network's petahashes is buying a lottery ticket, and the time-to-block calculator will tell you how long the average wait is.
Can I point a rented rig at this pool?
Yes, and it works — provided the rental is placed under the BLAKE2b algorithm. The platform passes the pool's difficulty straight through to the rig, so there is nothing to set on their side beyond the URL, your address as the username, and the algorithm.
Rented rigs are usually far larger than the ASIC port's 16,384 suits — at 100 TH/s that
is a share every 0.7 seconds. Put d=700000 in the password field and it starts
near one every 23 seconds instead.
Ready?
Three fields and you are mining, with no account to create — your payout address is the account. The setup page has the exact values per hardware class, and measures the latency from your own browser to each region.