An open-source getblocktemplate miner built in the run-up to the BIP-110 proof-of-work-change fork of Bitcoin. Pluggable hash kernels. Your node, your templates. Runs on the Python you already have. Maintained as reference code, not a production miner.
Everything to the left of the nonce, your own node decides. xorminer builds the whole header locally and grinds the last four bytes — through whichever hash algorithm the fork schedule says is in force. (The fork as actually shipped replaced this classic 80-byte header with a 164-byte redesign — see below.)
The proof-of-work change activated on 2026-08-30 at block 961640 with a redesigned 164-byte header and a staged BLAKE2b-256 pipeline — and day-one hashrate arrived at ASIC scale, from resurrected Sia-era hardware. A hobbyist CPU/GPU miner has no chain to win on, so xorminer is not being developed into a production miner.
What it is instead: working reference code. The getblocktemplate plumbing — template building, coinbase and witness-commitment construction, submission, stale-tip handling — is tested end-to-end on fork-simulation networks, and draftpow.py is a byte-exact, stdlib-only Python implementation of the live chain's final PoW pipeline, validated against the official test vectors that ship in the Bitcoin Knots source tree. If you're building a real miner, that file is the spec you can run.
# sanity check — every algorithm, no node needed
python3 -m xorminer --selftest
# verify the LIVE chain's PoW pipeline against the official vectors
python3 xorminer/draftpow.py <path-to>/block_header_v2.json
# mine on a fork-simulation network (draft construction — not the live chain)
python3 -m xorminer --chain regtest --datadir <datadir> --payout <address> \
--powchange <TIME:ALGO:SHIFT>
The hash loop sits behind a small, documented subprocess protocol. A CPU reference kernel ships in the box; native and GPU kernels drop in without touching the controller.
Work comes from your node's getblocktemplate — your mempool, your transaction selection. No pool ever hands you a header.
Mirrors the node's -powchangetime schedule exactly on simulation networks, switching algorithms at the same moment the chain does. The live chain's final construction — the staged BLAKE2b pipeline behind header v2 — is implemented byte-exactly in draftpow.py.
Speaks the xorpool TIDES protocol: templates stay yours, the coinbase pays the pool's published split, and found blocks go to your own node first.
github.com/bitcoinxor/xorminer
Never run mining software from anywhere else claiming this name. If it isn't in that repository, it isn't xorminer.