Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

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.

Request
{
  "rwaAddress": "0xabc...",
  "price": "125000000000"
}

The service:

  1. Fetches the priceSource config for this RWA from D1
  2. Generates an MPC-TLS proof against the price API
  3. Calls RWAPriceOracle.setLatestProof(proof, price)
Response
{
  "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 sqrtPriceX96 for pool initialization
  • Get the oracle price feed address for RouterHook
GET /price/rwa/:routerAddress
→ { sqrtPriceX96, tick, oraclePrice, oracleUpdatedAt }