How a Bitcoin mining pool actually works: from share to payout
Most explanations of mining pools stop at "miners combine hashrate and split the reward." True, and useless. It tells you nothing about why your income looks strange for the first day after switching pools, why a weekend of downtime hurts far more on PPLNS than on PPS, or where part of the transaction fees goes. What follows is the mechanism step by step: what leaves your ASIC every second, how it gets counted, and how it turns into satoshis on your balance.
One note on who is writing this. POOL BTC is not a mining pool. It is an independent comparison site for pools, calculators and services, so there is no payout scheme here that needs defending.
[IMAGE: sunny day, small mining shed with open doors, green field and rolling hills behind, clear sky]
What a share is and why pools need it
A share is a block header hash your miner found that came in below the difficulty target the pool set, but above the network target. It will never be a block. It works as proof of effort: producing that hash required millions of honest attempts. The pool counts shares and uses them to measure each worker's contribution.
The search itself is identical for a block and for a share. The miner takes a block template, iterates the nonce and other mutable fields, runs double SHA-256, and looks at the result. The only difference is which number you compare it against. Below the network target and it is a block, money for the whole pool. Below share difficulty but above the network target and it is a share, an accounting unit of your work.
Two properties follow. Shares cannot be forged, and they cannot be reused. Each one is tied to a specific job carrying the pool's own payout address, so you cannot submit someone else's share and you cannot submit your own twice.
The 29 August 2026 network snapshot shows how rare the winning ticket is: network hashrate 896.89 EH/s, difficulty 125,807,076,547,197.5. The block subsidy is still 3.125 BTC, and across the last 4320 blocks transaction fees added 0.73% on top of it. At roughly $77,817 per BTC on the morning of 29 August 2026, that is the entire pie a pool then splits under its scheme.
How share difficulty differs from network difficulty
Network difficulty is shared by everyone and adjusts every 2016 blocks. Share difficulty is set by the pool itself, separately per connection, and can change at any moment. It is a pure bookkeeping knob. It has zero effect on your odds of finding a block, only on how often your miner reports back.
The logic is simple. Set the bar too low and shares arrive several times a second: bandwidth wasted, pool servers loaded, accuracy no better. Set it too high and reports are rare: the hashrate graph jumps around and a dead machine goes unnoticed for longer. Pools aim for a handful of shares per minute per connection and tune the bar to your power.
One detail matters when you compare dashboards. Share counts are not comparable across pools, because every pool picks its own bar. Compare accepted hashrate and reject rate instead.
What vardiff is and why your neighbour has a different difficulty
Vardiff is automatic adjustment of share difficulty per worker. An S21 and an old S9 on the same bar would behave nothing alike: the fast machine would flood the server, the slow one would report far too rarely. So the pool raises the bar for fast hardware and lowers it for slow, targeting roughly the same reporting rate for everyone.
The adjustment is not instant. After a new machine connects it takes a while for the bar to settle into its working range, and during that period the dashboard graph lies: too low one minute, too high the next. Hence the classic beginner ticket, filed fifteen minutes after switching pools, claiming the pool is stealing hashrate.
The second practical point: vardiff breaks on a flaky connection. Every drop forces a reconnect, the bar resets to its starting value, and you end up with more junk reports and a badly distorted graph. A gap between local and accepted hashrate in that situation is normal and gets fixed by the network link, not by moving to another pool.
How Stratum works: jobs, extranonce and the job queue
Stratum is the protocol between miner and pool. The pool sends a job containing a block template, the miner iterates through candidates and sends back only the successful ones. Full blocks never travel over the wire, traffic stays tiny, and a single server handles tens of thousands of connections.
The exchange runs like this:
- The miner connects and subscribes to jobs.
- The pool assigns a unique extranonce, a personal slice of data inside the coinbase transaction.
- The pool sends a job: previous hash, merkle branches, version, timestamp, target difficulty.
- The miner builds its own coinbase with its own extranonce and computes the merkle root.
- The miner iterates the nonce and other fields, submitting everything that clears the bar.
- The pool validates each share, credits it, stores it, and publishes a block if the hash cleared the network target.
- When a new block appears on the network, the pool broadcasts a fresh job and asks miners to drop the old one.
Extranonce is the crucial piece. It gives every miner a different search space: two ASICs on the same job build different coinbase transactions, therefore different merkle roots, therefore different hashes. Without it half your farm would duplicate the other half's work.
The last step explains stale shares. Time passes between the network seeing a new block and your miner receiving the new job, and everything computed in that gap is wasted. That is why ping matters and why picking the geographically nearest stratum endpoint is worth the effort. How that interacts with region choice was covered in the guide on choosing a Bitcoin mining pool.
[IMAGE: bright diagram of miner and pool server exchanging jobs and shares, blue and green tones, daylight]
Why the pool finds the block, not an individual miner
Technically the winning hash comes out of one participant's machine. But the coinbase transaction inside the job was built by the pool, and the reward address in it belongs to the pool. A miner physically cannot swap in a personal address: changing the coinbase changes the merkle root, and the result no longer matches the job that was issued.
So "my miner found a block" carries no economic meaning. The reward lands on the pool's address and the participant receives a share of it under the rules of the chosen scheme. This is also why block statistics are published at the pool level and why each pool's share of total hashrate is visible on chain.
There is one exception: solo mining, where you set the reward address yourself. The difference in variance and waiting time is enormous, and we ran those numbers separately in the piece on solo mining versus pool mining.
How a miner's contribution is measured
Contribution is counted in difficulty units, not in raw share counts. Each share weighs whatever its share difficulty was. Fifty shares at a bar of 10000 and five shares at a bar of 100000 contribute identically. That is why vardiff gives no advantage to either fast or slow machines, it only changes reporting frequency.
From that accumulated weight the pool derives your hashrate. Hence the two numbers people confuse. Local hashrate is what the miner reports about itself. Pool-side hashrate is reconstructed statistically from accepted shares, and over short intervals it wanders simply because shares arrive unevenly. The two converge over a day, not over ten minutes.
Rejected shares live in their own column: stale, duplicate, or failing validation. A small reject rate is normal on any link. A rate several times higher than usual points at the connection or the firmware, not at the pool's honesty.
PPS, PPS+, FPPS, PPLNS and solo: the mechanical differences
A payout scheme answers one question: does the pool pay for submitted shares or for blocks actually found. Everything else, including the difference in risk, follows from that choice. Here is the mechanism, without verdicts.
| Scheme | What it pays for | Transaction fees | Who carries bad luck | On disconnect |
|---|---|---|---|---|
| PPS | every accepted share at a fixed rate | not shared | the pool | income stops immediately |
| PPS+ | shares at a rate plus fees as actually collected | shared, as collected | pool on base, miner on fees | base part stops immediately |
| FPPS | shares at a rate with an averaged fee premium baked in | shared, averaged | the pool | income stops immediately |
| PPLNS | shares inside the current window when a block is found | usually shared | the miner | shares keep paying, then age out |
| Solo | only the whole block you found yourself | entirely yours | entirely the miner | nothing accumulates |
An example makes the behaviour clearer. Under PPS the pool buys your work at list price: whether it found a block this week or not does not touch your payout, the pool absorbs the variance and prices it into the fee. Under PPLNS the pool distributes a reward it already received, so your income depends on how many blocks the pool caught while your shares sat in the window.
A detailed walkthrough of the three most common schemes with worked examples is in FPPS vs PPLNS vs PPS+, and the terminology used here is collected in the miner's glossary.
Can you even get PPLNS for BTC at a major pool?
Short answer: almost nowhere as the default. Per pool documentation as of 1 September 2026, Braiins, Foundry USA, Binance Pool and Luxor settle BTC on FPPS only. AntPool and ViaBTC offer PPLNS as an option, but both default to PPS+. Ocean does not run PPLNS at all, it runs its own scheme called TIDES. Kryptex and NiceHash are not classic BTC PPLNS pools in any sense.
This is the part most guides get wrong. Half the internet explains PPLNS as if it were the industry default, when for Bitcoin most large pools simply do not offer it.
| Pool | What is actually available for BTC | PPLNS status |
|---|---|---|
| F2Pool | FPPS by default, PPLNS as an alternative | available as an option |
| ViaBTC | PPS+ by default, PPLNS as a second mode | available as an option |
| AntPool | FPPS, PPS and PPLNS listed, PPS+ is the default | available as an option |
| Braiins Pool | FPPS only, the old scoring model was abandoned in December 2023 | not used |
| Ocean | its own TIDES scheme | not PPLNS |
| Luxor | FPPS only | not offered |
| Foundry USA | FPPS only | not used |
| Binance Pool | FPPS for BTC, PPLNS appears in the general FAQ as a formula | not stated as a working BTC mode |
| EMCD | FPPS only for BTC, PPLNS documented for other coins | none for BTC |
| Kryptex Pool | PPS+ | not a PPLNS pool |
| NiceHash | hashrate marketplace, sellers settle on RTPPS | not a PPLNS pool |
The practical takeaway if you are shopping specifically for PPLNS: the real options are few, and in almost every case you have to switch the mode on yourself rather than get it by default. The window mechanics in the next section apply to exactly those pools, not to the market as a whole.
What the PPLNS sliding window is and why downtime costs so much
PPLNS measures the pool's recent work, not elapsed time: the window holds the last N shares (or difficulty units) in the pool's overall stream. When the pool finds a block, the reward goes to everyone whose shares sit inside the window at that instant. Your cut equals your share of the difficulty in it.
The consequence: the window moves forward on other people's shares, not on the clock. Switch your machine off and your shares stay in the window, still earning a cut of every block found, but they get pushed out as everyone else keeps working. How fast depends on the window size and the pool's total hashrate, not on your schedule.
So PPLNS has two asymmetric edges:
- Ramp-up. During the first hours on a new pool the window is not yet full of your shares, and income runs below the steady state.
- Tail. After you disconnect, income does not stop dead, it decays as your shares get pushed out.
The tail partly pays back the ramp-up when you switch pools, but only if you leave for good. Frequent on and off cycles cost more on PPLNS than on PPS: you pay for the ramp-up every time and do not always stay long enough to collect the tail. What a switch actually costs in satoshis was calculated in the article on the cost of changing pools.
How large is the window at specific pools
Very few pools publish an actual number. The table below was checked against official pool pages on 1 September 2026, and where the multiple is not published, it says so.
| Pool | Official wording of the window | What it means |
|---|---|---|
| Ocean (TIDES) | eight network difficulties: the share log window equals eight times the block's difficulty worth of shares | the most detailed description of the lot, with the maths spelled out in the docs |
| ViaBTC | the past 5 difficulty rounds | the only classic PPLNS mode with a published number |
| AntPool | proportion of hashrate over the last N difficulty rounds | the window is measured in difficulty rounds, N itself is not published |
| F2Pool | the last N shares, no multiple given for BTC | the multiple is not published |
| Binance Pool | a last-N-shares formula in the general FAQ | N for BTC is not published |
| EMCD | the number N of the last shares your equipment contributed | the multiple is not published |
That has an awkward consequence for comparison shopping: at most pools you cannot work out in advance how long your tail will last after you disconnect, because the window size is undisclosed. You cannot reverse it from public stats either, since the dashboard shows shares, not the rule by which they drop out.
Ocean deserves a separate note. Shares are never removed from its log at all. The documentation states that a share is expected to be rewarded around eight times while it sits inside the window, after which it simply stops counting toward new blocks as fresh work arrives. That is a natural exit by volume of work, not a penalty for leaving, and the phrase "your shares burn" does not apply to TIDES.
What pool hopping is and how the window blocks it
Pool hopping means jumping between pools to collect where the current expected payout is statistically better, then leaving before the unprofitable stretch arrives. It worked against older schemes such as plain proportional payout per round, where early shares in a round were worth more than late ones.
In a proportional scheme a round starts when a block is found and runs until the next one. The reward is split across the shares of that round, so in a short round each share is worth a lot and in a long one very little. It therefore pays to arrive at the start of a round and leave once the round drags on. Everyone who stays loses out, because they split the same reward with the arrivals.
A sliding window removes the thing that strategy depends on. The window has no round start and no round end: it is always the same length and always holds the last N shares. Your moment of connection buys you nothing, and frequent hops only multiply ramp-up phases. For the same reason the window is slightly harsher on honest miners with irregular uptime. That is the price of the defence, not a side defect.
Where the pool fee comes from and what transaction fee passthrough means
The fee is withheld as a percentage of your credit and covers infrastructure, development, support and, for the PPS family, the variance risk the pool takes on. Rates differ by pool and by scheme: a guaranteed payout carries an insurance premium, a proportional split costs less.
The second income component is the transaction fees inside the block. A block reward equals the subsidy plus the fees of every transaction included, and schemes treat that portion differently:
- Pure PPS pays only on the subsidy; transaction fees stay with the pool.
- PPS+ passes fees through as collected: whatever real blocks brought in gets distributed.
- FPPS bakes an averaged fee premium into the per-share rate, which beats the actual figure in quiet periods and loses to it during fee spikes.
- PPLNS normally distributes the full block reward, fees included.
Network data puts that argument in proportion. Over the last 4320 blocks (heights 960211 to 964530, snapshot of 29 August 2026), transaction fees came to 0.73% of total block rewards. In today's market the entire passthrough debate is a fight over less than one percent of income, and the difference in pool fee percentage outweighs it almost every time. During mempool congestion the picture changes, but check that against fresh data, not against memories of 2023.
Here is how specific pools handle transaction fees, per their own documentation as of 1 September 2026:
| Pool | Transaction fee rule |
|---|---|
| F2Pool | FPPS includes fees averaged over the previous day; PPLNS distributes the real fees of found blocks across shares |
| ViaBTC | on PPS+ the block reward is paid PPS style while transaction fees are distributed separately on a PPLNS formula; in pure PPLNS everything runs on that formula |
| Braiins Pool | fees are treated as belonging to miners and distributed as a daily average |
| Ocean | TIDES splits the whole block reward, subsidy plus fees, and is agnostic to its size |
| Luxor | FPPS averages fees over 144 blocks, trimming the 5th and 95th percentile outliers |
| Foundry USA | the FPPS rate is 1 plus the sum of block transaction fees over the sum of block subsidies for the contract period, excluding the three highest and three lowest fee blocks |
| Binance Pool | the FPPS formula includes the whole network average transaction fee per block |
| EMCD | BTC FPPS tracks network fees: the higher they run, the higher the payout |
| Kryptex Pool | on PPS+, a fixed per-share payment plus transaction fees distributed among miners |
| NiceHash | RTPPS is set by the live market rate hashrate buyers pay, not directly by a subsidy-plus-fees formula |
The AntPool contradiction worth knowing about in advance
AntPool cannot be summarised in one line, and saying so is more honest than picking the convenient version. Two official pages of the same pool disagree about undistributed transaction fees under PPLNS. The GitBook help centre says transaction fees are allocated to miners too, and that the pool charges zero commission on PPLNS. An older version of the same document on Zendesk, dated 14 December 2022, says transaction fees not paid out to miners go toward maintenance and bonuses for the pool's engineers.
Both pages are official, both are live, and neither is marked as superseded. We are not picking a side here. If that slice of income matters to you, ask support in writing and keep the answer instead of trusting whichever help page you land on first.
Pool fees, snapshot of 29 August 2026
Every figure below was rechecked on 29 August 2026. Several pools do not publish their rates at all, or hide them behind a login. Those rows say so rather than filling the gap with a guess.
| Pool | Fee | Scheme | Verification status |
|---|---|---|---|
| F2Pool | FPPS 4%, PPS+ 2.5%, PPLNS 2% | FPPS / PPS+ / PPLNS | confirmed by official help centre |
| ViaBTC | PPS+ 4%, PPLNS 2% | PPS+ / PPLNS | confirmed on the official pricing page |
| Kryptex Pool | PPS+ 3% | PPS+ | confirmed manually on the pool page |
| NiceHash | 2% | RTPPS | confirmed via the official blog |
| Trustpool | 1% | PPS+ | official page unreachable, figure from a secondary source |
| EMCD | 4% for BTC | FPPS | partly confirmed, the pool page returns an empty JS shell |
| Promminer | 3% | FPPS | not confirmed, site unreachable |
| AntPool | does not publish fees on the site | FPPS / PPS / PPLNS | not confirmed, the fee page returns 404 |
| Binance Pool | no public fee page, redirects to login | FPPS | not confirmed |
| Luxor | does not publish a rate, only a discount-to-spot-FPPS mechanism | FPPS | not confirmed, sources disagree |
| Foundry USA | undisclosed, tiered | FPPS | figures did not load from the page |
| Neopool | undisclosed | FPPS | not confirmed |
That is another reason comparing pools on headline fee percentage is meaningless: for a third of the majors there is no percentage in the open at all. What you compare is total payout per terahash per month from your own statement. To run that for your ASIC model and power price, use the mining calculator.
[IMAGE: bright infographic splitting a block reward into subsidy and transaction fees, green and yellow tones, daylight]
What the payout threshold is and why it beats fees on small hashrate
The threshold is the minimum balance at which the pool sends you an on-chain transaction. Below it the money sits in your pool account and never reaches your wallet. Crediting works normally the whole time; the only question is when the funds leave the pool.
Thresholds exist because on-chain transactions cost money. Sending dust costs more than the dust is worth, so the pool waits until the amount is large enough that the network fee does not eat the payout. For a small miner that has a direct consequence: the lower your hashrate, the longer the gap between real payouts and the longer your money lives on someone else's balance sheet.
This is exactly where the threshold outranks the fee. Fee differences between pools amount to fractions of a percent of income, while a high threshold on a single home machine means weeks or months of waiting and counterparty risk for all of it. Four things to check before connecting:
- The minimum threshold and whether you can raise or lower it manually.
- The payout schedule: daily once the threshold is met, or on a fixed calendar.
- Who pays the network fee for the payout, the pool or you out of your amount.
- What happens to a leftover balance if you leave the pool below the threshold.
Thresholds as of the 29 August 2026 snapshot:
| Pool | Minimum payout | Verification status |
|---|---|---|
| NiceHash | 0.00001 BTC | confirmed |
| EMCD | 0.0001 BTC | source conflict (0.0001 vs 0.001 BTC) unresolved |
| Promminer | 0.0001 BTC | not confirmed, site unreachable |
| F2Pool | 0.001 BTC | confirmed by official help centre |
| Kryptex Pool | 0.001 BTC | confirmed manually |
| Luxor | 0.001 BTC plus a 0.000075 BTC network withdrawal fee | confirmed by official documentation |
| Trustpool | 0.001 BTC | not confirmed against a primary source |
| Neopool | 0.001 BTC | not confirmed against a primary source |
| AntPool | 0.001 BTC per aggregator data | official page did not load |
| ViaBTC | not published on the pricing page | not confirmed |
| Binance Pool | not published publicly | not confirmed |
| Foundry USA | not confirmed in this snapshot | not confirmed |
What happens to the leftover if you leave below the threshold
Most pools give no direct official answer. What is confirmed: F2Pool keeps any amount below the threshold on your balance, it does not burn and keeps accruing. ViaBTC retains earnings on the account balance until the next cycle if they fall short of the minimum. Luxor pays out only once a subaccount balance exceeds the threshold plus the withdrawal fee, so the remainder waits there too.
One legal exception deserves its own paragraph. Under F2Pool's terms of service a user forfeits the right to accrued rewards if no valid payout address is provided within six months of written notice, and the pool may treat those amounts as forfeited. The pool's help pages separately note that with no payout address set for 90 days or more, rewards may be treated as a donation. F2Pool is the only pool among those checked with an explicit forfeiture rule of this kind. The others have nothing comparable on the pages we found, which means it was not found, not that it does not exist.
For AntPool, Foundry USA, Binance Pool, EMCD, Braiins, Kryptex, NiceHash and Trustpool, no official wording specifically about the fate of a leftover balance after leaving could be located. If the amount on your balance matters, the reliable route is the same one: ask support in writing before you connect.
Ocean is covered above: shares are never deleted from the log and leave the window by volume of work, not because you disconnected.
The full path of one share
- The ASIC receives a job over Stratum along with its extranonce.
- The machine assembles a coinbase carrying the pool's address and computes the merkle root.
- Nonce iteration, double SHA-256, comparison against the target.
- A hash below share difficulty is submitted to the pool server.
- The pool validates it and records its weight, equal to the difficulty.
- Dashboard hashrate is recalculated from the accumulated weights.
- When someone's hash comes in below the network target, the pool publishes a block.
- The block reward, subsidy plus transaction fees, lands on the pool's address.
- The pool withholds its fee and distributes the rest under the scheme's rules.
- Your cut appears on your internal balance.
- Once the threshold is reached, the pool broadcasts an on-chain transaction to your address.
Anywhere from a few hours to several weeks can pass between step 4 and step 11, and nearly every complaint about pools turns out to be a misunderstanding somewhere inside that gap.
Bottom line
A pool is an accounting layer on top of ordinary mining, not a separate kind of mining. It hands out jobs, counts verified work in difficulty units, and distributes the rewards it receives under a rule announced in advance. The payout scheme answers who pays for bad luck, the PPLNS window answers how long your work keeps earning after you disconnect, and the threshold answers when the money actually reaches your wallet.
Three things from this piece are worth carrying into a pool decision. PPLNS for Bitcoin is far from universal and is almost never the default. Window size is published by a handful of pools, so at most of them you cannot calculate your tail after disconnecting. Transaction fees came to 0.73% of block rewards over the last 4320 blocks as of 29 August 2026, so the argument about who gets them is currently an argument over less than one percent of income.
Once those mechanisms are clear, you stop comparing pools by the percentage on their landing page and start comparing total payout per terahash. How to do that with specific pools is covered in the guide on picking a mining pool.
[IMAGE: bright closing illustration, a miner and a laptop showing statistics on a desk by an open window, green garden and sunshine outside]

