RWA Risk Oracle — API Reference
Complete endpoint reference for multi-vector risk scoring, compliance intelligence, and evidence-grade data across 75+ tokenized asset protocols.
Endpoint Groups
Authentication
All endpoints require an API key via the X-API-Key header. The public dashboard at /portfolio.html uses a server-side proxy and does not expose keys.
curl -H "X-API-Key: YOUR_KEY" https://api.feedoracle.io/api/v1/rwa/risk
Base URL: https://api.feedoracle.io/api/v1/rwa · Get API Key →
evidence object with ECDSA ES256K (secp256k1) signature, SHA-256 payload hash, and manifest ID. Verify signatures via JWKS. Responses include meta.schema_version and meta.scoring_model_version for reproducibility.
Risk Scoring Core
Multi-vector risk scores for tokenized asset protocols. 9 dimensions weighted into a composite 0–100 score with letter grades (A–F). Includes algorithmic reason codes explaining each score.
Returns composite risk scores for all scored protocols with market summary and risk distribution.
Query Parameters
| Param | Type | Description |
|---|---|---|
profile | string optional | Risk profile preset: conservative, balanced, growth. Changes vector weights. |
type | string optional | Filter by asset type: regulated_stablecoin, treasury, commodity, credit, synthetic, real_estate, equities, insurance, xrpl_infrastructure, xrpl_custody, xrpl_tokenization |
Response Fields
paxos-gold)Risk Vectors (9 dimensions)
| Vector | Weight | Measures |
|---|---|---|
institutional | 20% | Issuer credibility, regulatory licenses, audit history |
maturity | 15% | Protocol age, track record, incident history |
diversification | 10% | Multi-chain deployment, chain HHI concentration |
dex_liquidity | 12% | DEX depth, volume, pair diversity |
onchain_transparency | 12% | Contract verification, recent activity, proxy patterns |
esg_carbon | 8% | Carbon footprint per chain weighted by TVL |
yield_spread | 8% | Yield spread vs T-Bill benchmark, sustainability metrics |
tvl_weight | 10% | TVL size and stability weighting |
regulatory | 5% | Regulatory coverage, licensing status, compliance framework |
Returns complete risk profile for a single protocol including all 9 vector scores, compliance data, legal state, identifier registry, ESG breakdown, and ECDSA-signed evidence.
Path Parameters
| Param | Type | Description |
|---|---|---|
slug | string required | Protocol identifier (e.g. rlusd, usdc, xrpl-ecosystem, paxos-gold) |
Response Fields (protocol object)
.codes[] with vector, impact (positive/negative), text explanationEnhanced — Regulated Stablecoins
For regulated_stablecoin assets (RLUSD, USDC, PYUSD, USDG, EURC, USDP).
Enhanced — XRPL Native Assets
For XRPL assets (xrpl-ecosystem, ripple-custody, xrpl-tokenized-assets).
Generates a downloadable PDF risk assessment report for a single protocol. Includes score breakdown, risk vectors, compliance summary, and evidence metadata. Returns application/pdf.
Aggregate market intelligence: total RWA TVL, grade distribution, sector breakdown, TVL trends, and benchmark comparison.
Protocol Registry Supporting
Structured identifiers for each protocol: token metadata (symbol, chain, contract address), issuer details (name, country, LEI), and underlying asset classification (ISIN, type). Powers compliance mapping and cross-referencing.
Query Parameters
| Param | Type | Description |
|---|---|---|
type | string optional | Filter: regulated_stablecoin, treasury, commodity, credit, synthetic, real_estate, equities, insurance, xrpl_infrastructure, xrpl_custody, xrpl_tokenization |
chain | string optional | Filter by deployment chain |
has_lei | boolean optional | Only protocols with LEI identifier |
Response Fields
Returns full identifier record for a single protocol.
Query Parameters
| Param | Type | Description |
|---|---|---|
q | string required | Search query (matches name, symbol, ISIN, LEI) |
Aggregate statistics: total protocols, type distribution, chain distribution, LEI coverage percentage.
Compliance Intelligence Core
Cross-border regulatory status for each protocol: jurisdiction accessibility, sanctions screening (OFAC/EU/UN), investor qualification requirements, and reporting obligations. Powers MiCA Article 66 and DORA workflows.
Returns compliance summary for all scored protocols.
Response Fields
Path Parameters
| Param | Type | Description |
|---|---|---|
code | string required | ISO 3166-1 alpha-2 country code (e.g. DE, US, SG) |
Returns all protocols accessible, restricted, or banned in the specified jurisdiction.
Check compliance status for multiple protocols against a specific jurisdiction in one call.
Query Parameters
| Param | Type | Description |
|---|---|---|
slugs | string required | Comma-separated protocol slugs |
jurisdiction | string optional | ISO country code to check against |
Aggregate compliance statistics: jurisdiction coverage, average compliance scores, sanctions screening coverage.
Legal State Supporting
Legal structure analysis: contract upgrade powers, ownership authority, transfer finality mechanisms, dispute resolution frameworks, and risk flags for each protocol.
Returns legal state summary for all scored protocols.
Response Fields
Search legal state records by keyword (e.g. "multisig", "timelock", "arbitration").
Aggregate legal structure statistics across all protocols.
Oracle Feeds Core
Real-time consensus price feeds for tokenized assets. Multi-source aggregation (median/weighted median) with outlier removal, disagreement detection, and staleness monitoring. Sources include Chainlink, Pyth, CoinGecko, and direct exchange feeds. Prices are validated against configurable deviation thresholds before publication.
Response Fields
Returns operational status of oracle feed infrastructure including source availability and freshness metrics.
DEX Liquidity Enrichment
On-chain DEX liquidity depth, volume, and pair diversity across chains and decentralized exchanges. Note: many RWA tokens (e.g. tokenized T-Bills) trade primarily via mint/redeem on the primary market rather than on DEXes. For these assets, the result.liq.cat may show THIN or NO_DEX — this does not necessarily indicate illiquidity but rather a different redemption model (e.g. T+0, T+1, daily NAV).
Returns DEX liquidity summaries for all tracked protocols.
Response Fields
On-Chain Transparency Enrichment
Smart contract verification status, proxy patterns, transaction activity recency, and on-chain trust signals.
Returns on-chain transparency summaries for all tracked protocols.
Response Fields
ESG / Carbon Enrichment
Environmental scoring based on chain-weighted carbon footprint. Sources include FeedOracle Carbon Chain API, EU ETS, Ember Climate, and VeChain ToolChain (source pipeline DNV-certified under ISO 14040/14044).
Response Fields
Events Supporting
Risk-relevant events detected for each protocol: anomalies, governance changes, peg deviations, liquidity shifts, and regulatory developments.
Returns recent events across all protocols, sorted by recency.
Response Fields
Aggregate event statistics: event type distribution, severity breakdown, most active protocols.
Score History Supporting
Historical risk score tracking. Enables trend analysis and score change monitoring over time.
Response Fields
Response Fields
Discovery Enrichment
New protocol detection: monitors DeFiLlama for untracked RWA protocols and provides coverage analysis.
Response Fields
Yield Analysis NEW
Yield decomposition and source classification. Injected into /v1/rwa/risk/{slug} responses as yield_analysis block. Answers: "Where does the yield come from, and how does it compare to risk-free?"
This is best-effort classification based on issuer disclosures and public sources. Not investment advice. Confidence scores indicate data certainty.
Yield Source Classes
| Class | Description | Example |
|---|---|---|
US_TREASURY_BILLS_DIRECT | Backed directly by US T-Bills | Ondo USDY, Hashnote USYC |
MMF_GOV_ONLY | Government-only money market fund | BlackRock BUIDL, Franklin FOBXX |
REPO_TREASURY_COLLATERAL | Repo agreements collateralized by Treasuries | — |
TOKENIZED_FUND_GOV_BONDS | Tokenized ETFs/funds holding gov bonds | Backed bIB01 |
PRIVATE_CREDIT_SECURED | Loans secured by real-world collateral | Centrifuge |
PRIVATE_CREDIT_UNSECURED | Under-collateralized institutional lending | Maple, Goldfinch |
STRUCTURED_CREDIT | CLOs, ABS, tranched products | — |
COMMODITY_LEASE_OR_FEE | Gold-backed, commodity-linked | PAXG, XAUT |
STABLECOIN_NO_YIELD | Stablecoins where yield is not passed to holders | USDC, RLUSD, PYUSD |
MIXED | Multiple yield sources combined | — |
UNKNOWN | Insufficient data for classification | — |
Response Fields
| Field | Type | Description |
|---|---|---|
nominal_apy | number? | Annualized yield (decimal). Null if unavailable. |
benchmark.name | string | US_TBILL_3M (FRED series DTB3) |
benchmark.rate | number | Current risk-free rate (decimal) |
credit_spread | number? | nominal_apy − benchmark.rate. Null if either missing. |
yield_source_class | enum | Taxonomy classification (see above) |
derivation | object | Method + inputs used for computation |
confidence | 0-1 | Classification certainty |
notes | string | Source attribution, disclaimers |
Example: Ondo USDY (Treasury-backed, yield-bearing)
{
"nominal_apy": 0.052,
"benchmark": {
"name": "US_TBILL_3M",
"source": "FRED",
"rate": 0.045,
"observed_at": "2026-02-11T00:00:00Z"
},
"credit_spread": 0.007,
"yield_source_class": "US_TREASURY_BILLS_DIRECT",
"derivation": {
"method": "nominal_minus_benchmark",
"inputs": ["defillama_yield", "fred_tbills_3m"]
},
"confidence": 0.80,
"notes": "USDY backed by short-duration US Treasuries and bank deposits."
}
Example: RLUSD (stablecoin, no yield to holders)
{
"nominal_apy": 0.0,
"benchmark": { "name": "US_TBILL_3M", "source": "FRED", "rate": 0.036 },
"credit_spread": -0.036,
"yield_source_class": "STABLECOIN_NO_YIELD",
"confidence": 0.95,
"notes": "Reserves generate yield for issuer, not holders."
}
Redemption / Time-to-Cash NEW
Institutional liquidity profiles: settlement times, gates, minimum amounts, fees. Answers the question: "If I need to exit $50M, how fast can I get cash?"
Response Fields
| Field | Type | Description |
|---|---|---|
primary_exit | enum | ISSUER_DIRECT | DEX_ONLY | HYBRID | OTC | NONE |
settlement_time | enum | T+0 | T+1 | T+2_BUSINESS_DAYS | VARIABLE | LOCK_PERIOD |
settlement_days_max | integer | Maximum calendar days to settlement |
minimum_redemption_usd | number | Minimum redemption amount (null if none) |
gates.withdrawal_gate | boolean | Can issuer halt redemptions? |
gates.conditions | string | Gate activation conditions |
fees | object | Fee in basis points (null if free) |
liquidity_latency_score | 0-100 | Composite: higher = faster exit to cash |
nav_frequency | enum | REAL_TIME | DAILY | WEEKLY | MONTHLY |
confidence | 0-1 | Data confidence level |
Example: RLUSD (T+0 instant)
{
"primary_exit": "ISSUER_DIRECT",
"settlement_time": "T+0",
"settlement_days_max": 0,
"minimum_redemption_usd": 100000,
"gates": { "withdrawal_gate": false, "suspension_rights": false },
"fees": { "type": "bps", "value": 0 },
"liquidity_latency_score": 90,
"nav_frequency": "REAL_TIME",
"confidence": 0.8
}
Example: Maple Finance (Lock period)
{
"primary_exit": "NONE",
"settlement_time": "LOCK_PERIOD",
"settlement_days_max": 90,
"gates": { "withdrawal_gate": true, "conditions": "Loan maturity dependent" },
"liquidity_latency_score": 0,
"confidence": 0.8
}
Data is expanded progressively. Protocols without redemption data return 404 with a hint field.
Document Registry NEW
Compliance documents with source URLs pointing to issuer/auditor originals. SHA-256 hashes for integrity verification. Single Source of Truth without hosting copyrighted material.
Document Categories
| Category | Description |
|---|---|
attestation | Reserve/asset attestation reports (CPA, auditor) |
audit | Smart contract security audits |
prospectus | Offering memoranda, circulars |
legal | Terms of service, legal agreements |
whitepaper | Product overview, technical specs |
factsheet | Fund factsheets, performance reports |
regulatory | Regulatory filings, compliance guidance |
Document Fields
| Field | Type | Description |
|---|---|---|
category | enum | Document type (see above) |
title | string | Human-readable document title |
url | URI | Source URL (issuer/auditor hosted) |
issuer | string | Publisher of the document |
date | date | Publication date |
hash_sha256 | string? | SHA-256 hash for integrity verification |
regulatory_relevance | enum? | MiCA | DORA | SEC | NYDFS |
Example: RLUSD documents
{
"slug": "rlusd",
"total_documents": 4,
"documents": [
{
"category": "attestation",
"title": "RLUSD Reserve Attestation Report (Nov 2025)",
"url": "https://www.bpm.com/rlusd-attestation-nov-2025",
"issuer": "BPM LLP",
"date": "2025-12-15",
"regulatory_relevance": "NYDFS"
},
{
"category": "legal",
"title": "RLUSD Terms of Service",
"url": "https://ripple.com/legal/rlusd-terms",
"issuer": "Ripple"
}
]
}
Document URLs point to issuer-hosted originals. FeedOracle does not host or redistribute third-party documents.
Alerts & Webhooks Supporting
Real-time webhook notifications for risk score changes, grade transitions, and critical events.
Returns all active webhook subscriptions for your API key.
Request Body (JSON)
| Field | Type | Description |
|---|---|---|
webhook_url | string required | HTTPS webhook endpoint URL |
events | array optional | Event types to subscribe to (default: all) |
slugs | array optional | Protocol slugs to monitor (default: all) |
Webhook Event Payload
Your endpoint receives a POST with this JSON body when a subscribed event fires:
{
"event": "grade_change",
"timestamp": "2026-02-11T14:30:00Z",
"protocol": {
"slug": "ondo-usdy",
"name": "Ondo USDY",
"type": "treasury"
},
"previous": { "score": 78, "grade": "B" },
"current": { "score": 64, "grade": "C" },
"reason_codes": [
{ "vector": "tvl_weight", "impact": "negative", "text": "TVL dropped 18% in 7d" },
{ "vector": "dex_liquidity", "impact": "negative", "text": "DEX liquidity below $1M" }
],
"evidence": {
"signature": "0x3a9f...",
"manifest_id": "evt-20260211-143000-ondo-usdy"
}
}
Event types: grade_change, score_threshold, anomaly_detected, peg_deviation, tvl_drop
Removes a webhook subscription by ID.
Health Supporting
Service health and operational status.
Response Fields
Common Response Structure
All endpoints share a consistent envelope with evidence and metadata.
Standard Fields
Error Response
HTTP Status Codes
| Code | Meaning |
|---|---|
200 | Success |
400 | Invalid request parameters |
401 | Missing or invalid API key |
404 | Protocol slug not found |
429 | Rate limit exceeded |
500 | Internal server error |
503 | Data temporarily unavailable for this protocol |