Price oracles
Check whether a v24 price is usable for your intended action.
Before a price-dependent action
Check the selected market's source, normalized price, observation time, confidence, status, and action quote. v24 validates the source and policy identity as well as the numeric price. A display price is not proof that opening, closing, or liquidating is allowed.
Pull updates
On a Pyth market, use the supported v24 Router update wrapper to submit a validated update batch and native update fee. The transaction checks the refreshed price and the action's guards. A successful update can still be followed by a rejected action if confidence, margin, state, or price limits fail; the transaction then reverts.
Set the native oracle-fee cap separately from maxProtocolFee. Failed excess-native refunds become claimable Router refund balances. See Orders.
Scheduled closure and reopening
New exposure and LP additions require Live status. ScheduledClosed, ClosureFrozen, and ReopenGrace do not admit new risk. Where the read remains valid, supported risk-reducing actions have their own permission checks.
A frozen closure sample is valid only within the configured closure policy. If the source is stale, unavailable, or blocked by sequencer protection, you cannot assume that closing or liquidation remains available. Recovery requires its own acceptable live-price checks.
Protect the execution price
Use literal minPrice and maxPrice bounds from your v24 request. Zero maxPrice is not an unlimited bound. Price protection does not protect the collateral payout from changes in funding, fees, psi, or settlement mode; use the corresponding output and risk guards too.