Market price: median of last, best bid, best offer
Mark price [MP]: market price of futures if future is not paused, otherwise index price + last premium
Index: All elements of each index are equally weighted.
- Binance BTC/TUSD
- Binance BTC/USDC
- Bitstamp BTC/USD
- Bittrex BTC/TUSD
- Bittrex BTC/USD
- Coinbase BTC/USD
- Coinbase BTC/USDC
- Kraken BTC/USD
- OKEx BTC/TUSD
- OKEx BTC/USDC
- Binance ETH/TUSD
- Binance ETH/USDC
- Bitstamp ETH/USD
- Bittrex ETH/TUSD
- Bittrex ETH/USD
- Coinbase ETH/USD
- Coinbase ETH/USDC
- Kraken ETH/USD
- Binance USDC/USDT
- Binance TUSD/USDT
- Bittrex TUSD/USDT
- Bittrex USDT/USD
- Kraken USDT/USD
- OKEx TUSD/USDT
- OKEx USDC/USDT
- Binance ALGO/BTC
- Binance ALGO/USDT
- Huobi ALGO/BTC
- Huobi ALGO/USDT
- OKEx ALGO/BTC
- OKEx ALGO/USDT
- Binance BCH/TUSD
- Binance BCH/USDC
- Bittrex BCH/USD
- Coinbase BCH/USD
- Kraken BCH/USD
- Binance BNB/TUSD
- Binance BNB/USDC
- Bitfinex BSV/BTC
- Bittrex BSV/BTC
- Bittrex BSV/USD
- Huobi BSV/BTC
- Huobi BSV/USDT
- OKEx BSV/BTC
- OKEx BSV/USDT
- Binance EOS/TUSD
- Binance EOS/USDC
- Coinbase EOS/USD
- Kraken EOS/USD
- Bitfinex LEO/BTC
- Bitfinex LEO/USDT
- OKEx LEO/USDT
- Binance LTC/TUSD
- Binance LTC/USDC
- Bitstamp LTC/USD
- Bittrex LTC/USD
- Coinbase LTC/USD
- Kraken LTC/USD
- Binance TRX/TUSD
- Binance TRX/USDC
- Bittrex TRX/USD
- Binance XRP/TUSD
- Binance XRP/USDC
- Bitstamp XRP/USD
- Bittrex XRP/USD
- Coinbase XRP/USD
- Kraken XRP/USD
All elements of each index are weighted equally. All elements are capped at 30bp divergence from the median.
ALT: All of the above markets for ETH, EOS, XRP, BNB, TRX, LEO, BCH, BSV, and LTC. Within each coin each element is weighted equally. ALT contains:
- BCH: 0.264
- BNB: 1.343
- BSV: 0.297
- EOS: 21.427
- ETH: 1.195
- LEO: 4.375
- LTC: 0.889
- TRX: 2223.529
- XRP: 228.964
MID: The Mid Cap index contains the following coins and quantities:
|Coin||Quantity||Market 1||Market 2||Market 3|
|ADA||855.695||binance TUSD||binance USDC||bittrex USD|
|ATOM||5.608||binance BTC||binance USDT||huobi USDT|
|BAT||64.824||gdax USDC||binance BTC||binance USDT|
|BTG||0.587||okex USDT||binance BTC||bitfinex BTC|
|BTT||31660.319||binance USDT||okex USDT||huobi USDT|
|CRO||141.496||huobi USDT||huobi BTC||okex USDT|
|DASH||0.365||kraken USD||okex USDT||huobi USDT|
|DCR||0.181||binance BTC||bittrex BTC||huobi USDT|
|DOGE||4766.823||huobi USDT||binance BTC||binance USDT|
|EGT||548.034||okex USDT||huobi USDT||okex BTC|
|ETC||15.447||gdax USD||kraken USD||okex USDT|
|HC||1.481||huobi USDT||binance BTC||okex USDT|
|IOTA||74.752||binance BTC||binance USDT||huobi USDT|
|LINK||17.96||binance TUSD||binance USDC||gdax USD|
|NEO||3.739||binance TUSD||binance USDC||okex USDT|
|OMG||13.317||huobi USDT||okex BTC||okex USDT|
|ONT||36.679||huobi USDT||okex USDT||binance USDT|
|QTUM||11.105||huobi USDT||okex USDT||binance USDT|
|VET||2447.049||binance USDT||binance BTC||huobi BTC|
|XEM||219.425||okex USDT||binance BTC||huobi USDT|
|XLM||463.353||gdax USD||kraken USD||binance TUSD|
|XMR||0.524||kraken USD||binance BTC||huobi BTC|
|XTZ||10.155||kraken USD||kraken BTC||bitfinex BTC|
|ZEC||0.575||gdax USDC||kraken USD||binance TUSD|
SHIT: The Shitcoin Index contains the following coins and quantities:
|Coin||Quantity||Market 1||Market 2||Market 3|
|ABT||59.86818702||okex USDT||huobi BTC||okex BTC|
|AE||55.38011136||okex USDT||huobi USDT||binance BTC|
|AION||192.4604763||binance BTC||bitfinex USD||bitfinex BTC|
|ARDR||230.4997234||binance BTC||bittrex BTC||huobi BTC|
|ARK||46.99588222||binance BTC||bittrex BTC||okex BTC|
|BCD||20.80252133||okex USDT||binance BTC||okex BTC|
|BNT||35.26702676||binance BTC||okex USDT||okex BTC|
|BTM||146.2112712||okex USDT||okex BTC||huobi USDT|
|BTS||381.4633238||huobi USDT||binance BTC||huobi BTC|
|CTXC||120.0845491||huobi USDT||huobi BTC||okex USDT|
|CVC||315.7067917||okex USDT||coinbase USDC||huobi USDT|
|DENT||24147.59007||binance BTC||binance ETH||bittrex BTC|
|DGB||1547.283434||bittrex BTC||huobi BTC||bittrex USD|
|DGD||0.9071545465||binance BTC||huobi BTC||okex BTC|
|ELF||124.1280008||okex USDT||huobi USDT||binance BTC|
|ENG||38.04784136||binance BTC||huobi BTC||bittrex BTC|
|ENJ||188.8969401||binance BTC||binance USDT||bittrex BTC|
|FTM||779.5532536||binance BTC||binance USDT||okex USDT|
|GAS||7.336816472||binance BTC||okex BTC||huobi BTC|
|GNT||262.7818401||binance BTC||huobi USDT||bittrex BTC|
|GRIN||5.79281631||poloniex BTC||bittrex BTC||poloniex USDC|
|GRS||60.16064577||binance BTC||bittrex BTC||huobi BTC|
|GXC||11.40156575||huobi USDT||binance BTC||huobi BTC|
|ICX||62.832786||binance BTC||binance USDT||okex USDT|
|IOST||1988.85446||huobi USDT||binance BTC||binance USDT|
|KMD||14.53288545||binance BTC||bittrex BTC||huobi BTC|
|KNC*||91.50066768||binance BTC||okex USDT||huobi BTC|
|LAMB||83.62862601||huobi USDT||huobi BTC||bittrex BTC|
|LOOM||372.7785196||binance BTC||huobi BTC||bittrex BTC|
|LRC||436.2697194||okex USDT||binance BTC||okex BTC|
|LSK||11.39598153||binance BTC||huobi BTC||bittrex BTC|
|MANA||366.5804714||okex USDT||okex BTC||binance BTC|
|MCO||3.821668972||binance BTC||okex USDT||okex BTC|
|NANO||14.22826057||binance BTC||binance USDT||huobi USDT|
|NAS||18.56386936||okex USDT||huobi USDT||binance BTC|
|NPXS||27151.77844||binance ETH||binance BTC||huobi BTC|
|NULS||29.43455571||binance USDT||binance BTC||huobi USDT|
|PIVX||34.9539377||binance BTC||bittrex BTC||kucoin BTC|
|POLY||284.6568263||binance BTC||huobi BTC||bittrex BTC|
|POWR||210.9501702||binance BTC||bittrex BTC||huobi BTC|
|PPT||24.83704415||binance BTC||okex USDT||binance ETH|
|QKC||1149.655218||binance BTC||binance ETH||kucoin BTC|
|REN||141.7888248||binance BTC||huobi BTC||huobi ETH|
|REP||1.40313102||coinbase USD||kraken USD||binance BTC|
|RVN||346.8322768||binance BTC||bittrex BTC||bittrex USDT|
|SC||5920.803335||binance BTC||poloniex BTC||bittrex BTC|
|SNT||777.4792258||huobi USDT||binance BTC||okex USDT|
|STEEM||67.41734532||binance BTC||bittrex BTC||huobi USDT|
|STORJ||89.56141952||binance BTC||huobi USDT||okex USDT|
|STRAT||28.84394118||binance BTC||bittrex BTC||poloniex BTC|
|THETA||132.9747978||binance BTC||huobi USDT||binance USDT|
|WAVES||12.0146473||binance BTC||binance USDT||okex USDT|
|WTC||9.730002359||binance BTC||huobi usdt||okex USDT|
|XVG||2900.635819||binance BTC||bittrex BTC||huobi BTC|
|XZC||1.774915604||binance BTC||bittrex BTC||huobi BTC|
|ZEN||2.750464353||binance BTC||bittrex USD||okex USDT|
|ZIL||1516.125511||okex USDT||binance USDT||huobi USDT|
|ZRX||72.82587101||coinbase USD||binance USDT||okex USDT|
* KNC is Kyber Network
All BTC, ETH, and USDT Markets are composed of the below:
Index price [index]: Market price of index.
Premium: MP - index
Indices are fetched every 5 seconds
*LEO does not trade against USD/USDC/TUSD anywhere, so we are multiplying the LEO/USDT price by our USDT index and the LEO/BTC price by our BTC index.
The quarterly futures expire on the last Friday of every quarter to a 1 hour TWAP of the underlying index from 2am UTC to 3am UTC.
Shortly after expiration, each futures position will be marked to the expiration price of the contract. All realized and unrealized PnL on quarterly futures will turn into collateral at this point.
For instance, say that you deposited $10,000 of collateral and used it to buy 10 BTC quarterly futures. Say that prior to expiration your account had 10 BTC quarterly futures with a realized PnL of $1,000, an unrealized PnL of $100, and a mark price of $5,000 for the BTC index. If the average price of the BTC index over the expiration period (2am to 3am UTC) was $5,010, then after expiration ended your account would have:
USD collateral: $10,000 (old collateral) + $1,000 (realized PnL) + $100 (unrealized PnL) + 10 (number of BTC futures) * ($5,010 - $5,000) (difference between expiration and previous mark price) = $11,200
BTC quarterly futures: 0
Realized PnL: 0
Unrealized PnL: 0
Every hour, each perpetual contract has a funding payment where longs pay shorts equal to [1 hour TWAP of Premium] / 24. This payment is added to your account's collateral.
You can find historical funding rates here.
Tick sizes: BTC $0.25, ETH $0.01, USDT $0.0001, EOS $0.00025, XRP $0.001, BNB $0.0025, TRX $0.0000025, LEO $0.001, BCH $0.05
Contract sizes: 0.001 BTC, 0.01ETH, 1USDT, 1EOS, 1XRP, 1BNB, 1TRX, 1LEO, 0.01BCH
Contract multiplier: 1000 for BTC, 100 for ETH, 1 for USDT, 1 for EOS, 1 for XRP, 1 for BNB, 1 for TRX, 1 for LEO, 100 for BCH
Contract notional: 1 coin
IMF Factor: 0.003 for BTC, 0.001 for ETH, 0.00001 for USDT, 0.0002 for EOS, 0.0005 for XRP, 0.001 for BNB, 0.000005 for TRX, 0.0002 for LEO, 0.0001 for BCH
Position size: contracts * contract multiplier
Position notional: size * MP
IMF Factor: multiplier on the margin required for a coin.
Base IMF: the minimum initial margin fraction needed. Currently 0.1.
Position initial margin fraction: max(Base IMF, IMF factor * sqrt(open size))
Position maintenance margin fraction: max(3%, 0.6 * position initial margin fraction)
Position unrealized PNL: position size * (future mark price - position entry price)
Collateral: USD balance in futures wallet plus 0.95 times BTC and USDT balance marked to latest index price.
Free collateral: amount of USD that can be withdrawn from exchange, =min(collateral, collateral + unrealized PNL) - [amount of collateral tied up in open orders]
Total account value: collateral + unrealized pnl
Total position notional: sum of abs(position notional) across all positions
Margin fraction [MF]: total account value / total position notional
Maintenance Margin Fraction Requirement [MMF]: the minimum MF needed to avoid getting liquidated, equal to average of position MMF weighed by position notional
Auto Close Margin Fraction [ACMF]: the minimum MF needed to avoid getting closed against the backstop liquidity provider or other users, = max(MMF / 2, MMF - 0.06 * MM)
Zero Price (ZP): MP * (1 - MF) if long, MP * (1 + MF) if short. The mark price that would set an account’s total account value to 0.
Liquidation Distance: % move in futures that would make MF = MMF.
Position open size: Max(abs(size if all buy orders get filled), abs(size if all sell orders get filled))
Position open notional: position open size * MP
Total open position notional: sum of abs(position open notional) across all positions
Open margin fraction [OMF]: min(total account value, collateral) / total open position notional
Initial Margin Fraction Requirement [IMF]: the minimum OMF needed to increase position size, equal to average of position IMF for all account positions weighed by position open notional
Unused collateral: max(OMF - IMF, 0) * total open position notional
Backstop Liquidity Provider [BLP]: an account that promises to take on liquidating accounts’ positions
- Can’t send orders more than 1% through opposite side of the book
- Orders too far through the book get their prices capped at the limit price
- Sum of open order sizes per side can’t be greater than max($1m, 1% of an ADV of the underlying coin)
- Can’t increase position if OMF > IMF after the order is placed
- Can’t send any orders (including orders that would decrease position) if account is below MMF
- FTX also has price bands. Users can’t send orders if either:
- Price is more than 10% from the mean MP over the past 5 minutes
- Absolute value of premium is more than 5% above the absolute value of the mean premium over the past 5 minutes
ADV: 30-day coinmarketcap volume / 30 24h before the contract first trades
Fills modify position sizes and cost. Fills only affect unrealized pnl, not realized pnl.
Position entry price = cost / size
Unrealized pnl: position size * mark price - cost
Every 30 seconds, all unrealized pnl turn into realized pnl if there are no account is being auto-closed
(specifically, account collateral is modified by unrealized pnl and entry price is set to mark price)
FTX uses standard futures rather than inverted futures. This means that ultimately you can calculate your final PnL from quarterly futures, assuming no liquidations, as: PnL = Number of Futures * (exit price - entry price). So for instance if you bought 15 BTC futures at $5,000 and sold all 15 at $6,000, your USD collateral will increase by $15,000. If you hold a position until expiration you can treat the expiration price of the contract as your exit price.
Note that if you put on a position in a perpetual future, your PnL will be increased/decreased by the total funding payments you pay while holding the position. Each hour, there is a funding payment from longs to shorts of position size * (TWAP of futures price - TWAP of index)/24.
Margin is posted in 'USD' in your wallet. USD can be funded by depositing either USDC or TUSD.
Each subaccount has one central collateral wallet and uses portfolio margining for the account. Each subaccount has separate margin and collateral from other subaccounts.
An account can only increase its position as long as its Margin Fraction is above its Initial Margin Fraction. For small positions, this means that the Margin Fraction must be at least 5%, meaning that accounts can only initialize positions to a maximum of 20x leverage. As your position size increases, so does your Initial Margin Fraction.
If you Margin Fraction falls below your Maintenance Margin Fraction, your account will begin to get liquidated.
Balances of the following coins also count towards collateral:
See here for more details.
FTX has a three step liquidation process.
An account begins to get liquidated if its margin fraction is less than its maintenance margin. So if its maintenance margin fraction is 3% then it would begin to get liquidated once it became 33x leveraged.
The liquidation engine will then periodically send orders in the market to close down the account's position. The goal of the liquidation engine is to carefully close down positions in the market while minimizing impact, keeping markets orderly. The liquidation engine just sends standard limit orders on behalf of the account getting liquidated.
The speed of the liquidation will depend on the position size but for small positions it will aim to fully close down the position in about one minute. If partially liquidating the account causes its leverage to drop back below the threshold, the liquidation will end.
If account falls even closer to bankruptcy, the backstop liquidity provider system will kick in. This happens if the account's margin drops below the auto-close margin fraction. So if the auto-close margin fraction is 2%, then if the account becomes 50x leveraged, the account will begin to close down against the backstop liquidity providers.
When an account is getting auto-closed, it will have its position closed down at the bankruptcy price, and backstop liquidity providers will take over the position. A portion of the remaining collateral goes to the insurance fund.
If an account does go bankrupt, the insurance fund will pay out to bring the account's balance back to 0.
The more technical explanation:
If the account’s margin fraction is less than maintenance margin but above auto-close margin fraction, then:
Approximately every 6 seconds, we send 10% of the position size as a order on the market, between 1 and 5 basis points through the book, with the constraint that the total sizes of liquidation orders is less than 0.0001 times the average daily volume of the underlying coin summed across all liquidating positions.
- Every second, for each future, with probability ⅙:
- Set order size to 10% of position size
- Bound order notional from below by min($1000, position size)
- Bound order size from above by max liquidation size remaining
- Multiply order size by uniform(0.5, 1.5)
- Bound order size from above by position size
- Decrease max liquidation size remaining by order size
- Send order uniform(1bp, 5bp) through the book, expiring 1 second later
- Set max liquidation size remaining to 0.0001 times the underlying ADV (note: this is a global max shared between all accounts)
- For each account whose margin fraction is between maintenance margin and auto-close margin fraction, in random order:
If the account’s margin fraction is less than auto-close margin fraction, then:
Every second, auto-close (1 - margin fraction / auto-close margin fraction) * position size, bounded below by min($1000, position size). If margin fraction < 0, auto-close the entire position.
BLPs have a max capacity per minute and per hour. Position is closed against BLPs in proportion to remaining capacity. If BLP total capacity is insufficient, the remaining size is closed against users with large opposing positions (starting with the top 10 opposing positions, more if their total is insufficient), in proportion to their position sizes.
Liquidated account closes at ZP. The BLP takes over the position at ⅔ * ZP + ⅓ * MP, but not worse than MP plus MP * 10% * auto-close margin fraction. Insurance fund covers the rest--i.e. it gets ⅓*abs(MP-ZP) if the account isn’t yet bankrupt, and pays abs(MP-ZP) + 0.1 * MP * ACMF if it is. If account is bankrupt and insurance fund is empty, the remaining is taken from positions with positive unrealized pnl (proportionally to pnl).
If a contract hits a circuit breaker, MP is the premium as of when the circuit breaker was enacted plus current index price.
Withdrawals can be made if open margin fraction after the withdrawal > total initial margin fraction.
You can withdraw USD as either TUSD or USDC; you can deposit either TUSD or USDC to be credited with USD.
Daily withdrawal limit: for highest tier verified accounts, daily withdrawal limit is min($25m; max($1m; 25% of total account value; 30 day volume / 100)).
FTX Crypto Derivatives Exchange: https://ftx.com
Join our community: