mFB liquidation (unexpected)

Oracle price here at $290.18 : Terrascope

You can find a similar post from me a few months back. I was really annoyed but still wanted to use the protocol. I didn’t’ see how I could use it with these liquidations. Since then I have studied how liquidations happen and build a system to ensure I do not get liquidated. Since I have put the system in place I have not been liquidated and run low collateral ratios. Basically I am able to get prices a few blocks ahead of the oracle and automatically trade my positions before the oracle can get its price. It has made around 50 or so trades for me in the past month. In addition, with the mKO craziness going on, I decided to start liquidating myself. It is very profitable on the mKO positions since they are at a discount. Once an asset is trading above 20% premium it is no longer profitable. You didn’t loose as much on mNLFX because it was already at a premium.

Liquidations are sort of ridiculous and debated if I should even post this. With $5k you can liquidate a $100k account because you just loop the collateral around for more liquidation.

I have an idea to fix the liquidation issue for every one. It if I am motivated enough it would take a couple of months to release a product.

I don’t really know now you can use mirror without some version of the tools I built. If you have a large amount invested and are interested in paid consulting let me know. You can take the tools I built and run them for yourself. I have put months of work into them and you would stop me from liquidating your account so I don’t expect to give it away.

Otherwise I recommend only shorting the assets above 20% premium. If someone liquidates you then they are doing you a favor. For fun I ran some positions under 150% so see if a liquidator would fall for it. They didn’t.


Good catch. This isn’t the “price feeder” which I though the prices come through. So I guess the oracle price is updated thought something else as well/instead? This is definitely a problem/bug.

1 Like

I think the feeder you are looking at is no longer used. The price I send a link to a via the band protocol which is used via a few proxies.

Oracle update: [Features] New oracle integration + New admin manager contract by csanti · Pull Request #81 · Mirror-Protocol/mirror-contracts · GitHub

Band protocol info: GitHub - bandprotocol/cosmwasm-std-reference-doc

Here is the next price a few blocks later. back to 201. Very annoying. I think it was a real trade though. At least I see it reported else where. I don’t understand why a trade was that high though.

NASDAQ page for FB doesn’t show any abnormal prices…

Compare it to this screenshot from a previous incident like that (with PYPL), where the spike was shown on NASDAQ - Don't liquidate outside regular trading hours - #11 by FreddieChopin

Google spotted it:

It is also here

Page 2:

Page 3:

Page 4:

A lot of trades with absurd prices on pages 2-4 in this timeframe.

I just opened a short position on mFB when the premium hit attractively high around 20%, and soon got liquidated by a single after-hour trade. …What a life.

I’ve been liquidated aswell. 50k Collateral, Liquidator bought back the Shares for 42% Premium… Guess who had to pay for that. Thats more than 35% Loss on my Collateral all in all

How can that even be possible? Why is there no mechanism to filter such single nonsense Trades… Thats way to easy to manipulate

Do you think there is a way to reimburse for these unfair losses?


In the past, some one with mSPY position got liquidated with similar error, but he was running at only 4% margin (i.e, 134% collateral on 130% MCR).

However, in mFB case, the error was a 45% price spike. That means unless you have a collateral ratio above 217.5%, you would got liquidated.

1 Like

Yes, the reason why the guy with mSPY did not get reimbursed for that error was because he kind of provoked that liquidation with such low margin… I know there can be deviations, but 45%…i mean come on, i lost a years rent in that crap that is just unfair

1 Like

Got liquidated too, with close to 200% collateral. If this was a problem with the Oracle (which it doesn’t seem that way from previous posts), then we should expect and demand reimbursement. If everything worked as ir should, then we need a gov prop to change this, because i feel this kind of liquidations ultimately hurt the very core of Mirror Protocol.


I believe preventing this type of false liquidation would be the most urgent item for the Mirror protocol now. If the people lose the confidence to mint mAssets, then the protocol would be over.

1 Like

I’m just waiting for the day when i get liquidated off this crap. I think the easiest short term solution is to stop AH liquidations/minting.


I agree this does have to be fixed. The easiest solution I can think of for a market efficient liquidation would work like this.

Liquidations happen in two steps that last 30 minutes. First a liquidator submits a bid for liquidation. During the next thirty minutes other liquidators can submit lower bids. By lower bid, I mean a lower discount rate. Also, the position owner can address the issue. Any time after 30 minutes the liquidators can liquidate and collect collateral. At any point during that 30 minutes if the position is above the collateral ratio then the whole thing is canceled. Even if you didn’t catch it during the 30 minutes the liquidators have bid down where you are not losing very much. When a liquidator submits a bid they have to supply the asset which is returned if they are outbid or it gets canceled. This keeps the overall position collateralized either from the owner or liquidators.

You can see how other tools from other parties can be built on top. A bot to send you a telegram message for example.

I also think this would help with the premiums as it would be lower risk to hold a short. Every one should vote on poll 261 btw. I think it is import to help stabilize prices.


Sounds interesting, but requires more dev work?

Like my Robot Mirror Treasury slowing liquidating violated MCR positions. (discord)

‘Fast’ Solutions:

Turn off Oracle during extended hours.

Require a position to violate MCR for 4 oracle updates in a row before liquidation can occur.

It is worth noting that in case of this particular event, there were like a dozen trades with abstract prices and this situation lasted for 2 minutes. There were other trades with “normal” prices in-between the crazy ones. Possibly there were more such trades, but I checked only these 5 pages of NASDAQ linked above.

But we had “normal” price updates in between?
That is what I was thinking about with the “In-a-row” suggestion.
4 could be whatever number makes sense.

This seems urgent enough that any solution that can be done in a short time frame, should be done.

I would have to review but I don’t think your solution is as easy as it sounds. I do not think it is easy to query “4 updates in a row”. The query returns one price and a last updated value. You can not get historical prices from the contract that I know of. Let me know if I am wrong though.

Also, how do you get a good definition of extended hours in a contract on chain?