LogoLogo
X👾💡🎒
Backpack Docs
  • Support Docs
  • Technical Docs
  • API Docs
Backpack Docs
  • Welcome
  • Onboarding
  • Trading
    • Margin
    • Spot Margin
    • Futures Specs
    • Settlement and Realization
    • Fees
  • Borrow & Lend
    • Lending
    • Borrowing
    • Utilization and Interest Rates
    • Risks
Powered by GitBook

@ 2025 Backpack Exchange

On this page
  • Overview
  • Margin & Collateral
  • Mark Price and Index Price
  • Funding Rate
  • Price Bands
Export as PDF
  1. Trading

Futures Specs

Overview

  • All subaccounts on Backpack are cross-margined. Margin is isolated per subaccount.

  • There is only one wallet to access all products (spot, futures, spot margin, borrow/lending).

  • Currently, markets are denominated and settled in USDC.

  • Lent assets can be used as collateral to open and maintain futures positions. Interest rates are determined by the public utilization rate curve of the Borrow Lend market.

  • Unrealized PnL also earns/pays interest, and fully counts towards net equity. You can choose to continuously realize PnL if you prefer to do so instead.

  • Liquidations first go through the orderbook, and upon hitting the auto-close margin, accounts are liquidated against Backstop Liquidity Providers.

Margin & Collateral

Item

Description

Formula

Collateral Value

Notional value of collateral asset with haircut applied

Total Account Collateral

Total value of collateral assets with haircut applied

Unrealized PnL

Position Unrealized PnL

Net Exposure Quantity

Size in tokens of current open positions and open orders that increase risk within a symbol

Net Exposure Notional

Notional size of current open positions and open orders that increase risk within a symbol

Total Exposure Notional

Total notional sum of open positions and orders that increase risk across all symbols

Base IMF

Position IMF without considering size

Position Initial Margin Fraction (IMF)

Initial margin requirement for a position adjusted for position size

Position Maintenance Margin Fraction (MMF)

Maintenance margin requirement adjusted for position size

Account IMF

Minimum margin fraction required to open new positions

Account MMF

Minimum margin fraction required to not get liquidated.

Net Equity

Total net equity value of the account.

Net Equity Locked

Total equity used to maintain open positions and orders that increase risk.

Net Equity Available

Equity available to open new positions.

Account Margin Fraction (MF)

How levered an account is given its current active positions and the mark prices of the coins.

Auto Close Margin Fraction

Margin fraction in which account is liquidated against BLPs.


Mark Price and Index Price

We have fallback logic to calculate the Mark Price. The order of preference is:

  1. Index price + 5 minute moving average of (mid price - index price) delta. The mid price is the mean of the best bid and best offer.

  2. Index price.

  3. Median of the best bid, best offer and last traded price on Backpack.

  4. Mid price (mean of best bid and best offer) on Backpack.

  5. Last traded price on Backpack.

We will resort to using the fallback logic if we do not have the necessary data (e.g. it is stale).

For Index Price, we retrieve market price data from a set of exchanges.

  • For each exchange, we take the median of {best bid, best ask, last price} and use this as the market price.

  • We then calculate the median market price for the exchanges.

    • We apply a ceiling price of 30bps above the median and a floor price of 30bps below the median. If an exchange is outside of that, then they will be given the ceiling / floor price.

  • Each exchange is given a weighing that affects their weight. We use that weighting in a weighted mean average market price calculation for the set of exchanges.


Funding Rate

updated as at 12 May 2025 08:00 UTC

  • Every second we record the premium index

    premium = (mark price − index price) / index price

  • Average premium index = moving-average of those per-second premiums over the funding interval.

  • Interest-rate add-on

    interest_rate = 0.03 % × (funding_interval_hours / 24)

  • Funding-rate formula

  • Caps / floors are set per market and returned in the /markets API.

  • Funding payment (charged at the end of the interval)

    payment = funding_rate × position_qty × mark_price


Price Bands

Limit Price Bands

  • These are applied to limit orders.

  • We calculate the median of {best bid, best offer, last price}. This is called the Active Price.

  • We then have a configurable Max Multiplier and Min Multiplier parameters.

  • If a limit order is submitted with a limit price that exceeds Active Price * Max Multiplier, then it is rejected. Conversely, if it has a limit price below Active Price * Min Multiplier, then it is rejected

Price Impact Bands

  • These are applied to taker orders.

  • We have parameters Max Impact Multiplier and Min Impact Multiplier.

  • If we have a buy taker order, we will only allow it to to take up to the price level of best offer * Max Impact Multiplier. If the order is not fully filled at that point then we will expire the order and it will be partially filled. Converse logic applied for Min Impact Multiplier.

Mean Mark Price Bands

  • We calculate the 5 minute moving mean average for the mark price, mean mark price

  • We then have 2 parameters Max Multiplier and Min multiplier

  • If a taker order is submitted, then we will allow it to fill up until the price level of mean mark price * Max Multiplier . If the order is not fully filled at that point then we will expire the order and it will be partially filled. Converse logic applied for Min Multiplier . This is similar to the above price impact price bands.

