On-chain metrics · Bitcoin transaction volume data
Bitcoin transaction volume: on-chain volume data and API
Bitcoin transaction volume is the value moved on-chain over a period, and nearly every published figure counts far more than actually changed hands. We measured two blocks transaction by transaction to show how large the gap is.
REST API · SQL · dashboards · indexed from genesis
Hit Run to query the fully-indexed Bitcoin blockchain.
BTC
30-day trend
informational on-chain data · not financial advice
Block 963,402 was mined on 21 August 2026 at 06:32:47 UTC and holds 4,402 transactions. We fetched every one of them. Summed the usual way, as the value of every output in every non-coinbase transaction, that block moved 10,285.76 BTC. Then we removed the value that landed back on an address which had already funded the same transaction, which is change returning to its own wallet rather than a payment. What is left is 2,113.47 BTC. So 79.45 percent of the headline figure never left the sender, and 662 of the 4,401 spending transactions paid nobody at all: every satoshi in them came back to an address that had funded them.
One transaction shows the whole problem. The largest by headline value in that block, txid d83a5a18601bbdf47e78fd4cc3099a8d0a388e894142f18e8a8278c0848d1031, pulled 10 inputs from 10 distinct addresses and wrote two outputs. One paid 92,055 satoshis to an outside address. The other returned 941.57506923 BTC to bc1q6h274e67rdr7xpn2mr2ttnssjzx3rhlkug6m5q, which was itself one of the ten input addresses. The fee was 2,718 satoshis. That single transaction is 9.15 percent of everything the block is credited with moving, and the actual payment inside it was under a thousandth of a bitcoin.
The correction is not a fixed multiple, which is the part most write-ups get wrong. Block 962,547, which we measured on 15 August 2026, was 94.13 percent change and overstated by roughly 17 times. Block 963,402 was 79.45 percent change and overstated by 4.87 times. Same chain, same method, six days apart, and the ratio moved by more than three times. Anyone quoting one universal adjustment factor is quoting an average of something that swings block to block with whatever consolidations happened to land.
Averages mislead here for the same reason. In block 963,402 the mean transaction moved 2.3371 BTC while the median moved 0.009045 BTC, a gap of about 258 times, because a handful of enormous self-transfers drag the mean upward while the typical transaction is small. Fees behave the same way: mean fee 1,223 satoshis against a median of 636, and a mean fee rate of 5.22 sat per vByte against a median of 4.01.
BitcoinDatabase computes transaction volume on the fully-indexed chain and gives you every definition rather than one: raw output volume, volume with same-transaction change removed, entity-adjusted volume that also strips transfers between addresses believed to share an owner, and volume filtered to transactions that touch a labeled exchange or service. Pull a daily series over REST, rebuild the history since the 2009 genesis block in SQL, or drill from any single day down to the exact transactions that produced the number. This is informational on-chain data and analytics, not financial, investment or trading advice.
Indexed from genesis queryable in seconds
On-chain data not financial advice
Why it works
What you get with Bitcoin transaction volume data
Raw and adjusted, side by side
Read raw output volume next to volume with same-transaction change removed and next to entity-adjusted volume that also strips transfers between addresses believed to share an owner. When a series jumps you can see which definition moved and by how much, rather than guessing at a vendor methodology you are not shown.
Every figure traces to its transactions
Any daily total drills down to the exact transactions behind it, so a spike can be audited instead of trusted. When one consolidation sweep or one exchange batch is most of a day, you open it and read the inputs and outputs yourself.
Joined to flows, fees and price
Volume, exchange labels, fees and the price series sit in one schema, so you can value a day of settled volume in dollars, split it by whether it touched an exchange, or line it up against fees paid in the same SQL query instead of reconciling three feeds.
Side by side
Two blocks, measured transaction by transaction
Every transaction in both blocks was fetched and counted first-hand, block 962,547 on 15 August 2026 and block 963,402 on 21 August 2026. The same arithmetic was applied to each. The point of showing two is that the correction is not a constant.
| What you measure | Definition applied | Block 962,547 | Block 963,402 |
|---|---|---|---|
| Transactions in the block | Every transaction the block contains, coinbase included | 6,054 | 4,402 |
| Raw output volume | The value of every output in every non-coinbase transaction | 3,225.69 BTC | 10,285.76 BTC |
| Volume that left the sender | Only output value reaching an address that did not fund that same transaction | 189.37 BTC | 2,113.47 BTC |
| Share that was change or self-payment | Raw volume returning to an address already on the input side | 94.13% | 79.45% |
| Overstatement multiple | Raw output volume divided by volume that left the sender | 17.03x | 4.87x |
| Largest single transaction | Its share of that block's entire raw output volume | 76.28% | 9.15% |
Both columns are correct arithmetic on the same public data, and the two blocks disagree by more than three times on how much correction is needed. That is the finding. Change detection inside a single transaction is also a floor rather than a ceiling, because it cannot catch a wallet paying itself across two separate transactions, so the real share that never changed hands is higher than either column shows.
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.
- Pull daily, weekly and monthly on-chain volume series
- Read change-adjusted volume next to the raw figure
- Compute entity-adjusted volume using address clustering
- Rebuild the full history since the 2009 genesis block
- Split volume by transactions that touch a labeled exchange
- Separate median transaction size from the mean
- Drill from any day to the exact transactions behind it
- Join volume to fees, exchange flows and price in SQL
{
"address": "bc1qxy2k…l0wdv8",
"balance_btc": 68432.10,
"balance_usd": 4612165420,
"tx_count": 1284,
"unspent_outputs": 37,
"first_seen": "2014-02-09"
}
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 Bitcoin transaction volume data
Explore more
More ways to query Bitcoin with BitcoinDatabase
On-chain metrics
Active addresses, realized cap, SOPR, HODL waves and exchange flows.
Learn moreBitcoin active addresses
Daily active address counts, historical series and entity-adjusted numbers from the indexed chain.
Learn moreBitcoin exchange flow API
Measure bitcoin moving into and out of exchanges: inflows, outflows and net flow.
Learn moreOn-chain data
The raw on-chain truth: addresses, balances, UTXOs and flows, queryable.
Learn moreBitcoin flow analysis
Trace how funds move between addresses, clusters and entities.
Learn moreBitcoin mempool API
Read unconfirmed transactions and current fee rates without running a node.
Learn moreStop 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.
Indexed from genesis · REST · SQL · dashboards · addresses, transactions, UTXOs, metrics