BitcoinDatabase.com

On-chain metrics · Exchange reserve data

Bitcoin exchange reserves: exchange balance data and charts

Bitcoin exchange reserves is the total BTC held in addresses believed to belong to exchanges. Every published reserve figure is an address list somebody assembled by inference, with simple arithmetic over the chain on top, and the arithmetic was never the uncertain part.

or try it below ↓

REST API · SQL · dashboards · indexed from genesis

Query Console
btc
try:

Hit Run to query the fully-indexed Bitcoin blockchain.

BTC

30-day trend

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Querying the indexed Bitcoin blockchain ...

The chain records balances exactly and nobody disagrees about them. The address list is a judgment call, it is rarely published, and it is where the differences between providers come from. We keep re-measuring the same set to show what that means in practice. On 16 August 2026, at block 962,803, five widely reported exchange cold addresses held 671,622.49 BTC between them. We measured the identical five addresses again on 24 August 2026 at block 963,839, mined at 09:16:34 UTC. They held 689,765.55 BTC. That is 18,143.06 more BTC in eight days, an increase of 2.70 percent, the sort of move that gets written up as coins flowing onto exchanges.

Four of the five addresses did not move. Between them they changed by less than four thousandths of a single bitcoin, and three of them recorded no transactions at all. The entire 18,143.06 BTC came from one address, in four transactions, and one of those four was a 546 satoshi dust output. Three real transfers produced the whole eight day move.

Then it gets more specific. All three transfers were sweeps out of the same single address, a hot wallet with 2,308,660 transactions on it that is not on the reserve list at all. Each one pulled a pile of native SegWit outputs from that wallet, paid a round number into the cold address we track, and sent the change straight back to the source. All three paid an identical 5.03 satoshis per virtual byte, which is what an automated treasury script looks like rather than a market. No bitcoin entered anyone's control during those eight days. One operator moved coins from an address that was not being counted into an address that was, and a reserve series recorded it as a 2.70 percent inflow.

That is the structural problem with reserve data, and it is not fixable by better arithmetic. A fixed address list turns internal treasury housekeeping into apparent flow, and it misses real deposits into any address nobody has attributed yet. BitcoinDatabase gives you the layer underneath: exact balances for any address at any height, the transactions that changed them, and the ability to define your own address set rather than inherit somebody else's. Both explorers we checked agreed to the satoshi on all five addresses, so the disagreement was never in the numbers. This is informational on-chain data and analytics, not financial, investment or trading advice.

REST API SQL DASHBOARDS WEBHOOKS CSV EXPORT

Indexed from genesis queryable in seconds

On-chain data not financial advice

Why it works

What you get with Exchange reserve data

Your address set, not an inherited one

Reserve totals are decided by which addresses go on the list, and most providers never publish theirs. Define your own set, version it, and see exactly how the total responds when you add or remove an address. The single largest address in the set above is 36 percent of it, so one attribution decision moves the headline by roughly 248,000 BTC.

Balances at any height, not just now

Every balance is available as of any block, so a reserve series is a real historical measurement rather than a chart stitched together from whatever was recorded that day. That is what makes an eight day delta auditable: you can recompute both endpoints from the chain and get the same numbers we did.

The transactions behind every move

A change in the total always ties back to specific transactions, with their inputs, outputs, fee rates and counterparties. That is the only way to tell a genuine deposit from an internal sweep, and it is the difference between reporting an inflow and understanding one.

Side by side

The same five addresses, eight days apart, measured first-hand

Every balance below was read from the indexed chain and cross-checked against a second independent explorer, which agreed to the satoshi on all five. The 16 August figures were taken at block 962,803 and the 24 August figures at block 963,839, mined 09:16:34 UTC. Nothing here is estimated or modeled.

Tracked cold address Balance 16 Aug 2026 Balance 24 Aug 2026 What changed in eight days
3M219KR5vEneNb47ewrPfWyb5jQ2DjxRP6 196,082.40 BTC 214,225.46 BTC Plus 18,143.06 BTC across 4 transactions
34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo 248,597.59 BTC 248,597.59 BTC Plus 0.0022 BTC despite 3 transactions
bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrp... 130,010.08 BTC 130,010.08 BTC Unchanged, no transactions at all
bc1qjasf9z3h7w3jspkhtgatgpyvvzgpa2wwd2lr0e... 96,932.41 BTC 96,932.41 BTC Unchanged, no transactions at all
1FzWLkAahHooV3kzTgyx6qsswXJ6sCXkSR 0.0139 BTC 0.0139 BTC Unchanged, still carried on public lists
All five combined 671,622.49 BTC 689,765.55 BTC Plus 18,143.06 BTC, an increase of 2.70%

The two bech32 addresses are shortened above only so the table stays readable. In full they are bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97 and bc1qjasf9z3h7w3jspkhtgatgpyvvzgpa2wwd2lr0eh5tx44reyn2k7sfc27a4, so you can verify every figure yourself. The three transfers that produced the whole move landed on 17 August at 21:11:32 UTC (4,735.68 BTC from 37 inputs), 21 August at 11:47:40 UTC (5,754.215 BTC from 97 inputs) and 23 August at 21:46:03 UTC (7,653.163 BTC from 121 inputs). Every input in all three came from one address, bc1qm34lsc65zpw79lxes69zkqmk6ee3ewf0j77s3h, which holds 8,524.23 BTC across 2,308,660 transactions and appears on no reserve list we have seen. Each transfer returned its change to that same source address and paid exactly 5.03 satoshis per virtual byte. Read together, that is one operator rebalancing between two of its own wallets, recorded by the metric as a 2.70 percent inflow.

