OPEN-SOURCE BITCOIN CASH MINING
Your Bitcoin Cash pool. Built your way.
Run an open-source Bitcoin Cash stratum server with native CashAddr payouts, configurable fees, and a Go API for building your own miner experience.
Your address. Your block reward.
In per-address solo mode, the winning miner is paid in the coinbase, less the configured operator fee. Docs ↗
Rental hashrate, recognised.
NiceHash and MRR clients receive the configured rental difficulty immediately after authorization, within operator bounds. Docs ↗
Choose your Bitcoin Cash node.
BCHN supports RPC + ZMQ. BCHD and Flowee use RPC + polling with manual configuration. Docs ↗
- BCH mainnet blocks
90 - every hash checked on chain
- Gross block rewards
281.46 BCH - includes transaction fees
- CashStratum-era blocks
22 blocks - including 7 on v1.2.5
Updated 2026-10-26: 9 additional chain-verified blocks. Read the proof update →
The Go operator API
An engine for mining.
A canvas for everything around it.
Build the miner experience you wish existed. CashStratum gives your application the shares, miner stats, coinbase details and block events to make it happen.
INSPECT THE COINBASE · ILLUSTRATIVE SPLIT
Your payout.
Visible before the solve.
Your application can show decoded reward outputs. This example uses a 2% operator fee; operators choose their own configuration.
#974153
A recorded mainnet solve. A moment worth seeing.
- Share difficulty
- 40.83T
- Network difficulty
- 509.25G
Illustrative interface, not a live feed. Explore a real miner page below.
GET /sharesGive every share a story
Resume accepted-share records with a cursor. Turn difficulty and hashes into share-strength charts, highlights and opt-in sounds.
GET /coinbaseSee what you are mining
Decode a miner’s current coinbase to show candidate payouts and the operator fee before a block is found.
GET /find-blockMake the solve a moment
Inspect the finder, solve-time hashrate and round effort. Use block events to trigger alerts, sound and a celebration.
Read-only, bearer-authenticated data. Keep API credentials on your server. Charts, sounds and confetti belong to your frontend; the optional notifier supplies signed block events.
Production proof
90 blocks from one lineage. Every one verified against public chain data.
Open the block ledger →The moment a share
becomes a block.
A real solve from the reference deployment. Follow the candidate through submission, acceptance and confirmation.
Read the published solve log ↗Unedited lines from the published solve excerpt, finder redacted. Historical evidence, not live telemetry.
- 2025-07-15 → 2025-12-06
skaisser/ckpool
Modified CKPool · deployed as EloPool
68blocks212.67746187 BCH
- 2026-09-01
CashStratum pre-release
Before the public release name · BlockSniper
1block3.12542747 BCH
- 2026-10-06 → 2026-10-23
CashStratum
Public-release era · v1.2.1 through v1.2.5
21blocks65.65490328 BCH
Tagged-release evidence plus the latest verified mainnet blocks.
The CashStratum advantage
Built for the people who run BCH pools
CashStratum vs plain CKPool
Same C foundation. 20 things upstream doesn't do.
Native CashAddr payout addresses (bitcoincash:, bchtest:, bchreg:)
Miners authorize with a CashAddr; it is checksum-validated and decoded locally.
Configurable operator fee as a second coinbase output
poolfee/pooladdress add an operator output (clamped 0–50%, dust-suppressed). Upstream only offers a developer-donation output.
Per-address round shares and luck
Each miner address tracks its own round and luck, reset for the finder on a block solve.
NiceHash and MiningRigRentals detection
Rental services are recognised from the user agent and given a suitable starting difficulty (overridable).
BCHD and Flowee the Hub
Every RPC carries an id (required by BCHD), coinbaseaux is optional (Flowee), BCHD network names recognised. Community contribution.
Large-template merkle construction (>65,535 transactions)
Heap-backed merkle branches keep every transaction of a large BCH template; upstream caps template transactions at 65,535.
HTTP operator API
Go service exposing /stats, /shares, /coinbase, /find-block, /health, /metrics and log queries, token-authenticated and rate-limited. Upstream offers only the local unix-socket ckpmsg interface.
Regtest end-to-end money gate in CI
Every PR and release mines real BCH regtest blocks and checks payouts (89/89 assertions at 1.2.1); plus unit tests and Go tests.
Choose your mining model
The pool owner decides how miners get paid
user: bitcoincash:qr…x7.rig01BCH CashAddr login
The winning miner's address, less the operator fee, is paid directly in the block coinbase. Account-free and pseudonymous.
user: alice.rig01Plain username login
Rewards go to the pool's configured bchaddress. The operator supplies account balances and miner payouts.
Address-shaped logins with a bad checksum or wrong network are rejected. Coinbase maturity applies.
C engine, Go API, shell tooling
A C engine. An operator toolkit. Your pool.
C engine
cashstratum
connector · generator · stratifier
Logs and status feed the terminal monitor and the read-only Go API. Authenticated routes for data; a separately rate-limited /ping for latency.
- solo · -B
Miners authenticate with their BCH address; the solver is paid in the coinbase. The mode the installer sets up.
- pool
All hashrate mines to one configured address; usernames are collated for statistics.
- csproxy · -p
Stratum V1 proxy aggregating local hashrate to ordered failover upstreams, with its own installer and systemd unit.
- userproxy · -u
Per-user proxy that submits each connected username's hashes upstream.
- passthrough · -P
Transparently multiplexes many miners over one upstream connection.
- redirector · -R
Passthrough that redirects clients to configured targets after a valid share.
Hardened where money moves
Payout safety, built into the mining path.
- Share-inflation fixShares are credited at the assigned difficulty and client overrides are clamped, closing a historical accounting-inflation path.
- Payout-script safetyEmpty payout scripts and templates without coinbasevalue are refused before any work is mined.
- Fail-closed chain detectionOn RPC failure or an unknown chain the pool retries instead of silently assuming mainnet.
- Strict stratum framingExactly one complete frame per newline; difficulty suggestions and password tokens are bounded.
- Hardened installersValidate node, chain and address first, write configs atomically with mode 0600 and roll back on failed activation.
- Private disclosureReport through GitHub Security Advisories, with a 72-hour acknowledgement target.
Choose your node
Three Bitcoin Cash full nodes
- Bitcoin Cash NodeReference
- — RPC + ZMQ notifications
- — Solo installer + regtest gate
- BCHDSince v1.2.2
- — RPC + block polling
- — Manual configuration
- Flowee the HubSince v1.2.2

