Velor

Pre-launch. Velor is in development. These docs describe the protocol as it will operate at mainnet launch: contract addresses, audit reports, execution-quality data, and live track records will be published here the moment they exist.

Part IV · Protocol

Oracles & pricing

  • Per-asset Chainlink feeds (8 decimals, 24/5 following US market hours). Feed proxies are pinned in protocol config alongside token addresses; both verified against official sources at deploy.
  • The gauntlet, applied before any price is trusted: oraclePaused() == false, a positive answer, a sane timestamp, and a round no older than the asset's staleness bound. Per-feed decimals() is read live, never hardcoded.
  • Two freshness bounds, because looking and trading are different. Showing you a NAV uses a generous bound — these feeds follow US market hours, so a price legitimately goes untouched all weekend, and a tight bound would falsely mark healthy baskets as broken every Saturday. Moving your money uses a much tighter one: a basket may not trade against a price older than that asset's settlement bound (hours, not days).
  • Chain outages need no special case. Chainlink prices reach the chain through the sequencer, so if the chain stops, prices stop arriving and go stale — and a stale price is one the basket refuses to trade against. Settlement halts on its own, and stays halted until fresh prices arrive. (Other chains use a dedicated "is the sequencer up" feed for this; Robinhood Chain doesn't have one, and this is a stronger check anyway: an "up" chain tells you nothing about whether the price is two days old.)
  • ERC-8056 corporate actions: Robinhood stock tokens accrue dividends via an onchain multiplier. The Chainlink price already includes the multiplier: vault valuation is rawBalance × feedPrice, never multiplier-adjusted twice. The multiplier is read only for share-equivalent display and corporate-action detection.
  • Corporate-action freezes are condition-based: an asset freezes from effectiveAt − 24h until its oracle unpauses and one fresh round publishes. Fixed windows that can end mid-pause are a known bug class; we don't have it.
  • 24/5 feeds on a 24/7 chain: no execution outside feed-live windows; Monday's window opens 30 minutes after the market does; weekend risk is disclosed, modeled, and priced into nothing silently.