Mean Premium Bands

  • We calculate the 5 minute moving average of the premium, mean premium

  • We then have a parameter tolerance pct

  • If, e.g. the tolerance percentage is 1% and the mean premium is 3%, then if a taker order is submitted, we will only allow it full up to a price level at which the current premium is 4%. If the order is not fully filled at that point then we will expire the order and it will be partially filled.

  • If, e.g. the tolerance percentage is 1% and the mean premium is -3%, then if a taker order is submitted, we will only allow it full up to a price level at which the current premium is -4%. If the order is not fully filled at that point then we will expire the order and it will be partially filled.

PreviousSpot MarginNextSettlement and Realization

Last updated 3 days ago

funding_rate  =  Clamp⁡ ⁣(avg_premium_index  +  Clamp⁡ ⁣(interest_rate−avg_premium_index,  0.05%, −0.05%),funding_rate_cap,funding_rate_floor)\text{funding\_rate} \;=\; \operatorname{Clamp}\!\Bigl( \text{avg\_premium\_index} \;+\; \operatorname{Clamp}\!\bigl( \text{interest\_rate} - \text{avg\_premium\_index}, \;0.05\%,\,-0.05\% \bigr), \text{funding\_rate\_cap}, \text{funding\_rate\_floor} \Bigr)funding_rate=Clamp(avg_premium_index+Clamp(interest_rate−avg_premium_index,0.05%,−0.05%),funding_rate_cap,funding_rate_floor)
TokenSize×MarkPrice×CollateralWeight\text{TokenSize} \times \text{MarkPrice} \times \text{CollateralWeight}TokenSize×MarkPrice×CollateralWeight
∑(Collateral Value) for all collateral assets\sum \text{(Collateral Value)} \text{ for all collateral assets}∑(Collateral Value) for all collateral assets
Position Size×(Mark Price−Average Entry Price)\text{Position Size} \times (\text{Mark Price} - \text{Average Entry Price})Position Size×(Mark Price−Average Entry Price)
Position Size+Open Order Size Of Orders Increasing Risk\text{Position Size} + \text{Open Order Size Of Orders Increasing Risk}Position Size+Open Order Size Of Orders Increasing Risk
Net Exposure Quantity×Mark Price\text{Net Exposure Quantity} \times \text{Mark Price}Net Exposure Quantity×Mark Price
∑(Net Exposure Notional) across all futures and spot margin positions\sum \text{(Net Exposure Notional)} \text{ across all futures and spot margin positions}∑(Net Exposure Notional) across all futures and spot margin positions
max⁡(1maximum leverage on platform,1maximum leverage set by user)\max\left(\dfrac{1}{\text{maximum leverage on platform}}, \dfrac{1}{\text{maximum leverage set by user}}\right)max(maximum leverage on platform1​,maximum leverage set by user1​)
max⁡(Base IMF,IMF Factor×Notional Position Size)\max \left(\text{Base IMF}, \text{IMF Factor} \times \sqrt{\text{Notional Position Size}}\right)max(Base IMF,IMF Factor×Notional Position Size​)
max⁡(Base MMF,MMF Factor×Notional Position Size)\max \left(\text{Base MMF}, \text{MMF Factor} \times \sqrt{\text{Notional Position Size}}\right)max(Base MMF,MMF Factor×Notional Position Size​)
max⁡(1max leverage,∑(Notional Position Size×Position IMF)Total Exposure Notional)\max\left(\dfrac{1}{\text{max leverage}}, \dfrac{\sum \text{(Notional Position Size} \times \text{Position IMF)}}{\text{Total Exposure Notional}}\right)max(max leverage1​,Total Exposure Notional∑(Notional Position Size×Position IMF)​)
∑(Notional Position Size×Position MMF)Total Exposure Notional\dfrac{\sum \text{(Notional Position Size} \times \text{Position MMF)}}{\text{Total Exposure Notional}}Total Exposure Notional∑(Notional Position Size×Position MMF)​
Total Collateral Value+Total Unrealized PnL+Unsettled Balances−Total Borrow Liability\text{Total Collateral Value} + \text{Total Unrealized PnL} + \text{Unsettled Balances} - \text{Total Borrow Liability}Total Collateral Value+Total Unrealized PnL+Unsettled Balances−Total Borrow Liability
Initial Margin Fraction×Total Exposure Notional summed across all token market positions\text{Initial Margin Fraction} \times \text{Total Exposure Notional} \text{ summed across all token market positions}Initial Margin Fraction×Total Exposure Notional summed across all token market positions
Net Equity−Net Equity Locked\text{Net Equity} - \text{Net Equity Locked}Net Equity−Net Equity Locked
Net EquityTotal Exposure Notional\dfrac{\text{Net Equity}}{\text{Total Exposure Notional}}Total Exposure NotionalNet Equity​
max⁡(Account MMFACMF Divisor,Account MMF−ACMF Offset)\max \left(\dfrac{\text{Account MMF}}{\text{ACMF Divisor}}, \text{Account MMF} - \text{ACMF Offset}\right)max(ACMF DivisorAccount MMF​,Account MMF−ACMF Offset)