Developers & Pricing
Build with the canonical data layer for tokenized real-world assets. Structured schemas, eligibility data, and AI-ready APIs.
What RWA Kernel Provides
API Access & Pricing
Mission-critical infrastructure for tokenized assets. Structured data, risk analysis, and AI-ready APIs.
Explore & experiment
- ✓ Browse all assets
- ✓ 3 token inspections (UI)
- ✓ 50 API calls/day
- ✓ Public documentation
For individuals & small teams
- ✓ All 400+ assets
- ✓ Full details & research
- ✓ Live metrics API
- ✓ 10K API calls/month
- ✓ Eligibility checker
- ✓ Email support
For teams & power users
- ✓ Everything in Basic
- ✓ Risk profiles & rationales
- ✓ Full eligibility data
- ✓ MCP server for AI tools
- ✓ 100K API calls/month
- ✓ Priority support
For institutions & platforms
- ✓ High-volume access
- ✓ Everything in Pro
- ✓ Bulk data export
- ✓ Custom integrations
- ✓ SLA & dedicated support
- ✓ White-glove onboarding
Include your API key in requests:
curl -H "x-api-key: rwa_live_xxx" \ https://rwakernel.com/api/assets
TypeScript SDK
Install the SDK to get typed access to all RWA Kernel APIs:
npm install @rwakernel/sdk
import { RwaKernel } from "@rwakernel/sdk";
// Initialize with your API key
const kernel = new RwaKernel({ apiKey: "rwa_live_xxx" });
// Get live metrics with full provenance
const metrics = await kernel.getMetrics("buidl");
console.log(`AUM: $${metrics.metrics.aumUsd?.value}`);
console.log(`Source: ${metrics.metrics.aumUsd?.sourceType}`); // "onchain_contract"
// Get all treasury assets
const treasuries = await kernel.getAssets({ assetClass: "treasury" });
// Inspect a token (for AI agents)
const info = await kernel.inspectToken(1, "0x7712c34...");
// Check eligibility
const eligible = await kernel.checkEligibility({
region: "US",
investorType: "accredited",
});getMetrics(assetId)Live NAV, AUM, yield with source provenance.
getAssets(filters?)Get all assets with optional filters.
getAsset(id)Get a single asset by ID or slug.
inspectToken(chainId, address)Get detailed info + AI summaries for any token.
checkEligibility(query)Check which assets are available for a given profile.
getMetricsBatch(ids[])Batch metrics for multiple assets.
Full TypeScript types included. Zero dependencies.
MCP Server for AI Tools
Let Claude Desktop, Cursor, and other AI tools natively query RWA Kernel using the Model Context Protocol:
// claude_desktop_config.json
{
"mcpServers": {
"rwakernel": {
"command": "npx",
"args": ["@rwakernel/mcp-server"]
}
}
}Then ask Claude:
rwa_get_metricsLive metrics with source provenance.
rwa_list_assetsList and filter tokenized assets.
rwa_inspect_tokenInspect any token by chain + address.
rwa_compare_assetsCompare risk profiles side-by-side.
rwa_check_eligibilityCheck eligibility for a user profile.
rwa_get_assetGet detailed asset information.
API Endpoints
/api/metrics/:id★ FeaturedLive metrics with full provenance. Default: expanded (all data including aggregators like CoinGecko). Use mode=verified for issuer/onchain data only. Returns sourceType, qualityScore, qualityGate for each metric.
curl -H "x-api-key: rwa_xxx" "https://rwakernel.com/api/metrics/buidl?mode=verified"
/api/assetsList all assets. Filters: assetClass, chainId, tag, isLabAsset, search. Metrics omitted by default (use includeMetrics=true).
curl "https://rwakernel.com/api/assets?assetClass=treasury&includeMetrics=true"
/api/assets/:idGet a single asset by ID or slug. Metrics omitted by default (use includeMetrics=true).
curl "https://rwakernel.com/api/assets/buidl?includeMetrics=true"
/api/assets/by-address/:chain/:addressLook up an asset by its onchain token address.
curl "https://rwakernel.com/api/assets/by-address/1/0x7712..."
/api/inspect/:chain/:address★ FeaturedToken Inspector: returns classification, summary, details, agentSummary, and promptSnippet for AI agents.
curl "https://rwakernel.com/api/inspect/1/0x7712..."
/api/eligibilityCheck which assets a user can hold based on region, investor type, and holder type.
curl "https://rwakernel.com/api/eligibility?region=US&investorType=accredited"
/api/statsRegistry statistics: total assets, AUM, breakdown by class.
curl "https://rwakernel.com/api/stats"
/api/labs/krsKernel Revenue Share lab data: deal terms, holders, revenue history.
curl "https://rwakernel.com/api/labs/krs"
Provider APIs
Specialized endpoints for third-party provider collections with dedicated data pipelines.
/api/providers/ondo-gm★ FeaturedOndo Global Markets: 115 tokenized stocks and ETFs (TSLA, AAPL, SPY, QQQ, etc.). Multi-source enriched data from Yahoo Finance, The Graph subgraph, and onchain oracles.
curl "https://rwakernel.com/api/providers/ondo-gm?format=enriched&include=all"
Ondo GM Query Parameters
formatResponse format:full— Complete RwaAsset structure (default)enriched— Rich data with prices, onchain metrics, market statuslist— Compact listing formatsummary— Statistics only, no individual assets
includeComma-separated data to include:prices— Token prices + underlying stock prices (Yahoo Finance)onchain— Onchain metrics from The Graph (holders, supply, transfers)all— Include everything
tickerFilter by underlying ticker (e.g., TSLA, AAPL)categoryFilter by type: stock or etfchainFilter by chain: Ethereum, BNB Chain, SolanaEnriched Response Example
// GET /api/providers/ondo-gm?format=enriched&ticker=TSLA&include=all
{
"provider": { "id": "ondo-gm", "name": "Ondo Global Markets", ... },
"assets": [{
"tokenTicker": "TSLAon",
"underlyingTicker": "TSLA",
"underlyingName": "Tesla, Inc.",
"exchange": "NASDAQ",
"category": "stock",
"chains": [{ "chainId": 1, "chainName": "Ethereum", "tokenAddress": "0x..." }],
"underlyingPrice": { // From Yahoo Finance
"price": 435.20,
"changePercent": -0.53,
"dayHigh": 442.50,
"dayLow": 432.10,
"fiftyTwoWeekHigh": 498.83,
"fiftyTwoWeekLow": 214.25,
"volume": 49000000
},
"tokenPrice": { // From CoinMarketCap/CoinGecko
"price": 437.19,
"changePercent24h": -1.62
},
"onChainMetrics": { // From The Graph subgraph
"totalSupply": "125000000000000000000000",
"holderCount": 1250,
"transferCount24h": 45,
"transferVolume24h": 2500000
},
"marketStatus": { "isUSMarketOpen": false, "nextOpen": "..." }
}],
"summary": { "totalAssets": 115, "stocks": 85, "etfs": 30 },
"dataSources": {
"official": { "success": true, "count": 115 },
"subgraph": { "success": true, "count": 98 },
"yahooFinance": { "success": true, "count": 112 }
}
}Note: Ondo Global Markets products are Reg S offerings and NOT available to U.S. persons. These tokens provide economic exposure only — no shareholder rights.
Schema Overview
NEW: The /api/metrics/:id endpoint returns live metrics with provenance:
interface MetricsResponse {
assetId: string;
symbol: string;
request: { // Shows what mode was used
mode: "verified" | "expanded"; // Default: expanded
minQuality: number; // Quality threshold used
};
provenance: "collector" | "onchain" | "aggregator" | "static" | "estimated";
hasLiveData: boolean; // True if live collector data exists
usedStaticFallback: boolean; // True if static JSON was used
qualityGate?: { // What was filtered out
minScoreThreshold: number;
verifiedOnly: boolean;
withheldMetrics: Array<{ metric: string; reason: string }>;
};
metrics: {
aumUsd?: SourcedMetric; // AUM (or null if withheld)
yieldApy?: SourcedMetric; // Yield APY (or null if withheld)
navUsd?: SourcedMetric; // NAV per share
overallQuality: 1-5;
qualitySummary: string;
};
}
interface SourcedMetric {
value: number;
sourceType: "onchain_contract" | "onchain_oracle" | "issuer_official"
| "aggregator" | "estimated";
sourceRef: string;
qualityScore: 1-5;
isStale: boolean;
timestamp: string;
}Every asset conforms to the RwaAsset interface:
interface RwaAsset {
id: string; // Unique identifier
slug: string; // URL-friendly slug
name: string; // Full name
symbol?: string; // Token symbol
assetClass: AssetClass; // "treasury" | "money_market_fund" | ...
description: string; // Short description
chains: ChainLocation[]; // Where deployed
legal: LegalInfo; // Issuer, jurisdiction, wrapper
eligibility: Eligibility; // KYC, accreditation, regions
cashFlow: CashFlowModel; // Type, frequency, rates
risk: RiskFlags; // Contract, custody, regulatory
riskProfile?: RiskProfile; // Multi-dimensional risk grid
links: AssetLinks; // Official site, docs, explorers
metrics?: AssetMetrics; // AUM, yield (returned only when includeMetrics=true)
tags?: string[]; // For filtering
isLabAsset?: boolean; // True for simulated assets
}The /api/inspect endpoint returns:
interface InspectResponse {
asset: RwaAsset | null; // Full asset data, or null if not found
classification: "rwa" | "unknown";
summary: string; // Human-readable summary
details: string[]; // Bullet points of key properties
agentSummary: string; // Concise summary for AI agents
promptSnippet: string; // Instructions for agent interpretation
}NEW: The RiskProfile provides machine-readable risk analysis:
interface RiskProfile {
underlyingCredit?: RiskDimension; // Credit risk of backing
marketRate?: RiskDimension; // Interest rate exposure
structural?: RiskDimension; // Legal/structural complexity
legalRegulatory?: RiskDimension; // Regulatory clarity
smartContract?: RiskDimension; // Technical/audit risk
liquidity?: RiskDimension; // Redemption/trading risk
lastReviewedAt?: string;
}
interface RiskDimension {
level: "low" | "medium" | "high";
rationale: string;
}Asset Class Extensions
Beyond financial RWAs, the registry includes Compute, IP, Carbon, Energy, and Data assets. Each class has an optional extension with specialized fields:
// Asset classes
type AssetClass =
| "treasury" | "money_market_fund" | "credit" | "stablecoin"
| "tokenized_equity" | "fund" | "real_estate"
| "compute" // GPU, AI inference, storage
| "ip" // Music royalties, patents, biotech
| "carbon" // Carbon credits, environmental
| "energy" // RECs, solar revenue
| "data" // Data marketplaces, streams
| "other";
// Extended RwaAsset for non-financial classes
interface RwaAsset {
// ... core fields ...
compute?: ComputeExtension; // When assetClass === "compute"
ip?: IpExtension; // When assetClass === "ip"
carbon?: CarbonExtension; // When assetClass === "carbon"
energy?: EnergyExtension; // When assetClass === "energy"
data?: DataExtension; // When assetClass === "data"
}{
resource: {
computeType: "gpu_rendering",
networkCapacity: {
totalNodes: 5000,
totalGpus: 10000,
utilizationRate: 0.75
}
},
economics: {
tokenUtility: "Payment + Staking",
stakingYield: { currentApy: 8.5 }
}
}{
ipType: "music",
rights: {
rightsType: "royalty_share",
duration: "perpetual"
},
revenue: {
paymentFrequency: "quarterly",
historicalRevenue: {
amount: 2500000
}
}
}{
credit: {
creditType: "voluntary_offset",
standard: "Verra VCS",
vintage: "2020-2023"
},
environmental: {
co2EquivalentTonnes: 25000000
}
}{
dataAsset: {
dataType: "data_marketplace",
accessModel: "token_gated",
updateFrequency: "real-time"
},
economics: {
pricingModel: "pay_per_query"
}
}Filtering by Asset Class
Use the assetClass query parameter to filter assets:
# Get all compute/GPU tokens GET /api/assets?assetClass=compute # Get all carbon credit tokens GET /api/assets?assetClass=carbon # Get all IP/royalty tokens GET /api/assets?assetClass=ip # Combine with other filters GET /api/assets?assetClass=compute&chainId=1 GET /api/assets?assetClass=treasury&tag=featured
Building AI Agents on RWA Kernel
The /api/inspect endpoint returns two fields specifically designed for AI agents:
agentSummaryA concise, factual summary of the asset. Contains: name, type, issuer, underlying assets, yield, AUM, and eligibility requirements. Use this to answer "what is this token?" questions.
promptSnippetInstructions for how to interpret this token. Explains what exposure it represents, how yield works, and key constraints (KYC, transfer restrictions). Inject this into your agent's context.
Example: Agent Lookup Flow
"What is 0x7712c34205737192402172409a8f7ccef8aa2aec on Ethereum?"
curl https://rwakernel.com/api/inspect/1/0x7712c34...
{
"classification": "rwa",
"agentSummary": "BlackRock USD Institutional Digital Liquidity Fund (BUIDL) is a money market fund issued by BlackRock / Securitize. Backed by US Treasury bills, repo agreements, cash. 2.95% yield, $2.3B AUM. KYC required, accredited investors only, $5M minimum.",
"promptSnippet": "When you see this token, treat it as exposure to a money market fund holding short-term, high-quality debt. Yield accrues daily, typically via NAV appreciation or rebasing. The holder earns yield passively. Important: only whitelisted (KYC'd) addresses can hold this token, holders must be accredited/qualified investors. This token is NOT freely tradeable on public DEXs.",
"asset": { ... }
}Uses agentSummary to answer the question, and promptSnippet to guide any follow-up reasoning about the asset.
More Agent Examples
Explain a Token
“What is the token at 0x7712... on Ethereum?”
GET /api/inspect/1/0x7712c34205737192402172409a8f7ccef8aa2aec{ "classification": "rwa", "agentSummary": "BlackRock USD Institutional...", "promptSnippet": "When you see this token...", "asset": {...} }Filter Assets
“Show me treasury tokens available to non-US investors”
GET /api/assets?assetClass=treasury&tag=non-us{ "assets": [{ "id": "usdy", ... }, { "id": "usdm", ... }], "total": 3 }Summarize Cash Flow
“How does BUIDL pay out?”
GET /api/assets/buidl{ "asset": { "cashFlow": { "type": "money_market_yield", "frequency": "daily", ... } } }Data Coverage & Disclaimers
Two data modes. By default, the API returns expanded data (all sources including aggregators like CoinGecko). Use mode=verified for issuer/onchain data only.
Coverage varies by asset. Some issuers publish live data (NAV, AUM), others don't. Verified mode may return empty for assets without issuer feeds.
Quality gate. Each API response includes a qualityGate object showing which metrics were withheld and why.
Not investment advice. Nothing here constitutes a recommendation. Do your own research.
Ready to integrate?
Try the Token Inspector or explore the asset registry.