Best Bitcoin Mining Pool Data APIs for Research and Mining Analytics Teams
Bitcoin has no pool field, so every mining pool chart is a guess from a coinbase text tag or a payout address match. We ran both methods over the same 144 consecutive blocks: the tag resolved 96.53 percent, the address list 82.64 percent, and one pool moved from 3.47 to 6.94 percent of the identical window because five blocks spelled its tag with a lowercase letter. Plus an honest comparison of the free and paid options, all called first-hand.
By the BitcoinDatabase team
August 2026 · 8 min read
Hit Run to query the fully-indexed Bitcoin blockchain.
BTC
30-day trend
informational on-chain data · not financial advice
The short answer
For a quick pool distribution number, the free mempool.space mining API is the best option available and hard to beat: no key, no cost, and it answered in 0.07 seconds when we called it on 30 August 2026. Buy something else only when you need to control the attribution itself. There is no pool field in Bitcoin, so every pool chart is a guess built from a text tag the miner typed or a payout address matched against a volunteer-maintained list. We ran both methods over the same 144 blocks: the tag resolved 96.53 percent, the address list 82.64 percent, and one pool moved from 3.47 percent to 6.94 percent of the identical window because five of its blocks spelled the tag with a lowercase letter.
Every chart you have seen of Bitcoin mining pool market share rests on something people rarely say out loud: the Bitcoin protocol does not record who mined a block. There is no pool field, no signature, no registry consulted at consensus time. A block header commits to a nonce and a merkle root, and that is the end of what the network cares about.
So attribution is done by reading tea leaves, and there are exactly two leaves to read. Miners often write a human readable string into the coinbase transaction input, something like /Foundry USA Pool #dropgold/, and you match that against a list of known tags. Or the pool reuses the address it takes the block reward to, and you match that against a list of known addresses. Both lists are community maintained. Neither signal is authenticated. A pool that wants to disappear writes nothing recognizable and rotates its addresses, and it vanishes from every chart at once.
That is fine as far as it goes. What is not fine is that the two methods produce different answers, nobody publishes which one they used, and the difference is large enough to change a research conclusion. So we measured it.
What we did
We fetched 144 consecutive blocks, heights 964,586 through 964,729, mined between 29 August 2026 at 14:55:43 UTC and 30 August 2026 at 12:29:49 UTC. For each one we pulled the coinbase transaction, decoded the input script to printable ASCII, and recorded every payout address and amount. Then we ran two independent attributions over that same data, both reading the same public bitcoin-data mining pool registry, which holds 174 coinbase tags and 201 payout addresses. Method one matched tags. Method two matched payout addresses. Block 964,660 was cross checked against mempool.space and the transaction count agreed exactly, at 6,865.
The totals are the story:
| Mining pool | Found by coinbase tag | Found by payout address | Why they differ |
|---|---|---|---|
| Foundry USA | 39 | 39 | Agree on every block |
| AntPool | 32 | 32 | Agree on every block |
| ViaBTC | 14 | 14 | Agree on every block |
| SpiderPool | 11 | 11 | Agree on every block |
| F2Pool | 11 | 0 | Paid addresses not in the list |
| MARA Pool | 8 | 0 | Paid addresses not in the list |
| SecPool | 5 | 10 | Five blocks spelled it Secpool |
| Ocean.xyz | 4 | 0, and 1 wrong | Pays miners direct |
| All 144 blocks | 139 of 144, 96.53% | 119 of 144, 82.64% | 100% only when both are used |
One capital letter, and a pool doubles
SecPool mined 10 of those 144 blocks. Five of them wrote Mined by SecPool into the coinbase. The other five wrote Mined by Secpool, with a lowercase p. The registry holds the tag with a capital P, so a case sensitive substring match, which is the obvious way to write it, finds five blocks and silently ignores the other five.
That is the difference between reporting SecPool at 3.47 percent of the window and reporting it at 6.94 percent. Same chain, same 144 blocks, same registry file. The pool halves or doubles depending on a detail nobody documents, and no error is raised anywhere in the pipeline. We only caught it because we ran both methods side by side and asked why the columns did not match.
Here is the confirmation, and it is worth the paragraph. mempool.space, which computes this in production, reported SECPOOL at 6.96 percent of its own 24 hour window on the same day. That is the address based number, not the tag only one. A production system independently landed where our address column landed, which means a tag only implementation would have been the outlier and its author would never have known.
Address matching does not fail quietly
The other direction is worse, because a missing tag leaves a visible hole and a bad address match does not.
F2Pool, MARA Pool, NiceHash and Ocean.xyz mined 26 of the 144 blocks between them, just over 18 percent of the window, and payout address matching found none of them. The registry does contain addresses for those pools. They simply were not the addresses those pools paid to that day, which is what address rotation looks like from the outside.
Ocean.xyz shows the sharper edge. It settles to miners directly rather than sweeping the reward into a pool wallet first, so its coinbase transactions in our window carried 17, 17, 42 and 54 separate payout outputs. In block 964,647, one of those 42 individual miner addresses happens to be registered in the list under a different pool name. Address matching therefore did not return unknown for that block. It returned a confident, specific, wrong answer. If you are ranking pools by block count, that block was quietly awarded to the wrong operator.
This is the same problem as exchange wallet labeling, and the same discipline fixes it. The amounts and the timestamps are exact arithmetic that anyone can recompute. The name attached to them is inference, and it belongs in a separate column with its method recorded next to it. We make the same argument at more length about address clustering and entity labels, because it is the single most common way on-chain research goes wrong.
What to actually use
Every option below was called from one machine on 30 August 2026 and the response recorded as it came back.
| Option | What you get | Cost | Where it falls short |
|---|---|---|---|
| mempool.space mining API | Pool share precomputed over 24h and longer windows, zero unknowns | Free, no key | You inherit their registry and method, and cannot re-run it with your own |
| bitcoin-data mining pool registry | The mapping itself: 174 tags, 201 payout addresses | Free, open | It is only the dictionary. Matching is case sensitive and you supply the chain data |
| Blockchair | Block records including a pool field | Paid key in practice | Returned HTTP 430, IP blacklisted, unauthenticated on 30 August 2026 |
| blockchain.com pools chart | A chart on a web page | Free | The JSON chart endpoint returned HTTP 404 when we called it |
| Run your own node | Everything, with no dependency on anyone | Roughly 390 to 430 dollars a month on AWS | Days to sync, and you still build the indexer and the mapping |
| BitcoinDatabase | Every coinbase transaction, payout addresses and exact amounts, any range, joinable in SQL | Usage based | Ships no pool labels at all. You bring the mapping |
Read that last row as the honest tradeoff it is. If all you need is a number for a slide, mempool.space gives it to you free in under a tenth of a second and we are not going to pretend otherwise. What we sell is the layer underneath: the raw coinbase data over arbitrary historical ranges, so you can apply your own registry, make your matching case insensitive, decide how to treat direct payout pools, and re-run the whole history when the mapping changes. That matters when the attribution is the thing being researched rather than an input you take on faith.
Two numbers worth taking away
Fees are a rounding error in miner revenue right now. Across the 144 blocks, total coinbase output was 451.97751503 BTC. At the current 3.125 BTC subsidy that is exactly 450 BTC of new issuance and 1.97751503 BTC of fees, so fees were 0.438 percent of miner revenue. Anyone modeling the security budget after the next halving should measure that ratio over their own window rather than quoting a constant, because it swings hard with congestion.
Concentration is real and measurable. The top two pools took 49.31 percent of the blocks in our window and the top four took 66.67 percent, spread over 13 distinct pools. Block share is also what analysts use to apportion the network energy draw between operators, which is the on-chain half of a Scope 3 emissions estimate for anyone with mining exposure on the balance sheet. Get the denominator wrong by 3 percentage points and every downstream figure inherits it.
How many mining pools are there?
Thirteen distinct pools produced our 144 blocks, and four of them produced two thirds. The public registry lists 174 coinbase tags and 201 payout addresses, but a large share of those are historical pools that no longer mine. The practical answer for anyone building a dashboard is that a dozen or so pools account for essentially all current blocks, and the tail is long, old and mostly inactive.
Are bitcoin mining pool distribution charts accurate?
They are accurate about the blocks they resolve, and usually silent about the ones they do not. On our sample, tag matching alone missed 5 blocks and address matching alone missed 25. Charts rarely disclose which method they use, whether matching is case sensitive, which registry version they read, or how many blocks landed in unknown. Two honest charts of the same day can therefore differ by several percentage points on a given pool, and both authors can be acting in complete good faith.
Why does a one day pool share differ from the weekly number?
Because block discovery is memoryless and 144 blocks is a small sample. Our window puts F2Pool at 7.64 percent while seven day averages published elsewhere in the same week sat nearer 15 percent. Neither is wrong. If you need a share figure that survives scrutiny, widen the window to weeks and publish the sample size next to it. A daily pool share quoted to one decimal place claims more precision than the underlying process supports.
Can a mining pool hide which blocks it mined?
Yes, trivially, and nothing in the protocol stops it. The coinbase tag is arbitrary text the pool writes about itself, so it can be left blank, changed, or set to another pool name entirely. Payout addresses can be rotated every single block. Attribution works at all only because most pools want the credit. Treat it as a courtesy the industry extends, not as a property of Bitcoin.
Where to start
If you want the number, call mempool.space. If you want to defend the number in a research note, pull the coinbase transactions yourself and keep the arithmetic and the labels in different columns. Our Bitcoin mining pool data pages expose every block and coinbase payout over any range back to 2009, queryable by REST or in SQL so your registry joins in as a table. The same discipline runs through how we handle network statistics and everything else in our guide to on-chain data for quant research.
All measurements in this article were taken on 30 August 2026 from blocks 964,586 to 964,729 and can be reproduced against any public Bitcoin node. This is informational on-chain data and analytics, not financial, investment or trading advice.
Query the Bitcoin blockchain yourself
Pull balances, UTXOs, transactions, on-chain metrics and fund flows from the fully indexed Bitcoin blockchain by REST API, SQL and dashboards. Indexed since 2009, new blocks within seconds, no node to run.