Explanation of Methodology to Calculate the Impact of MIP-14 on Moonwell Users

Context

MIP-14 was passed via governance and executed on block 3260087:

  • This mistakenly set a protocol parameter called the “collateral factor” almost to 0 (6400 instead of 0.64e18)
  • The collateral factor determines if your position is eligible for liquidation, as this is used to calculate the health factor of the account
  • A collateral factor near 0 caused the protocol to allow users to be liquidated, who otherwise had well funded accounts, because it effectively discounted the borrowing power enabled by USDC collateral deposits by over 99.9%.

The Example

Let’s take a look at an example user. For User 0x7f0759cb20de8c7a996db6f6c12b33314d0379c3:

  1. They deposited funds into Moonwell, including USDC collateral
  2. MIP-14 passed, discounting that collateral and making the account eligible for liquidation
  3. The account was liquidated a little over an hour later

The liquidation had the following impact:

*USD Prices for xcKSM are derived from CoinGecko by utilizing the max open and closing price for Dec 25th.

When liquidations occur in Moonwell, liquidators are sold that collateral at a 7% discount, while an additional 3% also goes to the protocol reserves, which is called the “protocol seize share”. This results in 10% of the liquidated amount being paid as a “liquidation penalty” in total. This occurred in two steps as shown in the on-chain transaction:

  1. The liquidator repaid 11.82 xcKSM at a price of $23.60 = $297.15

  2. This account has ~30.14 xcKSM in borrows left

  3. The liquidator seized $316 of USDC

This results in the following:

  1. 0x7f0759cb20de8c7a996db6f6c12b33314d0379c3 is out $29
  2. A liquidator has $21
  3. The protocol reserves have 8$

We determine the customer impact to be the amount of liquidation penalties paid, in this case - $29.

That is to say - Gauntlet calculates the customer impact as the liquidation incentive calculated from the repayment amount (debt owed) during the liquidation event.

Gauntlet is working to return funds that are equal to the amount of impact per user. As 30% of these funds went to the reserve, we are going to submit a governance proposal to return those funds directly to users.

Gauntlet plans pay the remainder which is equivalent to the liquidator payout ($21). This, plus plus the money returned from the reserve should sum to the total user impact. This is equal to 10% of borrows repaid in the liquidation.

Hopefully this helps the community understand what happened and how we calculated the impact.

5 Likes

Very helpful. Thank you.

We also wanted to share a list of user liquidations as well. These are available on-chain, but it’s hard to find the transactions where your account was liquidated on Moonscan.

If anyone is interested in looking into this further, we thought this would help.

1 Like