Methodology

Checks to be Assesed on Governance Parameters Changes

Governance Parameters Validation Checklist

Every two weeks after Gauntlet’s parameter update we’ll run the following tests to validate the robustness of the Moonwell’s governance parameters. We’ll also run 3 price changes scenarios based on historical VaR to identify key risks in the system.

TestMethodologyActionable items

Interest Rate Model

1.1 Market utilization is optimal

For every market, given normal market conditions, validate that utilization is equal or below the kink.

1. If utilization is greater than kink, explore the following factors:

  1. The supply rate is not attractive for lenders, or too low for borrowers

  2. Rewards are too aggressive or more attractive than comparable markets

2. If utilization is significantly less than kink, explore following factors:

  1. Borrow cap is reached

  2. Borrow rate is not attractive for borrowers

  3. Rewards are not competitive compared to equivalent markets.

  4. Reserve factor makes rates unattractive

  5. Borrow demand for specific asset is inelastic (not much to do in that case)

Cause of sub-optimal market utilization is often multifactorial. Best way to address the issue differs on a case by case basis.

Here’s a list of possible actions:

  • Adjust interest rate model to move utilization closer to kink.

  • Adjust rewards rates (see test 2.1).

  • If the borrow cap is reached, increase the borrow cap within risk tolerance (see test 7.1).

  • Reduce reserve factor (see tests 3.1 and 3.2)

Rewards Rates

2.1 Rewards incentivize desired behaviors

Validate that rewards are being distributed to markets that are relevant.

  • Validate the borrow and supply activity

  • Interest rates including rewards need to remain competitive with comparable markets on equivalent protocols or similar assets.

Adjust supply and/or borrow reward rates.

Reserve Factor

3.1 Lending / borrowing rates are competitive

Compare lending rate, borrowing rate, utilization and market size with comparable markets (i.e USDT vs other stablecoins).

Make sure equivalent markets are in line with each other in risk / reward terms.

Reduce or increase the reserve factor to match comparable markets

3.2 Protocol reserves are sufficient to protect protocol against bad debt

Volatile and illiquid markets should have higher reserve factors than stable markets to compensate the DAO for the additional risks.

Adjust reserve factors.

Close Factor

4.1 Small liquidations can be successfully executed

For every market, validate that a 100$ liquidation can be profitably executed given:

  • Worst case historical gas price

  • Current or proposed liquidation incentive

  • Current or proposed close factor.

Increase the close factor up until liquidation can be processed profitably.

Liquidation Discount

5.1 Worst case historical liquidation scenario can be executed profitably in under 60 min for all markets.

For every market, validate that the worst time to liquidation is lower than 60 min by running a liquidation backtesting simulation.

Liquidation backtesting input parameters:

  • Protocol: Moonwell Artemis or Moonwell Apollo

  • Asset: Underlying asset of concerned market

  • Period: Largest time period where market conditions are comparable to current. (i.e pre-shanghai historical data for LSD assets might not be relevant)

  • Liquidation size: Sum of top 5 collateral positions for market.

  • Conditional price change: Optional - Useful to scope down liquidation cost statistics to relevant downturn events and make simulation faster to run. Suggested: -5%

  • Liquidation discount: Current or proposed liquidation discount.

Increase liquidation discount so that liquidation can be processed in less than 60 min. If the worst time to liquidation for a given asset is far superior than others, review the asset’s collateral factor.

Collateral Factor

6.1 The collateral factor gives the protocol sufficient room to wait for 60 min to execute a liquidations profitably without incurring bad debts even if the collateral assets decrease by the max drawdown

For every concerned market, validate that (1 - collateral ratio) covers the sum of following values at minimum:

  • Max drawdown for the duration of the worst case liquidation scenario identified at test 5.1

  • Liquidation incentive

Decrease proposed collateral factor to cover total liquidation cost

6.2 Parameter change doesn’t make any account liquidatable

Validate no account is liquidatable by running a collateral at risk simulation with following inputs:

  • Proposed collateral ratio for all markets.

  • Small asset prices decrease (-2%) across all collateral assets.

Run another simulation:

  • Proposed collateral ratio for all markets.

  • Small asset prices increase (+2%) across all debt assets.

Increase proposed collateral factor to avoid liquidations

6.3 Parameter change doesn’t make any account liquidatable (on-chain)

On a local network fork, get the current liquidity for all accounts, then run the following simulation to evaluate system state after proposal is applied:

Simulation #1

  • Apply proposed parameter changes

  • Force a small decrease in oracle prices for concerned markets

Simulation #2

  • Apply proposed parameter changes

  • Force a small increase in oracle prices for concerned markets

Validate accounts remain liquid in both cases

Increase proposed collateral factor to avoid liquidations.

Reach out to the community to inform them to close their borrow positions.

6.4. Parameter changes do not increase market risk exposure beyond desired level

Run Collateral at risk simulations with and without proposed parameter changes for the following scenarios:

  • Collateral assets 5% historical VaR (excl. stables)

  • Borrow assets 5% historical VaR (excl. stables)

  • Stablecoin depeg

Make sure the risk exposure on the short and long side is within desired risk tolerance level if applicable.

Increase proposed collateral factor to maintain risk exposure within tolerance

Borrow Cap

7.1. Protocol short exposure to underlying assets is manageable

For every market, test the following

  • Slippage for trading 100% of borrow cap to stables

  • Slippage for trading the current total borrow to stables

  • Trade size to reach 5% slippage in one trade

Decrease the borrow cap liquidity and slippage to buy the asset has materially deteriorated.

Last updated