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
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 →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'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.