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.
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:
The supply rate is not attractive for lenders, or too low for borrowers
Rewards are too aggressive or more attractive than comparable markets
2. If utilization is significantly less than kink, explore following factors:
Borrow cap is reached
Borrow rate is not attractive for borrowers
Rewards are not competitive compared to equivalent markets.
Reserve factor makes rates unattractive
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