Public Baskets
Oracle Price
Price oracles are data feeds that provide a reliable reference price for a perp asset. Combined with funding rates, they serve to align the perp price with the reference price of the asset.
External pricing
Ventuals uses Pyth data feeds as the price oracle for public basket perps, which can provide external pricing with up to 24 hour coverage on normal weekdays.
Pyth data feeds source executable quotes from institutional liquidity providers during US trading sessions. For overnight sessions when traditional markets are closed, Pyth sources price data from Alternative Trading Systems (ATS).
When fresh external pricing data is available, it is used directly as the oracle price.
Pre-market hours
Monday – Friday
4am – 9:30am ET
Normal hours
Monday – Friday
9:30am – 4pm ET
After-market hours
Monday – Friday
4pm – 8pm ET
Overnight
Sunday – Thursday
8pm – 4am ET
Internal pricing
When external pricing is unavailable, the oracle switches to an internal pricing mechanism which initializes on the last available external price.
When external pricing resumes, the oracle snaps to the external pricing mechanism on the next tick.
Weekend
Friday 8pm ET
Sunday 8pm ET
Oracle data feed
External pricing data is sourced from Pyth price feeds, for all trading sessions (pre-market, normal market, after-market, and overnight trading).
MAG7
Mark Price
Mark price is the fair price of a perpetual contract, and is used for margining, liquidations, stop/limit triggers, funding rates, and computing unrealized PnL.
For public basket perps, Ventuals calculates the mark price as the median of:
Oracle price
Oracle price + 150s EMA of difference between oracle price and the perp's mid-price
The median of best bid, best ask, last trade on Hyperliquid
Mark prices, along with oracle prices, are updated approximately every 3 seconds.
Mark price bands
To protect against price manipulation during periods of thin liquidity, the mark price for each market is constrained to remain within a price band relative to its oracle price.
This mark price band is defined as ±(1 / max_leverage) of the last external-pricing oracle price, and this band is in effect during all trading sessions (e.g. both external pricing and internal pricing).
For example, if the MAG7 oracle price is $70 from the last external price on Friday, then the mark price is range bound between ($63, $77) until external pricing resumes on Sunday evening ET.
Mark price velocity limit
There is an additional limit to mark price movements of a max 0.50% move every 3 second update. This prevents overly large price moves over a short period of time, further protecting against manipulation.
Last updated