Skip to main content

What is Exchange Flows Classification?

The payments pipeline deliberately excludes exchange-touching transfers from the payment mix — intra-exchange activity is not observable on-chain, so its purpose cannot be inferred. stablecoins.intelligence.central_exchange_flows_classification makes those flows visible instead of invisible, by describing the counterparty: a business sending to an exchange typically signals liquidity management; a consumer, an on/off-ramp. Every stablecoin transfer leg with a labeled exchange on either side is classified — coverage reconciles exactly with the exchange-touching population upstream. These flows are never counted as payments, B2B, or real-world payment volume.

The classification matrix

Sender type always comes first. Wallet counterparties are typed behaviorally (Consumer / Business / Institutional / Unclassified); labeled counterparties get their own segments. Two refinements add color to every exchange leg:
  • exchange_flow_subtype splits X2X: intra_exchange (same entity — hot→cold consolidation, treasury sweeps), inter_exchange (genuine inter-venue settlement), unknown (entity attribution missing).
  • exchange_rank_tier sizes the venue by global stablecoin holdings: top_1_5, top_6_15, top_16_30, rest (ranked below 30), unranked (attributed but absent from the exchange ranking — may not be a real/active exchange), unknown (no entity attribution).
Grain matters. Rows are per transfer leg — exchange batch payouts pay many users in one transaction, and every leg is kept. Filter is_max_transfer = true for Visa-style per-transaction dedup; leave it unfiltered to analyze batch withdrawals.

Schema

Table: stablecoins.intelligence.central_exchange_flows_classification

Example queries

Deposit vs withdrawal mix by counterparty segment (30d)

Hot→cold consolidation vs inter-venue settlement, by venue tier

Exchange-rail payouts (batch withdrawals to many recipients)

Relationship to the behavioral flows pipeline. Payout runs executed from exchange accounts appear here as high-fan-out withdrawals — they are deliberately out of scope for merchant_payout_runs, which covers platform-wallet payouts. The two are adjacent and non-overlapping; union them knowingly for total on-chain disbursement.