What it handles

The indexed Bitcoin chain, queryable your way

Look up an address, a transaction, a UTXO, the rich list or an on-chain metric, by REST API, SQL or dashboard. The same authoritative data, reconciled block-by-block against the canonical chain, without running a node.

  • Track exchange balance totals across any address set you define
  • Read exact balances as of any block height, not just the current tip
  • See the transactions that moved a reserve total, with fee rates and counterparties
  • Separate internal treasury sweeps from genuine deposits and withdrawals
  • Build inflow and outflow series from the underlying transfers
  • Version an attribution list and measure how much each address decides
  • Rebuild reserve history since the 2009 genesis block in SQL
  • Join exchange balances to coin age, address type and price in one query
GET /v1/address/{addr} query result
200 · JSON
{
  "address": "bc1qxy2k…l0wdv8",
  "balance_btc": 68432.10,
  "balance_usd": 4612165420,
  "tx_count": 1284,
  "unspent_outputs": 37,
  "first_seen": "2014-02-09"
}
indexed from genesis · to the satoshi ✓ reconciled block-by-block

Why BitcoinDatabase

One platform, queryable three ways

Not a raw node to sync, not an indexer to build, and not five vendors to stitch together. The fully-indexed Bitcoin blockchain, available as a REST API, as SQL, and as dashboards, on one authoritative dataset.

REST API

Typed JSON for addresses, transactions, balances, UTXOs and metrics. Drop it into apps, wallets, explorers and agents with curl, Python or any HTTP client.

SQL access

Run SQL directly against the indexed Bitcoin dataset for ad-hoc analysis, cohorts and exports, the same data the API and dashboards read from.

Compliance-first

Informational on-chain data and analytics only. Entity labels and flow tracing are framed as tooling to support a regulated team's own review, not accusations.

Good questions

Questions about Exchange reserve data

Exchange reserves is the total amount of BTC sitting in addresses attributed to cryptocurrency exchanges. It is used as a rough gauge of how much supply is held in places it could be sold from. The chain records balances exactly, but it never records who owns an address, so the attribution behind every reserve figure is inference.
Someone assembles a list of addresses believed to belong to exchanges, then sums the unspent outputs held by those addresses at a given block. The arithmetic is trivial and reproducible. The list is the hard part, and it is the part that almost no provider publishes, which is why identical chain data yields different published totals.
Any specific number depends entirely on whose address list you use. To show the scale of that, we measured five widely reported exchange cold addresses on 24 August 2026 and found 689,765.55 BTC between them. A list with one more or one fewer large address would report a total tens or hundreds of thousands of BTC away from that.
Because they are measuring different address sets, not different chains. Attribution is inference drawn from clustering and observed behavior, and reasonable analysts disagree. In the five address set we track, the largest single address is 36 percent of the total, so including or excluding it alone shifts the answer by about 248,000 BTC.
In practice they are used interchangeably, and both mean the BTC held at addresses attributed to an exchange. Reserves is the more common phrasing for an industry-wide total, while exchange balance more often refers to a single named venue. Neither term implies any audit, attestation or claim about customer liabilities.
No, and the gap matters. Exchange reserves is an outside estimate of what addresses appear to hold. Proof of reserves is an exercise the exchange itself runs, usually signing messages from its addresses and publishing a commitment to customer balances. Reserves measures assets only. Proof of reserves is an attempt to compare assets against liabilities.
Mechanically it means BTC left the addresses on somebody list, which can be a withdrawal, an internal transfer to an address nobody has attributed, or a change to the list itself. BitcoinDatabase does not offer a market reading of that, because the same movement can have several causes. This is informational data, not investment or trading advice.
Yes, and it is common. Between 16 and 24 August 2026 the five address set we track gained 18,143.06 BTC, all of it from three sweeps out of a single hot wallet that is not on the list, with change returned to that same wallet and an identical 5.03 satoshi per virtual byte fee on each. Nothing entered the operator control. The list simply started counting coins it had not counted before.
You do not know, you infer it, usually by clustering addresses that co-spend together and matching them against deposits observed from known accounts. It is good enough to be useful and never certain. We publish the addresses we measure so the inference is yours to accept or reject rather than something buried in a methodology page.
Balances change whenever a transaction confirms, so the underlying data updates with each new block, roughly every ten minutes. Most published reserve charts sample once a day, which is why a large sweep can appear as a single vertical step. Querying at a block height rather than a date removes that artifact.

Explore more

More ways to query Bitcoin with BitcoinDatabase

Stop running a node. Just query Bitcoin.

Run your first query now and get on-chain data back by REST API, SQL or dashboard, indexed from the genesis block. Informational on-chain data only, not financial advice.

See pricing

Indexed from genesis · REST · SQL · dashboards · addresses, transactions, UTXOs, metrics