Skip to content

Add MIP-X66 - #695

Open
cnobleshriver wants to merge 3 commits into
mainfrom
mip-x68
Open

cnobleshriver wants to merge 3 commits into
mainfrom
mip-x68

Conversation

@cnobleshriver

Copy link
Copy Markdown
Collaborator

Summary

Proposal to implement collateral factor changes as part of Anthias Labs monthly parameter recommendations.

Simulation output

== Logs ==
Creating fork: moonbeam (fork id 0)...
WARNING: moonbeam RPC unavailable; fork id 0 is a placeholder. Proposals with Moonbeam actions will revert.
Creating fork: base (fork id 1)...
Creating fork: optimism (fork id 2)...
Creating fork: ethereum (fork id 3)...
All forks created successfully

--------------- Proposal Description ----------------

MIP-X68: Base and Optimism Collateral Factor Updates

Summary

This proposal implements the collateral factor reductions recommended by
Anthias Labs on September 15, 2026
for WELL, MORPHO, and AERO on Base and VELO on OP Mainnet.

Proposed Changes

Network Market Parameter Current Value Proposed Value
Base WELL Collateral Factor 65% 55%
Base MORPHO Collateral Factor 65% 60%
Base AERO Collateral Factor 65% 60%
OP Mainnet VELO Collateral Factor 62% 60%

----------------- Proposal Actions ------------------
0xe4028eee000000000000000000000000866b838b97ee43f2c818b3cb5cc77a0dc22003fc0000000000000000000000000000000000000000000000000853a0d2313c0000
Proposal type: Optimism

0xe4028eee000000000000000000000000dc7810b47eaab250de623f0ee07764afa5f71ed100000000000000000000000000000000000000000000000007a1fe1602770000
Proposal type: Base

0xe4028eee0000000000000000000000006308204872bdb7432df97b04b42443c714904f3e0000000000000000000000000000000000000000000000000853a0d2313c0000
Proposal type: Base

0xe4028eee00000000000000000000000073902f619ceb9b31fd8efecf435cbdf89e369ba60000000000000000000000000000000000000000000000000853a0d2313c0000
Proposal type: Base

----------------- Proposal Calldata ------------------
0xf272564900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000008800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000098f3c9e6e3face36baad05fe09d375ef1464288b00000000000000000000000098f3c9e6e3face36baad05fe09d375ef1464288b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000404b19a437e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003800000000000000000000000008b621804a7637b781e2bbd58e256a591f2df7d510000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000044e4028eee000000000000000000000000dc7810b47eaab250de623f0ee07764afa5f71ed100000000000000000000000000000000000000000000000007a1fe1602770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e4028eee0000000000000000000000006308204872bdb7432df97b04b42443c714904f3e0000000000000000000000000000000000000000000000000853a0d2313c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e4028eee00000000000000000000000073902f619ceb9b31fd8efecf435cbdf89e369ba60000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000244b19a437e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001c000000000000000000000000017c9ba3fda7ec71ccfd75f978ef31e21927aff3d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ca889f40aae37fff165bccf69aef1e82b5c511b900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044e4028eee000000000000000000000000866b838b97ee43f2c818b3cb5cc77a0dc22003fc0000000000000000000000000000000000000000000000000853a0d2313c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032223204d49502d5836383a204261736520616e64204f7074696d69736d20436f6c6c61746572616c20466163746f7220557064617465730a0a23232053756d6d6172790a0a546869732070726f706f73616c20696d706c656d656e74732074686520636f6c6c61746572616c20666163746f7220726564756374696f6e73207265636f6d6d656e6465642062790a5b416e7468696173204c616273206f6e2053657074656d6265722031352c20323032365d2868747470733a2f2f666f72756d2e6d6f6f6e77656c6c2e66692f742f616e74686961732d6c6162732d7269736b2d706172616d657465722d7265636f6d6d656e646174696f6e732f313735392f3233290a666f722057454c4c2c204d4f5250484f2c20616e64204145524f206f6e204261736520616e642056454c4f206f6e204f50204d61696e6e65742e0a0a23232050726f706f736564204368616e6765730a0a7c204e6574776f726b202020207c204d61726b6574207c20506172616d657465722020202020202020207c2043757272656e742056616c7565207c2050726f706f7365642056616c7565207c0a7c202d2d2d2d2d2d2d2d2d2d207c202d2d2d2d2d2d207c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d207c202d2d2d2d2d2d2d2d2d2d2d2d2d207c202d2d2d2d2d2d2d2d2d2d2d2d2d2d207c0a7c2042617365202020202020207c2057454c4c2020207c20436f6c6c61746572616c20466163746f72207c2036352520202020202020202020207c203535252020202020202020202020207c0a7c2042617365202020202020207c204d4f5250484f207c20436f6c6c61746572616c20466163746f72207c2036352520202020202020202020207c203630252020202020202020202020207c0a7c2042617365202020202020207c204145524f2020207c20436f6c6c61746572616c20466163746f72207c2036352520202020202020202020207c203630252020202020202020202020207c0a7c204f50204d61696e6e6574207c2056454c4f2020207c20436f6c6c61746572616c20466163746f72207c2036322520202020202020202020207c203630252020202020202020202020207c0a000000000000000000000000000000000000000000000000000000000000

