Facts that happened
At 9:53PM UTC January 3, 2022, strange oracle price behavior was observed on Mirror Protocol. Sudden price change from approximately $477 → $496 occurred within a quick interval of time. This is a 4% increase on the share price. Then immediately after, the price stabilized down to 477 range. This price was fed to Mirror Protocol, and caused all positions within the liquidation threshold at oracle price of $496 / mSPY to get liquidated, including the positions that I was holding.
The current price aggregation logic that we have on Band Protocol’s oracle is designed to receive prices of a stock from multiple data providers including TwelveData and Finage. Band Protocol reports prices based on executed trades, not by what is on orderbook. In this case, the majority of the data providers (3 out of 4 datasources) reported the same exact price at 496.361 (same up to 3 decimal points). By consensus logic based on majority, these prices did happen and considered to be true.
After further investigation with these data providers, we confirmed the below:
- The price reported in pre-/post market hour comes from at least 19 exchanges.
- The specific 496.361 was reported by FINRA/NYSE TRF which aggregates other NYSE markets. Due to the nature of after-market trading, sudden spike in price was caused due to an executed trade with 496.361 price. This execution led to data providers reporting price to Band Protocol as valid prices.
Mirror and Band worked as they were designed, not as they should have been designed. I have been actively in touch with the mirror dev team and they share the same opinion, this event is unacceptable and shouldn’t have happened. $496.361 wasn’t an acceptable/representative price, other exchanges had spy for sale in the $477 range at that exact time, but an actual trade just didn’t happen at any other exchange that bleep of a second and Band is getting prices from actual trades, not what is on the order books. After discussion with the Mirror dev team (and their communication with Band) they are working as fast as they can on modifications to the mirror protocol to prevent such an incidence happening ever again. Their first idea is to implement a time interval buffer before liquidation, although there are other options available (and I proposed some to them). Main line – an update to mirror is coming soon to fix this issue long term, mirror dev team didn’t expect this happening but after the incident of course realized it did happen and doesn’t think it’s ok and is working on proposing adjustments for this reason. Of course, the only way to get these changes finally implemented will be through a community agreement.
Impact on me personally
I lost around 300,000 UST with this incident, the majority of my life savings just disappeared in 1 second and this has been a big disaster for me. I had a bunch of SPY shorts (+1 million USD in equity shorted) that got liquidated that 1 second, that wouldn’t have been liquidated if reasonable SPY values would have been reported by Bands oracle or if mirror had some other mechanism to prevent this liquidation from happening. I am completely devastated, I’m a long term believer in mirror and had close to all my lifesavings in it.
What do we do?
I wanted to share this story with the community, because no official announcement has been made. All of the above information was given to me by the dev team and they are ok with me sharing this information on this forum. It’s tough for them too and I understand that this is putting them under pressure to get adjustments proposed so this won’t happen again. I can only be saying thank you to the dev team for their clear communication and timely updates towards me while they were figuring out what exactly happened. They have handled the case professionally and would like to say thank you for that.
Of course the whole protocol is in the hands of the community now and I can’t expect any direct financial aid from them directly. The only way for the mirror community to help out affected users would be to run a poll to spend community pool money to compensate affected users. As far as I know I personally am by far the most impacted, but there must be some other people that got affected too. What do you think after reading this, what do you feel should happen? I really appreciate any input and hope to get things cleared up here. I’m really hoping to get compensated for this incident and mirror to keep improving and growing. This is a loss, but it’s also a good thing we caught it now and gives mirror an opportunity to permanently fix this. Better losing a couple $100,000’s instead of millions or billions as a community.
The block that includes the majority of these liquidations: Terra Finder
Some examples of my position liquidations can be found here: