What do exchange inflows and outflows actually measure?
Exchange flow metrics are the most widely quoted on-chain numbers in existence, and they rest entirely on a layer of estimation that almost nobody quoting them has examined.
Exchange netflow = coins sent to addresses labelled as belonging to exchange X, minus coins sent from them, over a window.
Everything hinges on the word labelled.
Nobody publishes the labels
Exchanges do not announce their addresses. Analytics firms infer them, using heuristics:
- Common-input-ownership. In a UTXO chain, inputs spent together in one transaction are probably controlled by one entity. Powerful, widely used, and defeated by any transaction that deliberately combines inputs from several parties.
- Deposit-address clustering. An address that repeatedly forwards its balance to a known hot wallet is probably a customer deposit address belonging to that exchange.
- Tagging from public disclosures, proof-of-reserve statements, court filings and manual research.
These are estimates with error bars that are never published. Two providers, working the same chain on the same day, routinely publish different exchange-balance series — and they are all defensible.
Worked: one number, six stories
Suppose an exchange shows a net inflow of +12,000 BTC today against a 30-day average of +1,500. The popular reading is immediate: twelve thousand coins are about to be sold.
Here is what else produces exactly this on-chain picture:
- A custodian migrating cold storage to new infrastructure
- The exchange reshuffling its own hot and cold wallets — an internal transfer that the clustering logic scored as an inflow
- Collateral being posted against a derivatives position, not sold
- A market maker rebalancing inventory across venues, which per Unit 2 is a normal daily operation
- An OTC settlement agreed off-chain days earlier, now moving
- A mislabelled cluster — the address never belonged to that exchange at all
Every one of those produces the same chart. The inference from "coins moved" to "coins will be sold" is a guess about intent, and the chain records transfers, not intent.
What the chain is structurally blind to
This is the limitation that dwarfs the others. All trading inside a centralised exchange is invisible on-chain. A million trades on a CEX order book produce zero blockchain transactions — they are database updates (Unit 2, Lesson 1). The chain sees only the doorway: deposits in, withdrawals out.
So on-chain flow data is a measurement of movement across a custody boundary, and the market itself — the actual buying and selling, the price formation, the volume — happens in a room the chain cannot see into.
The silent-revision problem
When a large cluster is discovered to be mislabelled, providers correct it. History is restated, usually without an announcement and often without a changelog. A time series you charted last month may not be the same series today. If a result depends on exchange-balance data, snapshot the data with the analysis, because the provider will not do it for you.
The honest position
Exchange flows are a real measurement of a real thing: coins crossing a custody boundary, as best a heuristic can identify it. That is worth knowing and worth watching. It is not a measurement of selling pressure, it is not a forecast, and it is not a signal. Nothing here is advice.
Try it now
- Take exchange-balance or netflow series for the same asset from two different public providers covering the same dates. One is free: Coin Metrics' community dataset on GitHub (
coinmetrics/data,csv/btc.csv) carriesFlowInExNtv,FlowOutExNtvandSplyExNtvby day; set a second provider's free chart beside it. Plot the difference between them: the gap is the labelling uncertainty, made visible, and it is usually larger than the signal anyone claims to read from it. - The asset's price over five years is below. For each large net inflow in your series, Measure the week that followed and record whether the price fell or rose.
- Write both counts down — fell, and did not fall. If the two are close to equal you have not found a broken metric; you have found an honest one being asked a question it cannot answer.