xrpl.fiGet data access

XRPL · API

Build on XRPL RWA data

Every number on xrpl.fi is available as JSON: market metrics, a trusted/flagged issuer feed you can index, and on-chain verification for any address. Open CORS, no API key, no signup.

Base URL · https://xrpl.fi

GET/api/metrics

Aggregated dashboard metrics — total RWA TVL and 24h change, DEX volume, holder and asset counts, the asset-class breakdown, the TVL history series, and the full per-asset list (supply, price, holders, 24h change, live flag). sampleData is true if any figure fell back to a curated value. Cached ~60s at the edge.

curl https://xrpl.fi/api/metrics

{
  "totalTvl": 1202743108,
  "tvlChange24h": 0.018,
  "dexVolume24h": 3120000,
  "totalHolders": 103044,
  "assetCount": 16,
  "issuerCount": 13,
  "liveSymbols": ["RLUSD", "OUSG", ...],
  "assetClassBreakdown": [{ "assetClass": "Stablecoin", "tvl": ..., "share": ... }],
  "assets": [
    { "symbol": "RLUSD", "issuer": "Ripple",
      "issuerAddress": "rMxCK...", "currency": "524C5553...",
      "supply": 676949657, "priceUsd": 1.0, "holders": 41200,
      "change24h": 0.004, "live": true }
  ],
  "tvlSeries": [{ "date": "2026-06-01", "tvl": ... }],
  "sampleData": false,
  "updatedAt": "2026-07-02T12:00:00.000Z"
}
View live JSON →
GET/api/issuers

Bulk trusted/flagged issuer feed, built to be indexed by wallets and explorers. trusted is the curated, identity-verified registry (one entry per address); flagged is the documented counterfeit/impersonator list. Every entry carries a verifyUrl. A stable schemaVersion and a content ETag let you poll cheaply — send If-None-Match and get 304 Not Modified until the lists actually change (the ETag ignores the timestamp).

curl https://xrpl.fi/api/issuers

{
  "schemaVersion": 1,
  "format": "arrays",
  "counts": { "trusted": 13, "flagged": 37 },
  "trusted": [
    { "address": "rMxCK...", "status": "trusted", "issuer": "Ripple",
      "verdict": "verified", "currencies": ["RLUSD"],
      "assetClasses": ["Stablecoin"], "verifyUrl": "https://xrpl.fi/api/verify/rMxCK..." }
  ],
  "flagged": [
    { "address": "rBLaCK...", "status": "flagged", "category": "impersonator",
      "reason": "Counterfeit BlackRock / BUIDL token",
      "rwaImpersonated": ["BlackRock / BUIDL"], "verifyUrl": "..." }
  ],
  "generatedAt": "2026-07-02T12:00:00.000Z"
}

# poll cheaply — 304 while unchanged:
curl -H 'If-None-Match: "issuers-v1-arrays-c88edeb5"' https://xrpl.fi/api/issuers

# one object keyed by address, for O(1) lookups:
curl 'https://xrpl.fi/api/issuers?format=map'
GET/api/verify/{address}

On-chain identity verification for any XRPL issuer address. Runs the same checks as the dashboard: account existence, what it issues, the bidirectional xrp-ledger.toml check, the XRPScan well-known label and the XRPLMeta trust level, then a verdict (verified, self-claimed, no-identity, not-found or invalid).

curl https://xrpl.fi/api/verify/rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De

{
  "address": "rMxCK...",
  "verdict": "verified",
  "verified": true,
  "headline": "Identity verified — bidirectional domain match",
  "domain": "https://ripple.com/",
  "signals": {
    "exists": true, "bidirectionalToml": true,
    "wellKnown": { "name": "RLUSD", "verified": true },
    "xrplmetaTrustLevel": 3
  },
  "obligations": [{ "code": "RLUSD", "value": 676949657 }],
  "checks": [{ "label": "...", "status": "pass", "detail": "..." }]
}
Try the verify tool →

Notes

  • Auth: none. Open Access-Control-Allow-Origin: *, so you can call these from the browser.
  • Caching:responses are edge-cached (metrics ~60s, issuers ~5min). Be reasonable — cache on your side or use the issuer feed's ETag rather than hammering.
  • Custom shapes: need extra fields, a webhook when the flagged list changes, or a different response shape? Ask.

Building something with this?

Wallets, explorers and analytics teams index the trusted/flagged feed to protect and inform users. Tell us what you're building — happy to shape the data around it.