BitcoinDatabase.com

Compliance & flows · Flow analysis

Bitcoin flow analysis to trace fund movement on-chain

Bitcoin flow analysis follows value through the chain: from one address to the next, across clusters of addresses that move together, and toward or away from labeled entities like exchanges, miners and services. Because inputs link to the outputs they spend, BitcoinDatabase can trace these flows step by step over the fully-indexed chain, with exposure summaries and entity-label context along the way.

or try it below ↓

REST API · SQL · dashboards · address history from genesis

Query Console
btc
try:

Hit Run to query the Bitcoin blockchain.

Live from the chain for .

BTC

Balance trail

informational on-chain data · not financial advice

REST API · SQL · dashboards, one indexed dataset. Reading the chain ...

Map flows over the API, build multi-hop traces in SQL, or review them visually on a dashboard. For compliance use, this is tooling that surfaces flow data and risk signals to support your team's own review; it makes no accusations, proves no identity, and offers no deanonymization claims. Informational data only, not legal or financial advice.

REST API SQL DASHBOARDS WEBHOOKS CSV EXPORT

History from genesis queryable in seconds

On-chain data not financial advice

Why it works

What you get with Flow analysis

Step-by-step tracing

Because each input spends a specific output, flows can be followed transaction by transaction across hops over the fully-indexed chain.

Clusters and exposure

See flows aggregated across address clusters and summarized as exposure to labeled entity categories, as informational context for review.

Compliance tooling

Flow data and risk signals support a regulated team's own analysis. The platform surfaces evidence; your compliance function decides.

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.

  • Trace fund flows between addresses
  • Follow multi-hop paths across clusters
  • Summarize exposure to labeled entities
  • Surface risk signals for review
  • Map flows via API, SQL or dashboard
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 Flow analysis

Each transaction input spends a specific earlier output, so funds can be followed step by step across hops and address clusters. BitcoinDatabase does this over the fully-indexed chain and summarizes exposure to labeled entities as context.
No. It surfaces on-chain flow data and risk signals to support a compliance team's own review. It makes no accusations, no identity proofs and no deanonymization claims, and it is informational data, not legal or financial advice.
It is following value across transaction hops to answer where funds came from or where they went. Each Bitcoin transaction spends specific previous outputs, so the chain records an exact edge list, and flow analysis walks it. The chain part is precise. What is inferred, and what people usually mean when they say the analysis is uncertain, is which real world entity sits behind each address.
To the coinbase transaction that created the coins, in principle, because every output traces to a previous output or to newly mined supply. The practical limit is not depth but branching. Hops multiply fast, and once funds pass through an exchange or a mixer the outgoing coins are no longer the incoming ones in any meaningful sense, so tracing past that boundary tells you about a service rather than about a person.
It should not, and forgetting this is the single most common error in on-chain flow numbers. Most Bitcoin transactions send the bulk of their value straight back to the sender as change. We measured one block where raw output volume was 10,285.76 BTC but only 2,113.47 BTC, about 20.55 percent, actually left the sender, an overstatement of 4.87 times. Six days earlier the same method gave 17.03 times on a different block.
Partly, and by design. CoinJoin and PayJoin deliberately break the common input ownership assumption that most clustering relies on, so inputs in one transaction no longer imply a single owner. Mixers, exchange hot wallets and Lightning channels all break the chain of custody in different ways. Flow analysis stays useful, but treat it as evidence to weigh, not proof.
Flow analysis follows value between addresses; clustering groups addresses believed to share an owner. You generally need both, because tracing address by address produces noise once change addresses proliferate, and clustering is what collapses that back into entities. Clustering is heuristic, so its output carries uncertainty that then propagates into any flow number built on top of it.
Match the receiving addresses against a labeled address set, then check what the chain actually shows. The catch is that attribution is inference: a deposit address is only known to belong to an exchange because somebody observed it behaving that way. We track this constantly on published reserve addresses and the labels are frequently disputed, so state your confidence rather than presenting an attribution as fact.
It is used as evidence, but it is not self-proving. The chain shows that outputs moved; it does not show who controlled the keys, whether a transfer was a payment or an internal rebalance, or whether an address label is correct. Courts and regulators treat it as one input alongside subpoenaed exchange records. Anyone presenting a flow diagram as proof of intent is overstating what the data supports.

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, with address history back to the genesis block over REST. Informational on-chain data only, not financial advice.

See pricing

History from genesis over REST · SQL · dashboards · addresses, transactions, UTXOs, metrics