- — RPC + block polling
- — Manual configuration
BCHD and Flowee integration contributed by @CyberAshven.
Get started
A guided setup, with your choices
Clone a release on Linux and run the installer. It asks for the install directory, node RPC credentials and your operator BCH address.
$ git clone --branch v1.2.5 --depth 1 https://github.com/cashstratum/cashstratum.git$ cd cashstratum$ bash install-cashstratum.shRequires Linux and a synced BCH full node. The solo installer supports BCHN; BCHD and Flowee use manual configuration.
Release validation
Tested in development. Published after validation.
Regtest
Real block submission, coinbase payouts, fee outputs, address handling and typo rejection.
Testnet
Network compatibility, work templates and accepted shares.
Public release gate
Linux build, unit tests, Go API tests and a regtest money gate against BCHN on every tagged release.
Mainnet
90 blocks, each hash checked against public chain data.
Shipping
Latest releases
- v1.2.5
CashStratum 1.2.5 is an engine release limited to the Stratum V2 Noise handshake. Builds configured with --disable-sv2 are functionally identical to 1.2.4.
Read notes → - v1.2.4
CashStratum 1.2.4 is a documentation and proof release. No engine, API or installer code changed — a 1.2.3 build and a 1.2.4 build are functionally identical.
Read notes → - v1.2.3
CashStratum 1.2.3 is a documentation and proof release. No engine, API or installer code changed — a 1.2.2 build and a 1.2.3 build are functionally identical.
Read notes →
Reference deployment
BlockSniper.ai runs CashStratum in production
Auditable candidate payouts, readable block history, in-page alerts and Telegram rental controls, all built around the engine. Build your own branded experience the same way.

Maintainer
Developed by skaisser
Contributing to the Bitcoin community since 2013. Lead developer of CashStratum, BlockSniper.ai and EloPool.cloud, and author of the original skaisser/ckpool fork that many BCH pools were built on.
- skaisser/ckpoolArchived
The original BCH-focused CKPool fork. Now archived; forked and deployed by many Bitcoin Cash pools.
- BlockSniper.aiLive pool
The CashStratum reference deployment: auditable payouts, block history, alerts and Telegram rental controls.
- EloPool.cloudNow BlockSniper
Where this engine's lineage began in 2025: 68 mainnet blocks before the rebrand to BlockSniper.
- bravros/bravrosOpen source
Free, public, host-neutral agent toolkit. Deliver skills across Claude Code, Gemini CLI and other agent hosts.
- BlueprintOpen source
A complete SDLC pipeline for Claude Code: skills, audit hooks and parallel subagents.
- devtermOpen source
One command from a fresh Mac to a full dev machine. Fonts, prompt, aliases, AI tools.
- howlOpen source
Multi-driver Laravel notifier for Discord, Slack and Telegram with channel failover.
Built on CKPool by Con Kolivas. Licensed GPLv3 or later. The community can build and verify exactly what production runs.
Contribute on GitHubDevelopment donation address
bitcoincash:qpwf98m6k3ddn4yvkpgtuns6nsscaadvwc3l3y5se0Show donation QR
Open your BCH wallet → Send → Scan.
Use the scanner inside your wallet. Your phone’s Camera app may not open Bitcoin Cash payment links.
On this device? Copy the full bitcoincash: address above and paste it into your wallet.
Send BCH on the Bitcoin Cash network.