API Reference
Protocols
Read every tracked RWA issuer and its latest 5-minute snapshot.
GET /protocols
Returns every active protocol with its static metadata.
Request
curl https://radar.oxar.app/api/v1/protocols \ -H "Authorization: Bearer rdr_live_..."
GET
ReadyGET /api/v1/protocolsLive previewradar.oxar.app/protocols
Run the request to see the response from radar.oxar.app.
200 OK
{
"data": [
{
"slug": "blackrock-buidl",
"name": "BlackRock BUIDL",
"chain": "ethereum",
"category": "us-treasuries",
"contractAddress": "0x7712c34205737192402172409a8F7ccef8aA2AEc",
"decimals": 6,
"description": "BlackRock USD Institutional Digital Liquidity Fund",
"issuer": { "name": "BlackRock", "jurisdiction": "USA" },
"websiteUrl": "https://securitize.io",
"estimatedApyBps": 460
}
// ...
]
}GET /protocols/:slug
Returns one protocol with its latest snapshot inline. :slug values come from the list endpoint.
Request
curl https://radar.oxar.app/api/v1/protocols/ondo-usdy \ -H "Authorization: Bearer rdr_live_..."
GET
ReadyGET /api/v1/protocols/ondo-usdyLive previewradar.oxar.app/protocols/ondo-usdy
Run the request to see the response from radar.oxar.app.
200 OK
{
"slug": "ondo-usdy",
"name": "Ondo USDY",
"chain": "ethereum",
"estimatedApyBps": 480,
"snapshot": {
"capturedAt": "2026-05-19T07:30:04.264Z",
"nav": 1.10,
"tvlUsd": 720245696,
"apyBps": 480,
"holderCount": null,
"top10ConcentrationPct": null,
"redemptionQueueUsd": null
}
}When the indexer hasn't captured a snapshot yet, snapshot is null.
Schemas
Protocol
NameTypeDescription
slug*
string
Stable identifier — e.g. ondo-usdy
name*
string
Human-readable product name
chain*
"ethereum" | "solana"
Where the token lives
category*
string
us-treasuries, private-credit, money-market, emerging-markets, other
contractAddress*
string
ERC-20 address or Solana mint
decimals*
integer
Token decimals
issuer
{ name, jurisdiction }
Issuer metadata
estimatedApyBps
integer
APY in basis points (480 = 4.80%)
Snapshot
NameTypeDescription
capturedAt*
ISO datetime
When this row was written
nav
number
Net asset value per token in USD
tvlUsd
number
Total value locked = totalSupply * nav
apyBps
integer
APY at snapshot time
holderCount
integer | null
Currently null; holder-snapshot indexer planned
top10ConcentrationPct
number | null
Currently null; tied to holder-snapshot indexer
redemptionQueueUsd
number | null
Currently null; per-protocol fetchers on the roadmap