Assignment of unfilled liquidations
Currently, because Kraken Futures has no insurance fund to deal with unfilled liquidations and because it is bad User Experience to simply break off open interest of profitable traders to offset poorly collateralized traders, we have developed an alternative model to accommodate liquidity provision in high volatility periods.
Liquidity Providers (LPs) are willing to take the risk of receiving unfilled liquidations. The benefit is the maintenance margin remaining from the marked value of the position, which compensates for the risk.
Participation in the Position Assignment System (PAS) works as follows:
- Each LP who wants to participate in the scheme can provide a maximum position that they are willing to be assigned in one single order or a maximum position size that they are wiling to have AFTER an assignment has occurred(or both).
- Each LP has a certain amount of available margin (AM) at any given time, so if AM < MT they do not assume their max threshold (MT) but only up to the available.
- Upon assignment, it shows in the WebSocket feed for Fills and we send an email outlining the parameters of the position they assumed.
- As a last resort, if a liquidation can neither be filled in the book or assigned by the LPs participating in the PAS, then termination occurs.
The sum total capacity of liquidity providers participating in the program is a de facto insurance fund that provides protection against extreme volatility leading to system losses.
This solution allows us to continue not to require clawbacks and have realtime settlement of profits.
Read here in more in detail how the PAS log works.
Liquidity provider preferences
There are two sets of preferences that PAS participants can specify:
- general preferences: these are the acceptable high level conditions that a LP has for receiving assignments. They include: Time of week (Weekend, Weekdays), Contract type (FI_XBTUSD, FI_ETHUSD)
- risk preferences: these are the specific size constraints a liquidity provider states they are comfortable with if an assignment meets their general preferences. These are applied on the contract level. They include: Max Per Assignment Size, Max Post-Assignment Position Size and WEEKDAYS/WEEKENDS Note: there is NO price consideration allowed on these preferences.
Example: as a liquidity provider you want:
|Max Assignment||Max Position Size Post-Assignment|
|FI_XBTUSD||500,000 USD||2,000,000 USD NET LONG or SHORT|
|FI_ETHUSD||250,000 USD||1,500,000 USD NET LONG or SHORT|
|FI_LTCUSD||200,000 USD||1,000,000 USD NET LONG or SHORT|
|FI_XRPUSD||200,000 USD||1,000,000 USD NET LONG or SHORT|
Note that assignments occur PER CONTRACT, so the limits are applied on each ASSIGNMENT for each CONTRACT within the series. For example, assume there is a liquidation on FI_XBTUSD and the Quarterly, Monthly contracts have unfilled liquidation of 750,000 contracts and 800,000 contracts.
Note also that if you are long 3,000,000 contracts on XBTUSD Quarterly then you could get short 5,000,000 contracts worth of assignments, in sub-500,000 USD chunks, until you are max short 2,000,000 contracts from your limit set on post-Assignment. This is not necessarily a big risk as we have many liquidity providers, but just theoretically so you understand the model.
The user could receive 500,000 from both (monthly and quarterly), for total of 1,000,000 across FI_XBTUSD contracts, in two different assignments. Or if there was 4 unfilled liquidation of 4 different users that were 500,000 USD, then the liquidity provider could receive 4 of the 500,000 different assignments as his maximum is there.
Liquidity providers are NOT allowed to specify ANY price preferences in the program. Liquidity providers may ONLY be passive in the PAS, in such a way that the only preferences are about quantity to manage the limits.
Assignments always occur at best execution and are a last resort mechanism to provide an orderly market, only done after liquidation in the orderbooks fills any open orders at better prices than the 0 equity point of the trader.
See an example here.