{"schema_version":"1.12.0","name":"XR-Flows","provider":"XRPL-Utilities™","description":"ETF AUM and XRPL on-chain flow correlation for US-listed XRP-exposure ETFs across two tiers. Spot tier (6 funds): Bitwise XRP, Canary Capital XRPC, Franklin Templeton XRPZ, Grayscale GXRP, 21Shares TOXR, REX-Osprey XRPR. Indirect-basket tier (6 funds, XRP-attributable slice only): Bitwise BITW, Grayscale GDLC, Franklin EZPZ, Hashdex NCIQ, 21Shares TTOP, 21Shares TXBC. Reads daily AUM from each issuer's public dashboard (or Yahoo Finance / third-party aggregator where the dashboard is SPA-gated) and overlays the XRPL exchange-flow delta from XR-Pulse. Combined coverage roughly $1.26B XRP-attributable AUM. The headline view is directional correlation, not causation: ETFs hold XRP through pooled institutional custodians, so individual on-chain wallets cannot be attributed to a specific fund. Two free public views (stats_correlation + stats_launch_impact) and one paid per-ETF deep dive (/scan, x402). Operator-curated registry, same posture as XR-Pulse's RWA issuer list. New ETF launches require code edit + redeploy; auto-discovery of new SEC-listed tickers surfaces candidates at /stats/etf-candidates.","contact":"hello@xrpl-utilities.com","getting_started":"GET /agents.json once to learn what's tracked. GET /stats/correlation?days=30 for the headline cross-tier ETF + on-chain series. GET /stats/launch-impact for the static per-launch window analysis. POST /scan is paid x402 (~$0.10 USD via XRP or RLUSD); accepts {ticker: <case-insensitive ticker>} and returns a per-ETF deep dive including SEC EDGAR filings, latest scrape with source lineage, and the latest XRPL exchange-flow context. GET /stats/etf-candidates lists auto-discovered tickers not yet promoted into the operator-curated registry.","location":"Cloud-Native / Global","data_residency":"agnostic","pii":"none","capabilities":{"tracked_etfs":"Operator-curated set of twelve US-listed XRP-exposure ETFs in two tiers. Spot tier (asset_class=spot_xrp_etf, 6 funds): XRP (Bitwise), XRPC (Canary Capital), XRPZ (Franklin Templeton), GXRP (Grayscale), TOXR (21Shares), XRPR (REX-Osprey, XRP-exposure fund with ~40% direct holding). Indirect-basket tier (asset_class=indirect_basket_exposure, 6 funds, persist only the XRP-attributable slice not the full basket AUM): BITW (Bitwise 10 Crypto Index, XRP ~4.3%), GDLC (Grayscale CoinDesk Crypto 5, XRP ~6%), EZPZ (Franklin Crypto Index, XRP ~5.3%), NCIQ (Hashdex Nasdaq Crypto Index, XRP ~5.4%), TTOP (21Shares FTSE Crypto 10, weight pending FTSE methodology fetch), TXBC (21Shares FTSE Crypto 10 ex-Bitcoin, XRP weight structurally higher than TTOP since BTC is removed). TTOP and TXBC are very recent 21Shares launches; aggregators do not yet expose totalAssets so they persist with status=stubbed until coverage lands. The /stats/correlation response splits etf_total_aum_daily into etf_spot_total_aum_daily and etf_indirect_total_aum_daily so the headline spot signal stays clean and consumers can roll up across tiers. Combined coverage as of 2026-05-12: ~$1.26B of XRP-attributable AUM across the ten live tickers. Excluded: futures-only XRP ETFs (no spot XRP balance sheet), international-listed funds (different regulatory regime), and equity-crypto-industry funds (e.g. BITQ) that hold crypto companies rather than crypto assets.","correlation_only_framing":"stats_correlation reports a rolling 7-day Pearson coefficient between summed ETF AUM delta and XRPL exchange-flow delta. The framing is deliberate: ETFs settle creations + redemptions off-chain, custody is pooled across multiple institutional clients, and a 'specific ETF wallet' on XRPL does not exist for the issuers we track. Correlation in [0.5, 1.0] reads as 'directionally aligned'; [-0.5, 0.5] as 'noisy'; [-1.0, -0.5] as 'inversely aligned'. Consumers must NOT infer causation.","scrape_strategy":"Per-issuer scrapers fan out across three source paths to reach 100 percent coverage of the tracked US-listed spot XRP ETF set without paid API spend. Direct dashboard scrapes for issuers whose static HTML exposes fund data: Bitwise XRP, Canary XRPC, REX-Osprey XRPR. Yahoo Finance via the yfinance library for SPA-gated issuers whose dashboards are JS-rendered with authenticated XHR: Grayscale GXRP, 21Shares TOXR. Third-party aggregator for issuers gated on both their own dashboard and Yahoo: Franklin XRPZ. The snapshot row's `source` field labels which path produced each reading (direct, yahoo_finance, third_party_aggregator) so consumers can audit lineage. /healthz reports per-scraper freshness via last_success_at + consecutive_failures so silent breakage is visible. Aggregator paths refresh daily after market close so are typically one trading session behind the issuer's own dashboard; that cadence matches the once-per-UTC-day snapshot pattern.","launch_impact_methodology":"For each ETF launch date L, summarise XRPL exchange-flow delta + DEX volume across [L-30, L) and [L, L+30]. The post/pre ratio is the 'launch impact' headline. Static analysis; recomputed on demand, not polled. Returns the launch metadata; the on-chain window analysis fills as Pulse /stats/exchange-flow-delta accrues enough history to span each window.","outputs":["etf_registry","etf_aum_daily","etf_aum_delta_daily","chain_flow_daily","rolling_pearson_correlation","launch_window_metadata","schema_version","fetched_at"],"not_provided":["etf_wallet_attribution_on_xrpl","causation_claims","nav_oracle","xrp_price_feed","intra_day_etf_aum","aml_or_sanction_screening"]},"payment":{"spec":"x402","x402_version":2,"scheme":"exact","network":"xrpl:0","facilitator_url":"https://xrpl-facilitator-mainnet.t54.ai","amount_usd":"0.10","amount_drops_xrp_pinned":40000,"amount_drops_pinning_note":"Per-call price is pinned in XRP drops, not floated against a live XRP/USD oracle. The current pin (40,000 drops) corresponds to ~$0.10 USD at $2.50/XRP. Operator repins by setting FLOWS_PRICE_DROPS when the spot rate moves substantially.","currencies_accepted":["XRP","RLUSD"],"rlusd":{"amount":"0.10","issuer":"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De","currency_hex":"524C555344000000000000000000000000000000"},"auth_header":"PAYMENT-SIGNATURE","settlement_header":"PAYMENT-RESPONSE","verify_before_settle":true,"recipient_resolution":"shared_with_xr_sentinel","recipient_resolution_note":"The treasury wallet that receives x402 receipts is the same wallet XR-Sentinel uses, mirroring the Vault/Telemetry pattern. Per-service accounting via destination tags is queued as a portfolio-wide follow-up.","refund_policy":"Verify-before-settle. If the upstream scrape fails after the buyer's payment is verified, settlement is skipped and the presigned tx is never broadcast. Successful payloads are paid; no refunds otherwise. The t54 tefPAST_SEQ recovery probe is in place so settle-misreports on txs that actually landed are recovered rather than charging the buyer twice.","scan_input":"{ticker: <ETF ticker, case-insensitive>}. Accepts XRP, XRPC, XRPZ, GXRP, TOXR, XRPR. 404 when the ticker is not in the operator-curated registry.","scan_output":"Per-ETF deep dive: registry block (listing_exchange, launch_date, expense_ratio, source_url, asset_class, registry_caveat), latest_reading (current AUM + xrp_held + nav + source lineage), sec_filings (CIK + recent regulatory filings from SEC EDGAR with form, filing_date, period_of_report, accession_number, primary_document, edgar_url; null block when the ticker's CIK is not yet operator-mapped), history (full daily snapshot series with per-day AUM, source, status), chain_flow_today (latest XRPL exchange-flow delta row from XR-Pulse), served_at_utc + served_via fields. Real-time freshness on the latest_reading; inline re-scrape is fired before the response is built so the buyer always gets current-as-of-call data."},"endpoints":{"base_url":"https://flows.xrpl-utilities.io","correlation":"/stats/correlation","launch_impact":"/stats/launch-impact","scan":"/scan","schema":"/schema","manifest":"/agents.json","health":"/healthz","stats":"/stats","tos":"/tos","docs":"/docs","openapi":"/openapi.json"},"rate_limits":{"requests_per_minute":30},"legal":{"notice":"Off-chain ETF data from issuer dashboards + on-chain XRPL data from XR-Pulse. Correlation only, never causation. ETF AUM is reported by issuers, not on-chain attested. DYOR. Not investment, legal, or regulatory advice.","user_responsibility":"XRPL-Utilities provides on-chain measurement and ETF AUM reporting. We do not provide financial advice, NAV oracles, or attribution of XRPL wallets to specific ETFs. Users are responsible for ensuring their use of this data complies with local digital asset and AI regulations, including the California Digital Financial Assets Law and the Colorado AI Act where applicable. This service is offered void where prohibited; use is not authorized in California or Colorado."}}