How on-chain data gets from a block to a chart, and where it can mislead
A block is just numbers and hashes. Here's the pipeline that turns it into the chart you screenshot, and the three places it can quietly lie to you.
You see a chart titled "Bitcoin active addresses" or "Exchange netflow" and treat it like a thermometer reading. It isn't. Between the raw block and that line on your screen sit at least four layers of interpretation, each one adding a small assumption that can bend the final picture.
From block to database
A block is a list of transactions: inputs, outputs, amounts, a timestamp, a hash. Nothing in it says "this address belongs to Coinbase" or "this wallet is a whale." A node like Bitcoin Core just validates and stores it. To get anything analytical, a company runs an indexer that parses every block, groups addresses into "entities" using heuristics (common-input-ownership is the classic one: if two inputs sign the same transaction, they're probably controlled by the same wallet), and tags some of those entities as known exchanges or services based on deposit/withdrawal patterns they've observed.
That tagging step is where judgment enters. Glassnode, Nansen, and Arkham each maintain their own entity databases. They don't always agree. A wallet Glassnode calls "Binance cold storage" might be unlabeled on another platform, or mislabeled if Binance rotates addresses without public announcement. When you see "$400M left Binance today," you're trusting one company's heuristic, not a fact stamped into the chain.
Aggregation hides the shape of the data
Charts smooth things. "Active addresses" counts unique addresses that transacted that day, but one person cycling funds through five self-custody wallets looks like five active addresses. A single whale splitting a large sell order across 200 addresses to dodge attention shows up as "network growth." The number is real. The story it implies (organic new users) may not be.
Netflow charts have a similar issue: they net deposits against withdrawals, so a $50M deposit and $48M withdrawal on the same day nets to +$2M, which reads as mild accumulation pressure even though $98M actually moved. Check whether a chart shows gross flow or net flow before drawing a conclusion from it.
The lag between event and label
New entity tags get added constantly, and they get backfilled. That means a chart you view today about last month's flows can look different from the version you'd have seen last month, because addresses got re-labeled in between. Glassnode's methodology docs note this explicitly for several metrics: labels are best-effort and improve over time, which is another way of saying past charts are living documents, not fixed records.
What to check before acting
Before treating an on-chain chart as a signal, ask three things: is this gross or net data, whose entity labels are behind the tags, and has the provider changed methodology recently (most publish changelogs). None of this means on-chain data is useless, it means it's a processed product with a vendor behind it, not a raw feed from the chain itself.
