Protocol
Oracle
How prices reach the vault, and the safety checks applied to them.
Pyth pull model#
INVARA Core reads prices from Pyth on Robinhood Chain (0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a). Pyth is a pull oracle: a price only lands on-chain when someone submits a signed update. Equity feeds have not been pushed on Robinhood Chain yet, so the first update creates them.
Safety checks#
| Check | Rule | Effect |
|---|---|---|
| Freshness | Price published ≤ 15 seconds ago | Older prices revert |
| Confidence | Confidence interval ≤ 0.5% of price | Volatile prices revert |
| Sign | Price > 0 | Zero/negative revert |
| Scale | Normalized to 18 decimals | — |
Pushing a price#
Signed updates come from Pyth Hermes, which now requires an API key. The app proxies Hermes server-side (PYTH_API_KEY) so the key never reaches the browser, then submits the update through InvaraOracleAdapter.updatePriceFeeds or directly to Pyth from Oracle Status.