Since the original post, we have made changes to our fee structures, for the latest version of our fees and risk parameters: click here.
A note to our traders and LPs
Mycelium is aware of the price manipulation event on GMX, and can confirm that we were not exposed to the same exploit. Although Mycelium Perpetual Swaps is a fork of the GMX codebase, we have always been clear with our community: we updated the fees, revenue mechanisms, and markets for Mycelium Perpetual Swaps as a point of difference.
As a result, in this instance, the parameters Mycelium has implemented have ensured our LPs funds and the MLP pool is in healthy shape, and performing as it should. This post is dedicated to outlining what happened with GMX, and the measures Mycelium already has in place to prevent such an exploit.
GMX LP Losses
GMX allows users to trade at an oracle price with no price impact (execution price always stays the same), regardless of trade size. Essentially this assumes the fair price is the external CEX price (They do this by choosing from 3 CEXs, and then choosing the median price of the 3).
However, this assumes that CEX prices are adequately and perpetually liquid. With this assumption, GMX allowed traders to take up significant long and short positions on AVAX. This assumption was proven incorrect, given that the CEXs were not adequately and perpetually liquid, and the liquidity on CEXs became less than the liquidity that GMX was offering.
As such, a user was able to take an AVAX position on GMX’s platform (which sequentially is priced on the CEX liquidity), and then go and move the AVAX external liquidity at a lesser cost than the profits the user would receive from the GMX position. i.e. long on GMX, move up CEX market on Coinbase, exit GMX position and profit, short on GMX, move CEX market down on Coinbase, exit GMX position and profit. This process was done ~5 times last night on GMX’s platform with AVAX.
Mycelium’s Preventative Measures
Mycelium has always been aware that the risk that pricing according to CEX liquidity creates. As such, we have already implemented preventative measures to avoid this market manipulation occurring on our platform. The largest two were:
- Having a bid-ask spread which was inversely correlated to CEX liquidity depth;
- Having tight maxgloballongsize and maxgloballongsize parameters which prevent toxic order flow, and/or significantly reducing the profit of traders who are manipulating CEX prices.
We believe these parameters are strict enough to make it economically infeasible for CEX market manipulation, however, will continuously monitor going forward.
Steps going forward
In this instance, Mycelium was not exposed to the same exploit as GMX. Mycelium already had precautionary measures in place to protect our protocol and LPs from this sort of price manipulation. Mycelium will be introducing additional measures and parameters to maximise the health of our protocol liquidity, and the safety of our LPs funds.
In the short term, we are going to do the following things:
- Increase the spread on some long-tail assets to reflect existing market conditions on CEX orderbooks;
- Reduce the maximum notional value size for certain long-tail assets (FXS, CRV, and BAL) for the time being;
- Update the bid-ask spread on these market more frequently so that it conservatively reflects CEX liquidity on said asset;
- Decrease the chainlink price-binding threshold to 1.5%;
- Maintain a conservative maxgloballongsize and maxgloballongsize for long-tail assets.
In the medium-long term, the solutions we will look to implement are as follows:
- Introduce the bid-ask spread dynamic, and a function of CEX orderbook depth and/or;
- Make the oracle pricing more robust via pricing it from more CEX venues (and potentially some algorithmic average of sample of CEX prices);
- Make the max position size a function of CEX liquidity.
We will update our community of users with any further updates to our mechanism if we see fit to introduce them.
Never miss an update from Mycelium:
Follow us on Twitter.