ETF flow meets the ledger
Daily AUM for every US-listed XRP-exposure ETF, plotted side by side with the XRPL exchange-flow delta. The off-chain side of institutional capital and the on-chain side of XRP movement, on one date axis.
A spot XRP ETF holds XRP off-chain in institutional custody and issues exchange-traded shares against it. Buying a share is buying a claim on a slice of that custodied XRP, without ever touching a wallet or a private key. The custody is pooled across all investors in the fund, so individual holders cannot be attributed to specific on-chain wallets.
Names you know: Bitwise, Franklin Templeton, Grayscale, 21Shares. Names you might not: Canary Capital, REX-Osprey, Hashdex. Plus indirect-basket exposure via funds that hold XRP alongside other large-cap crypto assets. The tracked set grows automatically as new US-listed products surface in SEC's ticker index.
ETFs hold XRP through pooled custody. That custody serves every share holder in the fund collectively, not any single buyer. So when ETF AUM and XRPL exchange-flow move in the same direction on the same day, that's a useful institutional-capital signal, but it isn't proof that the ETF caused the flow. We measure both sides honestly and let the consumer draw their own inference.
Net Assets per tracked issuer per UTC day, stacked. AUM is refreshed from public-source issuer dashboards and secondary public-source fallbacks where issuer pages are gated. Same-day re-reads overwrite the prior reading. Indirect-basket funds (BITW, GDLC, EZPZ, NCIQ, TTOP, TXBC) appear separately and persist only their XRP-attributable slice. Recent 21Shares launches TTOP + TXBC return null until public coverage indexes them.
Green = AUM rose that day, red = AUM fell. Computed from day-over-day delta of the per-ticker series; first day in the window has no prior reference and is omitted.
USD-denominated XRP price benchmark published by the Moscow Exchange from four spot venues, weighted by trading volume. Launched 2026-05-13; the series grows one row per MOEX trading day. Trading is restricted to professional investors but the index itself is a public reference price.
Country-pair settlement edges derived from whale Payments where both sender and receiver XRPScan labels resolve to operator-curated jurisdictions and the assigned countries differ. Each edge counts one Payment moving USD value between two countries; the map shades each country by total inbound plus outbound USD over the window. Labeled-wallet layer only.
Operator-curated registry. Two tiers: spot funds that hold XRP directly, and indirect baskets that hold XRP alongside other large-cap crypto assets. The list grows automatically as the discovery loop surfaces new US-listed products and they pass operator review. Excludes futures-only XRP products and international-listed funds.
Expense ratio is the annual management fee the issuer charges as a percent of fund assets, paid by the fund itself (so it reduces NAV over time rather than billing investors directly). Lower is cheaper to hold long-term.
Registry unreachable. Retry shortly.
ETF AUM is collected daily from each issuer's public dashboard after the US market close. Spot tier funds hold XRP directly via institutional custody. Indirect-basket tier funds hold XRP alongside other large-cap crypto; we persist only the XRP-attributable slice (weight × total basket AUM). Each snapshot row carries a source label for lineage audit.
XRPL exchange-flow delta comes from XR-Pulse, measuring net XRP moving in and out of labeled exchange wallets per UTC day. Positive = XRP left exchange custody (off-exchange accumulation); negative = XRP arrived at exchanges (sell-side distribution). Independent of the AUM scrape; plotted on the same axis.
A custodian wallet on XRPL serves many clients, not a single fund. XR-Flows does not attempt to attribute on-chain wallets to specific ETFs. The rolling 7-day Pearson coefficient is a directional alignment score: if the two series moved together, nothing more.
AUM is what each issuer publishes. We do not cross-validate it against on-chain spot price times XRP held; different sources, different timestamps. The issuer's number is the official number for our purposes. Per-scraper freshness is exposed on /healthz so consumers can tell when a dashboard parser breaks.
For each ETF, the 7 days before and the 7 days from launch are summarised separately (window tunable up to 30 each side). The post-window vs pre-window ratio of institutional and whale-grade XRP transfer flow is the headline launch-impact figure. Pre-rollup launches return an honest no-data marker rather than synthetic zeros.
No paid feeds. Direct issuer dashboards where data is exposed in static HTML, plus secondary public-source fallbacks where issuer pages are gated. A discovery loop watches SEC's public ticker index for new XRP ETFs and surfaces candidates at /stats/etf-candidates for operator review.
XR-Flows renders this dashboard over the same endpoints agents call. Three free public reads:
GET /stats/correlation for the headline cross-tier series,
GET /stats/launch-impact for the per-launch window analysis, and
GET /stats/cross-border-flow for the country-pair institutional settlement edges.
The paid per-ETF deep dive lives at POST /scan on
flows.xrpl-utilities.io for $0.10 USD per call via x402 v2 (XRP/RLUSD on XRPL or USDC on Base).
Each /scan response carries the latest scrape, full daily history, the chain-flow context from XR-Pulse,
and the SEC EDGAR filing list for that ticker.
xrpl_flows_correlationxrpl_flows_launch_impactxrpl_flows_cross_border_flowxrpl_flows_scan · $0.10
Call any tool above from an
MCP client (Claude Desktop etc.) via
@xrpl-utilities/mcp
or the hosted endpoint at mcp.xrpl-utilities.io/mcp. Free tools work without a payment header; paid tools use the same x402 model wrapped as MCP arguments.