Risk Parameters
These risk parameters apply to your perpetual futures positions and orders. You can find further risk parameters in Risks.
Price Bands
To prevent market manipulation and protect you during volatile events, the protocol runs two separate oracle-divergence bands. It does not gate order placement on either band.
Mark vs 5-minute oracle TWAP. If the AMM reserve (mark) price and the 5-minute oracle TWAP diverge by more than the greater of the exchange-wide configured threshold or 10% (a protocol-wide floor), the protocol blocks PnL settlement, deficit resolution, PnL-pool fee sweeps, and funding updates until the price reverts back within this band.
Live oracle vs 5-minute oracle TWAP. If the live oracle price and the 5-minute oracle TWAP diverge by more than the greater of the exchange-wide configured threshold or 50% (a separate, wider protocol-wide floor), the protocol halts perp order fills until the price reverts back within this band.
These formulas are defined below:
Oracle-mark divergence = (reference_price - oracle_twap_{5 minutes}) / reference_price
Mark/oracle-TWAP band = within the greater of the exchange-wide configured divergence threshold (State.oracle_guard_rails.price_divergence) or 10%
Live-oracle/oracle-TWAP band (fills only) = within the greater of the exchange-wide configured divergence threshold or 50%
Collateral Weight
To guard against concentration risk from a single whale, when assets exceed a certain size, their asset weights can be discounted.
Size Weightage = min(weight, 1.1 / (1 + sqrt{size} * imf_factor))
Additionally, liabilities (borrows, perp positions, etc) can have premiums applied.
max(.8 * wgt + sqrt(size) * imf_factor, wgt)
In both formulas size is your own token balance in that market, not a dollar value and not the market’s total. The discount is a ceiling, so it caps your initial and maintenance asset weights alike. For how the two weights differ, when each one applies, and a worked example, see Cross-collateral deposits.
Price Manipulation Prevention
The Clearinghouse also pauses your risk-increasing trades if they would further increase a large oracle-mark divergence. You also cannot close or reduce a position in a way that further breaches this divergence, unless the divergence has already been breached.
Order/Execution Limits
You can have up to 32 outstanding orders per sub-account at any one time. A market order you send has limits within each instruction (so it may be filled iteratively).
Your market orders may only be partially filled before expiration if any of the following limits occur:
-
the order exceeds its slippage tolerance implied limit price
-
the order exceeds its active time limit: unless you set
max_tsyourself, the Clearinghouse sets this tomax(30 seconds, auction_duration_ms / 800 + 10 seconds)from order placement, so a market or oracle order without an explicitmax_tsstays live for at least 30 seconds, and longer if its auction runs longer -
the order would exceed the market’s per-fill AMM cap, set by
max_fill_reserve_fraction(default 1% of the AMM’s base asset reserves, moving price by roughly 2%), and further capped at half of the available liquidity on that side of the AMM
Within a single transaction, one fill can only take up to this per-fill AMM cap. Calling multiple fill instructions can still fill a larger order over several transactions. For example, if the per-fill cap was 10,000 SOL, you could fill an order for 100,000 SOL against the AMM across 10 fill instructions.
The following conditions will also expire or cancel the remainder of your orders:
-
Out-of-favour oracle price divergence from your set limit price (post-only orders):
-
the oracle’s price is above your ask limit price by more than the market’s initial margin ratio
-
the oracle’s price is below your bid limit price by more than the market’s initial margin ratio
-
-
the fill would reduce your free collateral below 0 (for taker orders)
If your orders are cancelled this way, the filler who cancelled them receives a small reward, if they did not receive payment otherwise.
Unbounded P&L and Market Delisting
You can find more on this risk in Risks and P&L.
You can technically achieve unbounded unrealised P&L from entering and exiting a trade against the AMM. Because the AMM allows for asynchronous trading, there may not be an offsetting loss within the system to account for the gain you made.
Even if you achieve unbounded unrealised gains this way, you cannot settle and withdraw them as collateral until there is a dollar of offsetting loss to account for the dollar of gain.
If the majority of participants are in extreme positive unrealised P&L and that unrealised P&L cannot be settled, the market may become eligible for settlement through the Delisting Process.