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_..."
GETGET /api/v1/protocolsLive preview
Ready
radar.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_..."
GETGET /api/v1/protocols/ondo-usdyLive preview
Ready
radar.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