Checks to be Assesed on Governance Parameters Changes
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:
2. If utilization is significantly less than kink, explore following factors:
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:
2.1 Rewards incentivize desired behaviors
Validate that rewards are being distributed to markets that are relevant.
Adjust supply and/or borrow reward rates.
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.
4.1 Small liquidations can be successfully executed
For every market, validate that a 100$ liquidation can be profitably executed given:
Increase the close factor up until liquidation can be processed profitably.
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:
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.
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:
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:
Run another simulation:
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:
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:
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
7.1. Protocol short exposure to underlying assets is manageable
For every market, test the following
Decrease the borrow cap liquidity and slippage to buy the asset has materially deteriorated.