Mining pools: Stratum V2 and payout schemes
How your miner talks to a pool, who builds the block, and how the pool pays you: from the 2010 proportional split to FPPS, TIDES, DATUM and P2Poolv2. With a live payout calculator.
🌱 Pools in 30 seconds
- A single miner finds a block very rarely. A pool combines many miners and splits the rewards, so income becomes small but regular.
- The payout scheme decides who absorbs bad luck: on FPPS/PPS the pool pays you a steady amount; on PPLNS/TIDES you share the pool's luck but get paid from real blocks.
- Stratum is the language between your miner and the pool. Version 2 encrypts it and lets miners, not just pools, choose which transactions go into blocks.
- Today two pools find 46.3% of blocks. That's why miner-built templates matter.
Stratum V2 in plain words
- A mining pool and your miner talk over a protocol called Stratum. Version 1 (2012) sends plain-text JSON: anyone on the path can read it, and the pool alone decides which transactions go into the block you are hashing.
- Stratum V2 is the upgrade: encrypted and authenticated, compact binary messages, and, optionally, the miner (not the pool) builds the block template.
- Why it matters: today a handful of pools choose the contents of most blocks. If miners pick transactions themselves, censoring a transaction requires convincing thousands of miners, not three companies.
| Stratum V1 (2012) | Stratum V2 | |
|---|---|---|
| format | Text JSON-RPC, verbose | Binary framing; the project cites ~60% less bandwidth for pools, ~70% for miners |
| security | No encryption; hashrate can be hijacked by swapping credentials in transit | Noise-protocol encryption + pool authority key in the URL; SRI's noise_sv2 uses ChaCha20-Poly1305 |
| templates | Pool builds the template; miner hashes blind | Optional Job Declaration: miner builds it from its own node, pool only checks and pays |
| privacy | ISP can see shares and estimate your hashrate and earnings | Traffic is encrypted end to end |
| compat | Every ASIC firmware speaks it | Old firmware connects through a Translator Proxy (SV1 → SV2) |
The four parts
Miner/proxy ↔ pool: open channels, receive jobs, submit shares. Standard, extended and group channels.
The miner's Job Declarator Client builds a template from its own node and declares it to the pool's Job Declarator Server, which validates it. The miner chooses the transactions; on DMND also the coinbase and version (signal) bits.
A Template Provider feeds fresh block templates from Bitcoin Core. Bitcoin Core 30.0 shipped an experimental IPC Mining Interface for this; SRI's sv2-tp sidecar and bitcoin_core_sv2 speak to Core 30.x and 31.x.
Runs on your LAN: accepts Stratum V1 from stock firmware and speaks Stratum V2 upstream. No firmware change needed.
Reference implementation (SRI)
- SRI stratum v1.12.0 (17 Sep 2026) — Rust protocol crates (Stratum Reference Implementation). This release hardened channels and dropped AES-GCM from noise_sv2.
- sv2-apps v0.8.0 (17 Sep 2026) — Ready roles: Pool, JD Server, JD Client, Translator Proxy. Security hardening after an audit; every config option settable by environment variable.
- sv2-tp — Template Provider sidecar for Bitcoin Core's IPC interface (C++).
- SV2 UI — Docker app (also on the Umbrel app store) to mine solo with your node or with any SV2 pool, works with SV1 firmware.
Who supports Stratum V2 (October 2026)
Co-author of SV2. Public SV2 endpoint stratum2+tcp://stratum.braiins.com:3333/<pool key>; Braiins OS has a native SV2 client.
SV2-native pool. Block 955,318 (late June 2026) was the first mainnet block built from a miner-declared template via Job Declaration. Miners choose transactions, coinbase and signal bits; payout scheme SLICE.
Joined the SV2 Working Group on 7 May 2026 (with DMND). Membership means testing and contributing, not a public SV2 endpoint: we found no official public SV2 / Job Declaration endpoint from them as of 11 Oct 2026.
Different route to the same goal: the DATUM Gateway builds templates from your own node and still talks Stratum V1 to your ASICs. Not SV2.
Con Kolivas now contributes to SRI (sv2-apps v0.7.0). SV2 support in ckpool source is reported by third-party trackers; we could not confirm a public SV2 endpoint on an official page.
Checked on official pool and project pages on 2026-10-11. "Working Group member" is not the same as "supports SV2 for everyone".
Try Stratum V2 at home
Native SV2 client added in v2.14.0 (4 Jun 2026); v2.15 adds per-pool 'require authentication' and SV2 fixes. Latest stable v2.15.3 (20 Sep 2026).
SV2 (extended channel, Noise encryption) since v1.0.37; SV1 and SV2 pools can be mixed for failover.
Native SV2 on supported Antminers; stock Bitmain firmware does not speak SV2.
- Easiest: update a Bitaxe/NerdQAxe and set the pool URL to Braiins' SV2 address (stratum2+tcp://…/<key>) or a DMND endpoint from your account.
- Stock-firmware ASIC: run the SRI Translator Proxy (or SV2 UI) on a PC/Pi in your LAN and point the ASIC at it with a normal stratum+tcp URL.
- Your own templates: Bitcoin Core 30+ started with `bitcoin -m node -ipcbind=unix`, plus sv2-tp and a JD Client pointed at a pool that runs a JD Server (DMND today).
- Keep a Stratum V1 backup pool configured: SV2 stacks are still young.
Payout schemes, from classic to newest
Risk column = who carries the variance of block finding. Green: the pool pays steadily from its reserves. Amber: miners share the pool's luck.
| Scheme | Since | Risk | Fees paid? | Example |
|---|---|---|---|---|
| Proportional | 2010–2011 | Miners | Yes | Early pools (historical) |
| Score-based (Slush) | 2010–2023 | Miners | Yes | Slush Pool / Braiins Pool until it switched to FPPS on 12 Dec 2023 |
| Pay-per-share (PPS) | 2011– | Pool | No | Rare in its pure form today; replaced by FPPS/PPS+ |
| SMPPS / ESMPPS / RSMPPS | 2011–2014 | Shared | Yes | Early-2010s pools (historical) |
| CPPSRB | 2012– | Shared | Yes | Eligius (defunct) |
| PPLNS | 2011– | Miners | Yes | F2Pool, AntPool, SpiderPool and SECPOOL PPLNS options; P2Pool |
| PPS+ | 2016– | Shared | Yes | ViaBTC (PPS+ 4% on subsidy + 2% on fees) |
| FPPS (Full PPS) | 2017– | Pool | Yes | Foundry USA, Braiins Pool (2.5%), Luxor, F2Pool, AntPool, SpiderPool |
| Solo (CKPool solo, Public Pool) | 2014– | Miners | Yes | solo.ckpool.org (2% only when you find a block), Public Pool (0%) |
| P2Pool (2011) | 2011–~2019 | Miners | Yes | p2pool by Forrest Voight, launched 17 Jun 2011; no longer meaningful on mainnet |
| P2Poolv2 (2024–) | 2024– | Miners | Yes | Running on testnet4 only (Oct 2026); share trading still being built |
| TIDES (OCEAN) | 2023– | Miners | Yes | OCEAN: 2% fee, 1% with DATUM templates |
| DATUM (OCEAN) | 2024– | Miners | — | OCEAN DATUM Gateway |
| SLICE (DMND) | 2026– | Shared | Yes | DMND |
When the pool finds a block, the reward is split by each miner's shares in that round (since the previous block).
+ Simple, the pool never pays more than it earns.
− Broken by pool hopping: hop in at the start of a round, leave as it gets long. Abandoned.
Like proportional, but each share is weighted by time (score += exp(t/C)), so recent shares count far more; hopping stops paying.
+ Hop-proof, transparent.
− Income still depends on pool luck; leaving a pool forfeits recent score.
Every valid share is paid a fixed amount = block subsidy × share difficulty ÷ network difficulty, whether or not the pool finds blocks. Transaction fees are not paid.
+ Zero variance for the miner, instant predictable income.
− Highest fee; fees from blocks go to the pool; pool can go bankrupt in a bad-luck streak.
Shared Maximum PPS: like PPS, but the pool never pays out more than it has earned; unpaid credit waits for future blocks (E- and R- variants change who is repaid first).
+ Pool cannot go insolvent.
− Backlog can grow without bound during a long bad-luck streak.
Capped PPS with Recent Backpay: shares get PPS value up to what blocks actually pay; shortfall is back-paid to the most recent shares first.
+ No insolvency, no unlimited old debt.
− Complex; not used by large pools.
Pay Per Last N Shares: when a block is found, its full reward (subsidy + fees) is split over the last N shares, regardless of round boundaries.
+ Low fee (0–2%), full fees passed through, hop-resistant, pool needs no reserves.
− Income swings with pool luck; small pools pay lumpy.
Subsidy paid like PPS; transaction fees paid PPLNS-style from the blocks the pool actually finds.
+ Stable base income plus real fee spikes.
− Fee part still has luck variance; custodial.
Like PPS, but the pool also pays an average of network-wide transaction fees per share. Braiins documents it as reward = (subsidy + trimmed average fee) × shares ÷ difficulty, computed daily over all network blocks.
+ Near-zero variance, daily payouts; the dominant scheme for big miners and hosted fleets.
− Pool must hold large reserves, so only big pools can offer it → centralization pressure; payouts custodial; block contents set by the pool.
Your miner works alone through a pool server; if it finds a block, almost all of it is yours, paid straight from the coinbase.
+ Non-custodial, no account, perfect for Bitaxe-class hobby miners.
− Expected wait for a small miner is measured in thousands of years.
Decentralized pool: miners run nodes that build a share chain (a low-difficulty side blockchain); every block pays all recent share holders via the coinbase (PPLNS).
+ No operator, no custody, miners build templates.
− Orphaned shares grew with scale, small miners saw misleading stats, coinbase size limited payouts.
Rebuilt in Rust: a share DAG with uncles, per-miner vardiff, PPLNS paid in the coinbase to the top N miners; everyone else gets share-chain outputs they can sell for BTC via Lightning/Ark atomic swaps.
+ Decentralizes accounting too, not just templates; self-custodial payouts.
− Not on mainnet yet; you need your own node.
Each block's full reward is split over the last 8 blocks' worth of work (8 × network difficulty); shares are never discarded, so each share is paid ~8 times on average. Paid straight from the coinbase.
+ Non-custodial, auditable, full fees, low variance for a PPLNS-type scheme.
− Ramp-up before full income; earnings still depend on OCEAN finding blocks.
Not a payout scheme but a work-distribution protocol: the DATUM Gateway on your node builds the template (your transaction choice) and sends work to your ASICs over Stratum V1; OCEAN only accounts shares and pays via TIDES.
+ Miner-built templates today with stock firmware; lower fee.
− Needs your own full node; one pool.
DMND's scheme: subsidy split by hashrate, fees split by the value each miner's own declared templates built. Designed for Job Declaration.
+ Rewards miners for building good templates; lower variance than PPLNS per DMND.
− New, one pool; public detail on the formula is limited.
'Braiins FPPS+': some trackers label Braiins Pool 'FPPS+', but Braiins' own documentation calls its scheme FPPS (subsidy + trimmed average network fees). We list it as FPPS. Other pools do market an 'FPPS+' variant (e.g. EMCD, per the Bitcoin Wiki).
Payout calculator: FPPS vs PPS vs PPLNS vs solo
Assumptions: expected blocks = hashrate × 86,400 ÷ (difficulty × 2³²); subsidy 3.125 BTC; average fees 0.0146 BTC per block over the last 144 blocks (mempool.space). Hashrate and difficulty held constant; downtime, rejected shares and difficulty growth ignored. The PPLNS band is pool luck only (Poisson, 10th–90th percentile), without the N-window and ramp-up effects. Pool fees are typical defaults, check your pool. Not financial advice.
Live inputs: difficulty and price as of 11 Oct, 19:32 London · 132.72 T · $83,770 (Coinbase spot)
How concentrated is mining?
Top 2 (Foundry USA + AntPool): 46.3% of blocks in the last 7 days. Top 3: 63.9%.
- Foundry USA26.7%
- AntPool19.6%
- F2Pool17.6%
- ViaBTC9.4%
- SpiderPool6.2%
- MARA Pool5.2%
- SECPOOL4.2%
- Luxor3.3%
Share of blocks found in the last 7 days · mempool.space/api/v1/mining/pools/1w ·
- FPPS needs deep reserves to pay miners through bad luck, so it favours the biggest pools: hashrate gathers where variance is lowest.
- Block-template concentration can be even higher than pool shares suggest: researcher 0xB10C found several pools publishing near-identical templates to AntPool's (Poolin 99%, BTC.com 98% similarity), i.e. acting as proxies.
- The fixes on the table: Stratum V2 Job Declaration (DMND, Braiins), DATUM (OCEAN), and fully peer-to-peer accounting (P2Poolv2). All move transaction selection back to individual miners.
Sources and method
- stratumprotocol.org
- SV2 specification (sv2-spec)
- SRI: stratum releases
- SRI: sv2-apps releases
- Bitcoin Core 30.0 release notes (IPC Mining Interface)
- Braiins Academy: Stratum V2 manual
- DMND
- Working Group: new members (7 May 2026)
- Braiins Academy: rewards and payouts (FPPS)
- OCEAN: TIDES · DATUM
- P2Poolv2
- Bitcoin Wiki: comparison of mining pools (reward types)
- mempool.space API: difficulty, pool shares (1 week), average block fees (reward-stats/144).
- Content checked on 2026-10-11. Where official sources disagree or are missing we say so instead of guessing.