RWA Oracle
Who it's for: Platforms and users who rely on accurate, tamper-proof pricing for tokenised assets — especially when using RWA tokens as collateral or trading them on-chain. Why it matters: Prices are proven using cryptographic verification against real-world data sources, so no single party can manipulate the price of a tokenised Ghanaian property or bond.
Each RWA token has its own RWAPriceOracle contract. Prices are pushed via MPC-TLS proofs — cryptographic proofs generated over standard TLS (Transport Layer Security, the same protocol that secures every HTTPS connection) using multi-party computation, so no single party can forge or manipulate the fetched data. No centralized price feed.
POST /oracle/rwa/push — Push RWA Price
Auth: x-admin-secret header required.
{
"rwaAddress": "0xabc...",
"price": "125000000000"
}The service:
- Fetches the
priceSourceconfig for this RWA from D1 - Generates an MPC-TLS proof against the price API
- Calls
RWAPriceOracle.setLatestProof(proof, price)
{
"success": true,
"price": "125000000000",
"proofHash": "0x..."
}GET /oracle/rwa/:address — Read Current RWA Price
Response
{
"price": "125000000000",
"updatedAt": 1710000000,
"staleSinceSeconds": 1234,
"proofVerified": true
}Price Router
After deployment, a RWAPriceRouter is deployed pointing at the RWAPriceOracle. core-jit uses the RWAPriceRouter to:
- Derive
sqrtPriceX96for pool initialization - Get the oracle price feed address for
RouterHook
GET /price/rwa/:routerAddress
→ { sqrtPriceX96, tick, oraclePrice, oracleUpdatedAt }