Where Is the Smart Money Actually Going?

Price tells you what happened. It rarely tells you who is positioning, or where capital is staging before the move. Two flows answer that question directly: native on-chain movements and regulated institutional ETF flows. Read together, they are the closest thing crypto has to a follow-the-money feed.

On-chain data is a leading signal — coins moving onto an exchange precede sell pressure; stablecoins piling up precede buying; whales accumulate quietly before retail notices. ETF flows are structural — sustained inflows set floors that defend specific cost-basis levels. $80K BTC was the 2025 ETF floor.

This post is the hub for two of our regimes: #7 On-Chain Intelligence and #10 Institutional Flow — two of the 14 baskets in the 14-regime framework. Both are about money flow, on different timescales, and they complement each other. We link the deep-dive posts as we go.

Regime #7: On-Chain Intelligence — Six Leading Signals

On-chain intelligence treats the blockchain as a leading indicator, not a lagging chart. It is the layer that increasingly separates institutional-grade systems from retail ones. Crypto Data API exposes six distinct signals under /api/v1/on-chain/, each refreshed by APScheduler off live RPC and free data sources.

The On-Chain Composite in One Call

You rarely want to poll six endpoints. /on-chain/score synthesizes Hash Ribbon, MVRV, stablecoin dry-powder, whale accumulation, exchange-flow direction, and miner net flow into one directional verdict with a per-component breakdown.

curl -H "X-API-Key: cdk_live_yourkey" \
  "https://cryptodataapi.com/api/v1/on-chain/score"

The response:

{
  "as_of": 1749600000,
  "score": 63.5,
  "sentiment": "leaning_bullish",
  "components": [
    {"name": "hash_ribbon", "score": 80.0, "weight": 0.15,
     "reason": "recovery crossover 6d ago"},
    {"name": "mvrv", "score": 55.0, "weight": 0.20,
     "reason": "neutral zone"},
    {"name": "dry_powder", "score": 72.0, "weight": 0.20,
     "reason": "reserves z=+1.4, accumulating"},
    {"name": "exchange_flows", "score": 58.0, "weight": 0.20,
     "reason": "net withdrawals 24h"}
  ],
  "weights_version": "v1"
}

Sentiment bands: bullish (≥70), leaning_bullish (55-69), neutral (45-54), leaning_bearish (30-44), bearish (<30). Components with no data yet contribute a neutral 50, so the score stays stable across cold deploys.

Regime #10: Institutional Flow — The Structural Floor

ETF and 401(k) access turned institutional flows into a trackable regime driver. Unlike on-chain signals that fire in hours, ETF flows operate on a weeks-to-months horizon and set structural floors. When BTC approaches the average ETF cost basis, institutional holders defend it aggressively.

Two endpoints cover this regime:

curl -H "X-API-Key: cdk_live_yourkey" \
  "https://cryptodataapi.com/api/v1/market-intelligence/etf/btc/flows"

{
  "asset": "BTC",
  "flows": [
    {"date": "2026-06-10", "total_value": 412000000.0},
    {"date": "2026-06-09", "total_value": 538000000.0},
    {"date": "2026-06-06", "total_value": -190000000.0}
  ]
}

Heuristic from the regime taxonomy: >$500M/week of sustained inflows = institutional buying; a spike in redemptions = de-risking. Full method in Bitcoin ETF flow tracking.

Signal → Endpoint → What It Implies

One map spanning both regimes. Native on-chain smart money sits above the line; institutional ETF flow sits below it.

SignalEndpointBullish read
Exchange outflows/on-chain/exchange-flows/{symbol}Negative net — coins leaving CEXs to self-custody
Stablecoin dry powder/on-chain/stablecoin-reserves/dry-powdersignal=accumulating, zscore > +1
Whale accumulation/on-chain/whales/accumulation-scoresignal=accumulating across tracked tokens
Miner hash ribbon/on-chain/miners/hash-ribbonstate=recovery within 14d of capitulation
On-chain composite/on-chain/scoresentiment=bullish, score ≥ 70
ETF daily flows/market-intelligence/etf/btc/flowsPositive total_value, >$500M/week sustained
ETF AUM/market-intelligence/etf/btc/aumRising aum during a price drawdown

The highest-conviction setup is confluence: on-chain says smart money is accumulating and ETF flows are net positive on the same day. Native money leads; institutional money confirms and defends.

Wiring Both Regimes Into One Agent

Three reads give an agent a complete follow-the-money view: the on-chain composite, BTC exchange flows, and ETF daily flows. Combine them into a single directional bias.

import httpx

HDR = {"X-API-Key": "cdk_live_yourkey"}
BASE = "https://cryptodataapi.com/api/v1"

def follow_the_money() -> dict:
    with httpx.Client(base_url=BASE, headers=HDR) as c:
        onchain = c.get("/on-chain/score").json()
        flows = c.get("/on-chain/exchange-flows/BTC").json()
        etf = c.get("/market-intelligence/etf/btc/flows").json()

    net_24h = flows["windows"]["24h"]["net"]
    etf_5d = sum(f["total_value"] for f in etf["flows"][:5])

    bullish = (
        onchain["sentiment"] in ("bullish", "leaning_bullish")
        and net_24h < 0          # coins leaving exchanges
        and etf_5d > 0           # net ETF inflows this week
    )
    return {
        "onchain_score": onchain["score"],
        "btc_net_flow_24h": net_24h,
        "etf_net_flow_5d_usd": etf_5d,
        "bias": "long" if bullish else "neutral",
    }

The pattern: gate on the slow institutional floor (ETF), confirm with the leading on-chain composite, and time with the fast 24h exchange-flow window. Each endpoint is independently cached, so polling all three is cheap.

When to Reach for the Flow Regimes

These two regimes earn their keep in distinct scenarios. Pick the timescale that matches your decision.

What these regimes are not: standalone entry triggers. On-chain flows fire constantly and ETF data is daily, not intraday. Pair them with the rest of the regime taxonomy — these are #7 and #10 of 14, and they answer the same question on two clocks: where is the money going?