KULA ERC Suite
Live · Ethereum Sepolia Testnet

How the NAV
Oracle Works

Multiple authorised providers independently publish NAV snapshots for the same asset. The oracle aggregates them into a tamper-resistant median, tracks deviation across providers, and flags staleness when data grows old.

Diagram — multi-provider NAV publishing

Each authorised provider independently calls publishNAV() with their own valuation and methodology hash. Every snapshot is an append-only on-chain record assigned a sequential index.

AUTHORISED NAV PROVIDERSETHEREUM SEPOLIAP1APEX VALUATIONS$152.45Global Grain Fund · USD · PER_UNITmethodology: ipfs://Qm…publishNAV()P2MERIDIAN NAV$152.45Global Grain Fund · USD · PER_UNITmethodology: ipfs://Qm…publishNAV()P3GENEVA PRICE SERVICES$153.12Global Grain Fund · USD · PER_UNITmethodology: ipfs://Qm…publishNAV()NAV Snapshots3 providerssame valuation timestampon-chaineach snapshot indexedNAV Snapshot Recordone per provider · append-onlySubjectGlobal Grain FundCurrency / BasisUSD · PER_UNITNAV$152.45Valuation Time2025-05-05 00:00Provider0x1a2b…3c4dMethodology Hash0xf0a1…b2c3Snapshot Index#0000

Diagram — median aggregation

Provider snapshots sharing the same valuation timestamp are sorted and their median is taken. Deviation in basis points (bps) measures how far the furthest provider sits from the median — a quality signal for consumers.

Apex$152.45P1 valueMeridian$152.45P2 valueGeneva$153.12P3 valuesort → [152.45, 152.45, 153.12]median()Median NAV$152.45Aggregated NAVGlobal Grain Fund · USD · PER_UNITMedian$152.45Providers3Deviation44 bpsNAV BasisPER_UNITComputed at1_746_409_200 (unix)

Diagram — staleness classification

Each subject/currency pair has a staleness config with two thresholds. A heartbeat flags missing provider publishes. A maxValuationAge flags data whose underlying valuation is too old to trust.

Staleness Configheartbeat86,400 s (24 h)maxValuationAge172,800 s (48 h)per subject · currency paircheckFRESHpublishedAt within heartbeatvaluationTs within maxAge✓ Safe to consumeHEARTBEAT_STALEpublishedAt exceeds heartbeatno recent publish from providers⚠ Check providersVALUATION_STALEvaluationTimestamp exceedsmaxValuationAge threshold✕ Do not consumeconsumers proceedalert, await refreshreject, require re-valuation

Live smart contract · Ethereum Sepolia

NAV Snapshot Oracle

Stores NAV snapshots per subject, currency, and basis. Computes median aggregations on-demand from provider snapshots sharing the same valuation timestamp. Staleness configs are configurable per pair.

Manipulation-Resistant

A median of independent providers cannot be manipulated by a single bad actor — at least half must agree.

Transparent Deviation

Deviation in basis points is published alongside the median, letting consumers judge provider consensus quality.

Staleness-Aware

Configurable heartbeat and valuation age thresholds classify each NAV as FRESH, HEARTBEAT_STALE, or VALUATION_STALE.