Notes

https://forum.moonwell.fi/t/anthias-labs-risk-parameter-recommendations/1759/23


Checklist

General

  • forge build clean (no new warnings)
  • forge test passing locally for new/modified tests
  • npm run lint and npm run prettier clean
  • make slither reviewed (no new findings, or findings justified in PR)
  • Ran @security-auditor agent against new/modified contracts
  • All CI checks green

If this PR adds a new MIP

  • id: 0 set in proposals/mips/mips.json
  • Folder proposals/mips/mip-{chain}{number}/ contains the three required files: .sh, .json, .md
  • .sh sets JSON_PATH, DESCRIPTION_PATH, PRIMARY_FORK_ID
  • New addresses live in proposals/Addresses.sol or chains/*.json — nothing hardcoded
  • Forum discussion linked in the PR body (required for risk-parameter changes and market adds)
  • For cross-chain proposals: simulated on every affected PRIMARY_FORK_ID
  • Wormhole message encoding matches the receiving TemporalGovernor expectations

If this PR modifies existing protocol state (oracle swaps, proxy upgrades, IRM changes, comptroller config)

  • beforeSimulationHook() captures downstream outputs (prices, rates, balances)
  • validate() asserts those outputs are preserved (see MIP-B57 pattern)

Proposal summary bot

  • Reviewed the <!-- proposal-summary --> comment from the Proposal Summary workflow
  • Addressed any flagged gaps or mismatches
  • Deleted the stale comment before pushing changes (forces the workflow to regenerate)

@github-actions

Copy link
Copy Markdown

MIP-X68: Base and Optimism Collateral Factor Updates

Summary

Reduces collateral factors on four volatile-asset markets (Base: WELL, MORPHO, AERO; OP Mainnet: VELO) per Anthias Labs' September 15, 2026 risk recommendation, executed cross-chain from the Ethereum governance hub.

  • Template-only proposal — no .sol file; mips.json points at MarketUpdateV2.sol/MarketUpdateV2Template.json with id: 0, governor: MultichainGovernorV2, proposalType: HybridProposalV2.
  • Base UNITROLLER (0xfBb21d0380beE3312B33c4353c8936a0F13EF26C): MOONWELL_WELL CF → 55% (0.55e18), MOONWELL_MORPHO CF → 60% (0.6e18), MOONWELL_AERO CF → 60% (0.6e18).
  • Optimism UNITROLLER (0xCa889f40aae37FFf165BccF69aeF1E82b5C511B9): MOONWELL_VELO CF → 60% (0.6e18).
  • No reserve-factor changes (reserveFactor: -1 on every entry) and no IRM changes (irm: "", empty irModels[] on both chains) — the template skips both branches.
  • No 1284 block in the JSON, so _hasMoonbeamActions is false and fork 0 is never touched; no Ethereum-side market actions (hub only).
  • x68.sh sets PRIMARY_FORK_ID=3 (Ethereum), matching MarketUpdateV2Template.primaryForkId(); script is 100755 in git, so vm.ffi sourcing works.

Parameter cross-check — all three sources agree:

Chain Market Anthias (post #23, 2026-09-15) x68.md x68.json
Base WELL 65% → 55% 65% → 55% 0.55e18
Base MORPHO 65% → 60% 65% → 60% 0.6e18
Base AERO 65% → 60% 65% → 60% 0.6e18
OP Mainnet VELO 62% → 60% 62% → 60% 0.6e18

Forum source: forum.moonwell.fi/t/anthias-labs-risk-parameter-recommendations/1759/23 (AnthiasLabs, 2026-09-15). The VELO 62% starting point is corroborated in-repo by MIP-X66, which set MOONWELL_VELO CF to 0.62e18.

Recommendation

Ready to execute — parameters match the risk partner's recommendation exactly, and all four actions are asserted in validate(). Non-blocking operational note: the WELL cut is 10pp in a single step, which will immediately push borrowers between 55% and 65% LTV into liquidatable territory. That is the intent of the recommendation, but coordinate the announcement/timing with the community as usual for CF reductions.

Gaps & Issues

No issues found — all onchain actions are validated.

Notes considered and dismissed as non-gaps:

  • Comptroller._setCollateralFactor returns error codes silently instead of reverting (src/Comptroller.sol:907) on unauthorized caller, unlisted market, CF > collateralFactorMaxMantissa (0.9), or zero oracle price. A silent no-op would still be caught: _validateCF asserts markets(mToken).collateralFactorMantissa == expected on the correct per-chain fork, and all four values are ≤ 0.9.
  • Lowering a CF cannot zero out prices, brick a proxy, or change admin/IRM/cap state; no implementation swap or dependency rewiring is involved, so no before/after downstream-output snapshot is needed in beforeSimulationHook.
  • descriptionUri is empty in mips.json — expected for an id: 0 entry; it gets pinned by script/proposals/pin-descriptions.sh before submission.

Verification caveat: this sandbox had no RPC or forge build access, so current on-chain CF values could not be read directly and the simulation was not executed. The audit is static (JSON/MD/template/Comptroller source) plus the forum and MIP-X66 corroboration above. PostProposalCheck will simulate and validate this MIP in CI.

Onchain Actions

# Target Function Validated Test Coverage
1 UNITROLLER (Base) _setCollateralFactor(MOONWELL_WELL, 0.55e18)
2 UNITROLLER (Base) _setCollateralFactor(MOONWELL_MORPHO, 0.6e18)
3 UNITROLLER (Base) _setCollateralFactor(MOONWELL_AERO, 0.6e18)
4 UNITROLLER (Optimism) _setCollateralFactor(MOONWELL_VELO, 0.6e18)

Validation path: MarketUpdateV2Template.validate_validateChainParameterValidation._validateCF, which asserts listed == true and collateralFactorMantissa == expected against the per-chain UNITROLLER. Coverage is via PostProposalCheck.setUp, which runs ProposalMap.runProposal (test/utils/ProposalMap.sol:294) — buildsimulatevalidate — for every id: 0 entry across the integration suite. There is no dedicated x68 test file, consistent with prior market-update MIPs (x66, x63, x61).

@github-actions

Copy link
Copy Markdown
Compiling 4 files with Solc 0.8.19
Solc 0.8.19 finished in 4.22ms
Compiler run successful!
Script ran successfully.
Gas used: 199538684

== Logs ==
  Creating fork: moonbeam (fork id 0)...
  Creating fork: base (fork id 1)...
  Creating fork: optimism (fork id 2)...
  Creating fork: ethereum (fork id 3)...
  All forks created successfully
  

=================== PROPOSAL START ==================

  JSON_PATH=proposals/mips/mip-x68/x68.json DESCRIPTION_PATH=proposals/mips/mip-x68/x68.md PRIMARY_FORK_ID=3 forge script artifacts/foundry/MarketUpdateV2.sol/MarketUpdateV2Template.json
  

--------------- Proposal Description ----------------
 # MIP-X68: Base and Optimism Collateral Factor Updates

## Summary

This proposal implements the collateral factor reductions recommended by
[Anthias Labs on September 15, 2026](https://forum.moonwell.fi/t/anthias-labs-risk-parameter-recommendations/1759/23)
for WELL, MORPHO, and AERO on Base and VELO on OP Mainnet.

## Proposed Changes

| Network    | Market | Parameter         | Current Value | Proposed Value |
| ---------- | ------ | ----------------- | ------------- | -------------- |
| Base       | WELL   | Collateral Factor | 65%           | 55%            |
| Base       | MORPHO | Collateral Factor | 65%           | 60%            |
| Base       | AERO   | Collateral Factor | 65%           | 60%            |
| OP Mainnet | VELO   | Collateral Factor | 62%           | 60%            |

  

----------------- Proposal Actions ------------------

  1). Set collateral factor to 600000000000000000 for MOONWELL_VELO
  target: 0xCa889f40aae37FFf165BccF69aeF1E82b5C511B9
value: 0
payload:
  0xe4028eee000000000000000000000000866b838b97ee43f2c818b3cb5cc77a0dc22003fc0000000000000000000000000000000000000000000000000853a0d2313c0000
  Proposal type: Optimism

  

  2). Set collateral factor to 550000000000000000 for MOONWELL_WELL
  target: 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C
value: 0
payload:
  0xe4028eee000000000000000000000000dc7810b47eaab250de623f0ee07764afa5f71ed100000000000000000000000000000000000000000000000007a1fe1602770000
  Proposal type: Base

  

  3). Set collateral factor to 600000000000000000 for MOONWELL_MORPHO
  target: 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C
value: 0
payload:
  0xe4028eee0000000000000000000000006308204872bdb7432df97b04b42443c714904f3e0000000000000000000000000000000000000000000000000853a0d2313c0000
  Proposal type: Base

  

  4). Set collateral factor to 600000000000000000 for MOONWELL_AERO
  target: 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C
value: 0
payload:
  0xe4028eee00000000000000000000000073902f619ceb9b31fd8efecf435cbdf89e369ba60000000000000000000000000000000000000000000000000853a0d2313c0000
  Proposal type: Base

  

  

----------------- Proposal Calldata ------------------

  0xf272564900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000008800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000098f3c9e6e3face36baad05fe09d375ef1464288b00000000000000000000000098f3c9e6e3face36baad05fe09d375ef1464288b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000404b19a437e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003800000000000000000000000008b621804a7637b781e2bbd58e256a591f2df7d510000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000044e4028eee000000000000000000000000dc7810b47eaab250de623f0ee07764afa5f71ed100000000000000000000000000000000000000000000000007a1fe1602770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e4028eee0000000000000000000000006308204872bdb7432df97b04b42443c714904f3e0000000000000000000000000000000000000000000000000853a0d2313c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e4028eee00000000000000000000000073902f619ceb9b31fd8efecf435cbdf89e369ba60000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000244b19a437e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001c000000000000000000000000017c9ba3fda7ec71ccfd75f978ef31e21927aff3d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ca889f40aae37fff165bccf69aef1e82b5c511b900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044e4028eee000000000000000000000000866b838b97ee43f2c818b3cb5cc77a0dc22003fc0000000000000000000000000000000000000000000000000853a0d2313c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032223204d49502d5836383a204261736520616e64204f7074696d69736d20436f6c6c61746572616c20466163746f7220557064617465730a0a23232053756d6d6172790a0a546869732070726f706f73616c20696d706c656d656e74732074686520636f6c6c61746572616c20666163746f7220726564756374696f6e73207265636f6d6d656e6465642062790a5b416e7468696173204c616273206f6e2053657074656d6265722031352c20323032365d2868747470733a2f2f666f72756d2e6d6f6f6e77656c6c2e66692f742f616e74686961732d6c6162732d7269736b2d706172616d657465722d7265636f6d6d656e646174696f6e732f313735392f3233290a666f722057454c4c2c204d4f5250484f2c20616e64204145524f206f6e204261736520616e642056454c4f206f6e204f50204d61696e6e65742e0a0a23232050726f706f736564204368616e6765730a0a7c204e6574776f726b202020207c204d61726b6574207c20506172616d657465722020202020202020207c2043757272656e742056616c7565207c2050726f706f7365642056616c7565207c0a7c202d2d2d2d2d2d2d2d2d2d207c202d2d2d2d2d2d207c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d207c202d2d2d2d2d2d2d2d2d2d2d2d2d207c202d2d2d2d2d2d2d2d2d2d2d2d2d2d207c0a7c2042617365202020202020207c2057454c4c2020207c20436f6c6c61746572616c20466163746f72207c2036352520202020202020202020207c203535252020202020202020202020207c0a7c2042617365202020202020207c204d4f5250484f207c20436f6c6c61746572616c20466163746f72207c2036352520202020202020202020207c203630252020202020202020202020207c0a7c2042617365202020202020207c204145524f2020207c20436f6c6c61746572616c20466163746f72207c2036352520202020202020202020207c203630252020202020202020202020207c0a7c204f50204d61696e6e6574207c2056454c4f2020207c20436f6c6c61746572616c20466163746f72207c2036322520202020202020202020207c203630252020202020202020202020207c0a000000000000000000000000000000000000000000000000000000000000
  
===================== PROPOSAL END ===================



If you wish to simulate on-chain transactions pass a RPC URL.

@anajuliabit anajuliabit left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — MIP-X68 collateral factor updates

Verdict: merge after fixes. The parameters are right; the open items are process, not numbers.

Verified correct

Read live on-chain while reviewing (Base 8453 / OP 10):

Market Unitroller Current CF on-chain Proposed Calldata word
MOONWELL_WELL 0xdC7810B47eAAb250De623F0eE07764afa5F71ED1 Base 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C 6.5e17 0.55e18 0x…7a1fe1602770000
MOONWELL_MORPHO 0x6308204872BdB7432dF97b04B42443c714904F3E Base 6.5e17 0.6e18 0x…853a0d2313c0000
MOONWELL_AERO 0x73902f619CEB9B31FD8EFecf435CbDf89E369Ba6 Base 6.5e17 0.6e18 0x…853a0d2313c0000
MOONWELL_VELO 0x866b838b97Ee43F2c818B3cb5Cc77A0dc22003Fc OP 0xCa889f40aae37FFf165BccF69aeF1E82b5C511B9 6.2e17 0.6e18 0x…853a0d2313c0000
  • Anthias Labs post #23 (2026-09-15) recommends exactly these four changes and no others — no fifth market, no differing target.
  • Pinned CID matches the markdown byte for byte: sha256 of x68.md re-encodes to bafkreiclk7wvdv5dkngmk5mjtni5ada3vq3zhfdig57zvbmq6zeiq3g35e.
  • JSON shape matches the house convention for MarketUpdateV2Template (x61 / x63): reserveFactor: -1 and irm: "" are the skip sentinels, empty irModels, no 1284 block so _hasMoonbeamActions is false and fork 0 is never touched.
  • x68.sh: shebang at byte 1, mode 100755 in the index, exports JSON_PATH (not MIP_REWARDS_PATH), PRIMARY_FORK_ID=3 = ETHEREUM_FORK_ID, matching MarketUpdateV2Template.primaryForkId().
  • Comptroller._setCollateralFactor fails silently with an error code (no revert) when the underlying price is zero. All four oracles answer non-zero right now — Base WELL 2e15, MORPHO 2.4266e18, AERO 6.4782e17, OP VELO 2.7659e16 — so that branch is not reachable, and _validateCF asserts the stored mantissa afterwards regardless.

Findings

1. Medium — CI has not verified the head commit.
All 13 workflows on 46ec7a55 are action_required. That commit is the pin bot's push with GITHUB_TOKEN, which does not retrigger workflows. The green run is on 078a7fed, which predates the descriptionUri line — and that line is precisely what changes the propose() calldata. Push any commit as yourself (or re-run the checks) so the simulation runs against the head as it will be submitted.

2. Low — the calldata in the PR body is stale.
Its tail decodes to the full markdown, because it was printed before the pin commit landed. With descriptionUri now in mips.json, the template injects ipfs://bafkrei… instead. Do not submit from the hex in the description; regenerate after fix 1.

3. Low — make proposal-sh MIP=mip-x68 will fail as-is.
script/proposals/write-proposal-sh.sh infers the template only for rewards MIPs (via MIP_REWARDS_PATH); otherwise it falls back to ls <dir>/*.sol, and a template-only MIP folder has no .sol. It exits with "cannot infer the proposal .sol". Submit with the template exported:

TEMPLATE=proposals/templates/MarketUpdateV2.sol make proposal-sh MIP=mip-x68

4. Low — PR title says "Add MIP-X66".
This adds MIP-X68; X66 is a different, already-submitted proposal (id 185). A squash merge would land that wrong title in history.

5. Info — the liquidation snapshot ages before execution.
At the 2026-09-15 snapshot the forum measured newly liquidatable exposure as WELL 2 accounts / $34.19, AERO 1 / $150.82, VELO 1 / $2,394.80, MORPHO none. Execution lands roughly five days after submission, so re-measure before executing rather than relying on those figures.

Not verified

No local simulation was run with descriptionUri present — finding 1 is the fix for that. Otherwise the identical file content already passed the full suite on 078a7fed.

@github-actions

Copy link
Copy Markdown
Compiling 4 files with Solc 0.8.19
Solc 0.8.19 finished in 6.72ms
Compiler run successful!
Script ran successfully.
Gas used: 199351977

== Logs ==
  Creating fork: moonbeam (fork id 0)...
  Creating fork: base (fork id 1)...
  Creating fork: optimism (fork id 2)...
  Creating fork: ethereum (fork id 3)...
  All forks created successfully
  

=================== PROPOSAL START ==================

  JSON_PATH=proposals/mips/mip-x68/x68.json DESCRIPTION_PATH=proposals/mips/mip-x68/x68.md PRIMARY_FORK_ID=3 forge script artifacts/foundry/MarketUpdateV2.sol/MarketUpdateV2Template.json
  

--------------- Proposal Description ----------------
 # MIP-X68: Base and Optimism Collateral Factor Updates

## Summary

This proposal implements the collateral factor reductions recommended by
[Anthias Labs on September 15, 2026](https://forum.moonwell.fi/t/anthias-labs-risk-parameter-recommendations/1759/23)
for WELL, MORPHO, and AERO on Base and VELO on OP Mainnet.

## Proposed Changes

| Network    | Market | Parameter         | Current Value | Proposed Value |
| ---------- | ------ | ----------------- | ------------- | -------------- |
| Base       | WELL   | Collateral Factor | 65%           | 55%            |
| Base       | MORPHO | Collateral Factor | 65%           | 60%            |
| Base       | AERO   | Collateral Factor | 65%           | 60%            |
| OP Mainnet | VELO   | Collateral Factor | 62%           | 60%            |

  

----------------- Proposal Actions ------------------

  1). Set collateral factor to 600000000000000000 for MOONWELL_VELO
  target: 0xCa889f40aae37FFf165BccF69aeF1E82b5C511B9
value: 0
payload:
  0xe4028eee000000000000000000000000866b838b97ee43f2c818b3cb5cc77a0dc22003fc0000000000000000000000000000000000000000000000000853a0d2313c0000
  Proposal type: Optimism

  

  2). Set collateral factor to 550000000000000000 for MOONWELL_WELL
  target: 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C
value: 0
payload:
  0xe4028eee000000000000000000000000dc7810b47eaab250de623f0ee07764afa5f71ed100000000000000000000000000000000000000000000000007a1fe1602770000
  Proposal type: Base

  

  3). Set collateral factor to 600000000000000000 for MOONWELL_MORPHO
  target: 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C
value: 0
payload:
  0xe4028eee0000000000000000000000006308204872bdb7432df97b04b42443c714904f3e0000000000000000000000000000000000000000000000000853a0d2313c0000
  Proposal type: Base

  

  4). Set collateral factor to 600000000000000000 for MOONWELL_AERO
  target: 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C
value: 0
payload:
  0xe4028eee00000000000000000000000073902f619ceb9b31fd8efecf435cbdf89e369ba60000000000000000000000000000000000000000000000000853a0d2313c0000
  Proposal type: Base

  

  

----------------- Proposal Calldata ------------------

  0xf272564900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000008800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000098f3c9e6e3face36baad05fe09d375ef1464288b00000000000000000000000098f3c9e6e3face36baad05fe09d375ef1464288b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000404b19a437e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003800000000000000000000000008b621804a7637b781e2bbd58e256a591f2df7d510000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c000000000000000000000000fbb21d0380bee3312b33c4353c8936a0f13ef26c00000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000044e4028eee000000000000000000000000dc7810b47eaab250de623f0ee07764afa5f71ed100000000000000000000000000000000000000000000000007a1fe1602770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e4028eee0000000000000000000000006308204872bdb7432df97b04b42443c714904f3e0000000000000000000000000000000000000000000000000853a0d2313c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e4028eee00000000000000000000000073902f619ceb9b31fd8efecf435cbdf89e369ba60000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000244b19a437e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001c000000000000000000000000017c9ba3fda7ec71ccfd75f978ef31e21927aff3d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000ca889f40aae37fff165bccf69aef1e82b5c511b900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044e4028eee000000000000000000000000866b838b97ee43f2c818b3cb5cc77a0dc22003fc0000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b726569636c6b377776647635646b6e676d6b356d6a746e6935616461337671337a686664696735377a76626d71367a6569713367333565000000000000000000000000000000000000000000000000000000000000
  
===================== PROPOSAL END ===================



If you wish to simulate on-chain transactions pass a RPC URL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants