Polygon dead-oracle legacy markets (cxETH, cxADA, cxDOGE, CEL, FXS, dQUICK)1.2% of debt
Six Celsius-era and delisted-collateral Polygon markets totalling 25,116.32 MAI of debt at block 91674649 whose price sources all revert: cxETH 10,073.79 MAI, cxADA 12,434.00 MAI, cxDOGE 2,594.53 MAI (CelsiusX wrappers, collateral devalued after the Celsius collapse), CEL 2.79 MAI, FXS 8.81 MAI (Chainlink FXS/USD proxy retired), dQUICK 2.40 MAI (inner QUICK/USD source 0xa058689f4bCa95208bba3F265674AE95dED75B6D reverts). With the price call reverting, liquidation, withdrawal, and borrowing are all bricked; this is un-liquidatable bad debt.
Polygon WETH vault (current)Single-source / laggy1.05% of debt
22,106.00 MAI of debt across 6 vaults at Polygon block 91674649, collateralized by 19.48 WETH (~$37k), priced directly by Chainlink ETH/USD on Polygon with no staleness check and no fallback in the vault contract.
Avalanche legacy markets (BTC, Moo Aave AVAX, AVAX, ETH)Single-source / laggy1% of debt
Four debt-bearing Avalanche markets totalling 21,010.69 MAI at block 92345222. The BTC vault (0x1f8f7a1d) holds 20,264.24 MAI across 2 vaults against 1.90 BTC (~$124k) priced directly by Chainlink BTC/USD; Moo Aave AVAX (0xfA19c1d1) holds 738.92 MAI on a QiDao composite whose inner priceSource is Chainlink AVAX/USD; AVAX and ETH residue is dust. All feeds live; no staleness checks; no fallback.
Polygon Gains gDAI vaultSingle-source / laggy0.36% of debt
7,566.87 MAI of debt across 11 vaults at Polygon block 91674649, collateralized by 7,708 gDAI (~$9.2k). The price source is a QiDao composite (0x853df00A) over Chainlink DAI/USD on Polygon with the gDAI share price; no staleness check and no fallback in the vault contract.
Polygon wstETH vaultSingle-source / laggy0.18% of debt
3,808.59 MAI of debt across 9 vaults at Polygon block 91674649, collateralized by 3.63 wstETH (~$8.6k). The price source is a QiDao composite (0xb057c5d7) over Chainlink ETH/USD on Polygon with the stETH/wstETH rate; no staleness check and no fallback in the vault contract.
Base WETH vaultSingle-source / laggy0.12% of debt
2,424.77 MAI of debt across 39 vaults at Base block 49713844, collateralized by 164.14 WETH (~$315k), priced directly by Chainlink ETH/USD on Base with no staleness check and no fallback in the vault contract.
Base cbETH vaultSingle-source / laggy0.09% of debt
1,815.46 MAI of debt across 5 vaults at Base block 49713844, collateralized by 11.36 cbETH (~$25k). The price source is a QiDao composite (0x5e5CcE0a) referencing the Coinbase cbETH exchange-rate oracle; the vault consumes the answer with no staleness check and no fallback.
Polygon MaticX vaultSingle-source / laggy0.07% of debt
1,424.56 MAI of debt across 2 vaults at Polygon block 91674649, collateralized by 26.24 MaticX. The price source is a QiDao composite (0x271ad427) over Chainlink's calculated MaticX/USD feed; no staleness check and no fallback in the vault contract.
Moonbeam GLMR vault (oracle dead)0.07% of debt
1,494.39 MAI of debt across 31 vaults at Moonbeam block 16774912 whose price source 0x4497B606be93e773bbA5eaCFCb2ac5E2214220Eb reverts latestRoundData, so getEthPriceSource() reverts: liquidation, withdrawal, and borrowing are all bricked and the debt is frozen in place.
Gnosis legacy markets (WETH, GNO)Single-source / laggy0.06% of debt
Two debt-bearing Gnosis markets totalling 1,280.81 MAI at block 47624593, both priced directly by single Chainlink feeds (ETH/USD, GNO/USD) with an unusually small liquidation slice (debtRatio=10, so each liquidation repays only 10% of a vault's debt). No staleness checks; no fallback.
Linea legacy markets (WBTC, WETH)Single-source / laggy0.05% of debt
Two debt-bearing Linea markets totalling 998.53 MAI at block 31656634, both priced directly by single Chainlink feeds (BTC/USD, ETH/USD) that were live at the observed block. No staleness checks; no fallback.
Polygon stMATIC vault (current, oracle dead)0.03% of debt
719.60 MAI of debt across 28 vaults at Polygon block 91674649 in the newer stMATIC market (0x9A05b116), whose composite price source 0x1526f06F8938c9E622f57e960B89eBC3C587A9bD wraps the legacy stMATIC source 0x97371dF4492605486e23Da797fA68e55Fc38a13f, and that inner source reverts, so getEthPriceSource() reverts: liquidation, withdrawal, and borrowing are bricked despite this being a 'current' wind-down-era market.
Arbitrum legacy markets (WETH, gDAI, WBTC)Single-source / laggy0.03% of debt
Three debt-bearing Arbitrum markets totalling 633.92 MAI at block 492493585: WETH (0xC76a3cbe, 301.88 MAI) and WBTC (0xB237f426, 9.12 MAI) priced directly by Chainlink ETH/USD and BTC/USD; Gains gDAI (0xd3712818, 322.92 MAI) on a QiDao composite (0x759D0e86) whose inner priceSource is Chainlink DAI/USD on Arbitrum. All feeds live; no staleness checks; no fallback.
BSC legacy markets (CAKE, BNB, DODO)Single-source / laggy0.02% of debt
Three debt-bearing BSC markets totalling 488.66 MAI at block 114793445: CAKE (0x014a177e, 39.88 MAI) and BNB (0xa56f9a54, 436.08 MAI) priced directly by live single Chainlink feeds; DODO (0x7333fd58, 12.70 MAI) has a dead price source (0x87701B15 reverts) and is frozen.
Polygon legacy wind-down markets (WETH, LINK, AAVE, CRV, WBTC, BAL, GHST, SAND, WPOL)Single-source / laggy0.01% of debt
Nine legacy Polygon markets under wind-down parameters (minimum collateral 591%-50000%, debtRatio=1 full-debt repayment, 1% bonus) totalling 257.91 MAI of residual debt across 1,986 debt-bearing vaults at block 91674649. Eight markets read live single Chainlink feeds (ETH/USD, LINK/USD, AAVE/USD, CRV/USD, WBTC/USD, BAL/USD, SAND/USD, MATIC/USD); GHST reads a QiDao custom source (0xd56E523d, live, internals not decoded). These are legacy v1 markets including the WETH vault 0x3fd939B0 recorded in this repo's mintAuthority evidence; residual debt is dust-sized but the markets remain live and liquidatable.
Polygon Arrakis MAI/DAI LP vaultSingle-source / laggy0.005% of debt
101.00 MAI of debt across 2 vaults at block 91674649, collateralized by Arrakis MAI/DAI LP tokens (RAKIS-37). The price source is a QiDao custom LP oracle (0xe6e55351) whose internals were not decoded; it answers live ($0.0112 per LP token). Notably this market prices a MAI-paired LP, so the collateral value partially references MAI's own soft-pegged price.
Polygon camWMATIC vault (legacy, wind-down)Single-source / laggy0.003% of debt
The camWMATIC vault recorded in this repo's mintAuthority evidence holds 71.86 MAI of residual debt across 159 vaults at block 91674649 under wind-down parameters (minimum collateral 10000%, full repayment, 1% bonus). The price source is a QiDao composite (0x7791b9d7) over Chainlink MATIC/USD with the camWMATIC/amWMATIC exchange rate; live and liquidatable, no staleness check, no fallback.
Polygon Stake DAO am3CRV vault (wind-down)Single-source / laggy0.0004% of debt
8.27 MAI of residual debt across 9 vaults at block 91674649 under wind-down parameters (minimum collateral 10000%, full repayment, 1% bonus), collateralized by sdam3CRV (Stake DAO Curve aave-stable LP). The price source is a QiDao custom 18-decimal oracle (0x56Ca9B7a) whose internals were not decoded; it answers live ($1.23).
Fantom legacy markets (15 debt-bearing, all oracles dead)
Each vault's ethPriceSource reverts latestRoundData at the observed block: FTM 0xf4766552D15AE4d256Ad41B6cf2933482B0680dc, yvWFTM 0x530CD67a5898A20501cFcf74a3C68e21831d744c, yvDAI 0x3667ab1ebC668A3456a84A8371Db3f222eB4AF89, ETH 0x11DdD3d147E5b83D01cee7070027092397d63658, BTC 0x8e94C22142F4A64b99022ccDd994f4e9EC86E4B4, LINK 0x221C773d8647BC3034e91a0c47062e26D20d97B4, Moo Scream FTM 0xb01daa872E8eB0a203c5c890366dfa76113f7c76, Moo Scream WETH 0xef79b4c52Ec3b73838f6C3912fD9F81cC57E5eE9, Moo Scream BTC 0x53E71369490320123fa94c4813d8a711EF399457, Moo Scream LINK 0x266A781E42e91Bbb7b378E2971F71047C849f8dc, Moo Scream DAI 0x553e4595c8cc8e67bf396b0d31dBA48D204BCe9f, yvETH 0x425eA1422DBF9764D9f84e6d581c3e0187C5A340, yvBTC 0x654CF56E6e7d2bD2d81863e0F14840B741a16710, Moo BIFI 0xef00213d0409bd3bBB382D64bc43124faC9C5650, Moo Boo BTC-FTM 0x204B06f2Aa4a4d2C4D34A747E56919AE10B46905 · Dead Fantom price sources (Chainlink-retired and QiDao custom) · fantom
WFTM (vault 0x1066b8FC999c1eE94241344818486D5f944331A0) · MCR 130% · debtRatio=10 (liquidator repays 10%), gainRatio=1100 (10% bonus); 79 vaults with debt totaling 62.93 MAI.
yvWFTM (vault 0x7efB260662a6FA95c1CE1092c53Ca23733202798) · MCR 135% · debtRatio=10, gainRatio=1100; 84 vaults with debt totaling 117.17 MAI.
yvDAI (vault 0x682E473FcA490B0adFA7EfE94083C1E63f28F034) · MCR 10000% · Wind-down parameters: debtRatio=1 (full repayment), gainRatio=1050 (5% bonus); 90 vaults with debt totaling 240,944.14 MAI.
ETH (vault 0xD939c268C49c442F037E968F045ba02f499562D4) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500 (50% bonus); 7 vaults with debt totaling 4,391.29 MAI.
BTC (vault 0xE5996a2cB60eA57F03bf332b5ADC517035d8d094) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 30 vaults with debt totaling 1,001,100.56 MAI, the single largest debt-bearing QiDao market observed anywhere.
LINK (vault 0xd6488d586E8Fcd53220e4804D767F19F5C846086) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 18 vaults with debt totaling 9.43 MAI.
Moo Scream FTM (vault 0x3609A304c6A41d87E895b9c1fd18c02ba989Ba90) · MCR 135% · debtRatio=10, gainRatio=1100; 41 vaults with debt totaling 111.39 MAI.
Moo Scream WETH (vault 0xC1c7eF18ABC94013F6c58C6CdF9e829A48075b4e) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 6 vaults with debt totaling 21,812.25 MAI.
Moo Scream BTC (vault 0x5563Cc1ee23c4b17C861418cFF16641D46E12436) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 50 vaults with debt totaling 69,528.16 MAI.
Moo Scream LINK (vault 0x8e5e4D08485673770Ab372c05f95081BE0636Fa2) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 5 vaults with debt totaling 8.31 MAI.
Moo Scream DAI (vault 0xBf0ff8ac03f3E0DD7d8faA9b571ebA999a854146) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1200 (20% bonus); 41 vaults with debt totaling 29,531.94 MAI.
yvETH (vault 0x7aE52477783c4E3e5c1476Bbb29A8D029c920676) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 1 vault with debt totaling 1,323.00 MAI.
yvBTC (vault 0x571F42886C31f9b769ad243e81D06D0D144BE7B4) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1500; 19 vaults with debt totaling 136,734.08 MAI.
Moo BIFI (vault 0x75D4aB6843593C111Eeb02Ff07055009C836A1EF) · MCR 700% · Raw _minimumCollateralPercentage=700; debtRatio=1, gainRatio=1500; 15 vaults with debt totaling 1.20 MAI.
Moo Boo BTC-FTM LP (vault 0xF34e271312e41Bbd7c451B76Af2AF8339D6f16ED) · MCR 10000% · Wind-down: debtRatio=67 (liquidator repays ~1.5%), gainRatio=1500; 4 vaults with debt totaling 19.75 MAI.
Designed mechanism (currently inoperative): permissionless partial liquidation via liquidateVault(), any MAI holder repays 1/debtRatio of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 at the oracle price. In practice no liquidation can execute on Fantom because the oracle call itself reverts. Re-proved by direct eth_call at Fantom block 122814200 (2026-08-09) against the BTC vault 0xE5996a2c, corroborated byte-identically on a second endpoint (rpc.fantom.network): stabilityPool() is the zero address and liquidateVault(uint256) is present in the deployed bytecode, so liquidation is permissionless and dispatchable, and vault 34 is a live position (ownerOf 0xd53064c88994119c281cc9e66c01a669e4a7715d, 0.00055772 BTC collateral, 6.652475 MAI debt), yet checkCollateralPercentage(34), checkLiquidation(34), and liquidateVault(34) all revert with empty return data, while ownerOf(999999) on the same contract still returns its ERC721 revert string, placing the failure inside the price read rather than in any require. liquidationDelaySec is deliberately left unrecorded on this branch: erc20Stablecoin.liquidateVault contains no delay, grace-period, auction, or timestamp term at all (source re-read 2026-08-09), so the branch has no positive delay to report, but liquidation here is uncallable at every block. That creates an unbounded wait the schema's non-negative-integer field cannot express. Recording 0 would render as 'liquidation delay: none' on a branch where liquidation cannot execute. · liquidation delay uncallable (reviewed)
No protocol backstop: stabilityPool is the zero address on the observed deployments and there is no stability pool, insurance fund, or committed bad-debt buyer. QiDao historically settled Multichain-era bad debt ad hoc from the DAO treasury on Polygon ($668k, per DL News); the Fantom residue (~1.51M MAI) remains unsettled with the chain's tokens in dispute.
None, and the failure is live: every ethPriceSource reverts, so getEthPriceSource() reverts and every price-dependent path (liquidation, withdrawal, new borrows) is bricked on all 19 probed Fantom vaults. The vault contract has no staleness fallback or alternate feed even when sources are alive; the only remedy is the owner-gated changeEthPriceSource, which has not been exercised on Fantom.
The vault contract defines no global shutdown, settlement, or debt-socialization path. On Fantom the entire deployment is de facto frozen: dead oracles brick liquidation, withdrawal, and borrowing, and the recorded bad debt (Multichain-era, collateral devalued) remains on the books indefinitely. QiDao's site says Fantom tokens 'return to holders once its dispute is resolved', an off-chain process, not a contract mechanism.
Ethereum legacy markets (WETH, cbETH, LDO)
WETH vault reads Chainlink ETH/USD proxy 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 directly; live at the observed block ($1,919.95). · Chainlink ETH/USD (Ethereum) · ethereum
cbETH vault source 0xD795b83afDBCaDdc43F5bc1eF8E1970Bbda4E03a: underlying()=cbETH 0xBe9895146f7AF43049ca1c1AE358B0541Ea49704, token()=0xF017fcB346A1885194689bA23Eff2fE6fA5C483b (Coinbase exchange-rate oracle surface); live at $2,178.22. Exact USD leg not decoded from bytecode. · QiDao cbETH composite (custom, internals getter-verified) · ethereum
LDO vault source 0xf84b454Fd48C777b21Dd09B33538cBBdbE88F52c: token()=0x4e844125952D32AcdF339BE976c98E22F6F318dB; live at $0.2939 (LDO). Composition not decoded from bytecode. · QiDao LDO composite (custom, internals not decoded) · ethereum
WETH (vault 0x98eb27E5F24FB83b7D129D789665b08C258b4cCF) · MCR 120% · debtRatio=2 (liquidator repays 50%), gainRatio=1100 (10% bonus), closingFee=0; 1 vault with debt totaling 266,513.35 MAI against 64.5 WETH collateral, underwater and structurally un-liquidatable (payout underflow).
cbETH (vault 0x4ce4C542D96Ce1872fEA4fa3fbB2E7aE31862Bad) · MCR 125% · debtRatio=2, gainRatio=1100, closingFee=0; 1 vault with debt totaling 12,390.82 MAI against 3.47 cbETH.
LDO (vault 0x954ac12c339c60eafbb32213b15af3f7c7a0dec2) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=0; 1 vault with debt totaling 27,009.29 MAI against 14,710.79 LDO (~$4.3k), underwater.
Permissionless partial liquidation via liquidateVault(): when a vault's oracle-priced collateral ratio falls below _minimumCollateralPercentage, any MAI holder repays 1/debtRatio (50%) of the debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. Deeply underwater vaults cannot be liquidated: the collateral extraction underflows SafeMath and reverts, so the recorded bad debt persists. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block, so liquidations rely entirely on external MAI holders; there is no stability pool, insurance fund, or committed bad-debt buyer. Past bad debt was settled ad hoc from the DAO treasury (2023 Polygon settlement), not by a standing mechanism.
No fallback. The vault contract reads only the answer field of ethPriceSource.latestRoundData() through the PriceSource interface; updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. Underwater debt (observed: 266.5k MAI in the WETH market, 27.0k MAI in the LDO market) remains on the books indefinitely; owners can only force liquidatability of healthy positions by raising _minimumCollateralPercentage (the wind-down pattern used on Polygon/Fantom), which does nothing for positions whose collateral is already insufficient.
Metis legacy markets (METIS x2, WETH, WBTC)
Both METIS vaults read Chainlink METIS/USD proxy 0xD4a5Bb03B5D66d9bf81507379302Ac2C2DFDFa6D directly; live at the observed block ($2.52). · Chainlink METIS/USD (Metis) · metis
WETH vault reads Chainlink ETH/USD proxy 0x3BBe70e2F96c87aEce7F67A2b0178052f62E37fE directly; live ($1,919.40). · Chainlink ETH/USD (Metis) · metis
WBTC vault reads Chainlink BTC/USD proxy 0x51Ed8Fecf96813826F727CaBDF01b3cF6a61373e directly; live ($65,054.84). · Chainlink BTC/USD (Metis) · metis
METIS (vault 0x10dcbee8afa39a847707e16aea5eb34c6b01aba9) · MCR 155% · debtRatio=2, gainRatio=1100 (10% bonus), closingFee=50 (0.5%); 18 vaults with debt totaling 75,388.98 MAI against 2,386 METIS (~$6k), underwater and un-liquidatable (payout underflow).
METIS (vault 0x19Cb63CCbfAC2f28B1fd79923f6aDfC096e6EBB4) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=0; 3 vaults with debt totaling 6,015.48 MAI against 113 METIS, underwater.
WETH (vault 0xc09c73f7b32573d178138e76c0e286ba21085c20) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 6 vaults with debt totaling 688.39 MAI.
WBTC (vault 0x5A03716bd1f338D7849f5c9581AD5015ce0020B0) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 2 vaults with debt totaling 84.00 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. Underwater vaults cannot be liquidated (SafeMath payout underflow), which is the observed state of both METIS markets. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault contract reads only the answer field of ethPriceSource.latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The underwater METIS debt (81.4k MAI combined) remains on the books indefinitely; the owner Safe can raise _minimumCollateralPercentage to wind down healthy positions but cannot clear bad debt.
Base wstETH vault
Vault source 0x19Cb63CCbfAC2f28B1fd79923f6aDfC096e6EBB4: priceSource()=Chainlink ETH/USD Base proxy 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70, underlying()=wstETH 0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452; live at $2,367.19. Rate composition getter-verified; exact arithmetic not decoded from bytecode. · QiDao wstETH composite over Chainlink ETH/USD (Base) · base
wstETH (vault 0x654a31ba7d714cfcab19b17d0066171c1a292349) · max LTV 80% · MCR 125% · debtRatio=2 (liquidator repays 50%), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 5 vaults with debt totaling 45,312.12 MAI; 42.70 wstETH collateral; remaining mint capacity 606,854.72 MAI (getDebtCeiling = vault's own MAI balance).
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; the closingFee collateral share accrues to the treasury vault. No auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the composite source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe (0xE816F03e31a75cAbE64861064a6219ebe62c613D, the reviewed 4-of-6 Base token-owner Safe) can wind the market down by raising _minimumCollateralPercentage; if the oracle reverts, liquidation, withdrawal, and borrowing all brick; unrepayable underwater debt would remain on the books indefinitely.
Base WETH vault
Vault reads Chainlink ETH/USD Base proxy 0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70 directly; live at the observed block ($1,920.09). · Chainlink ETH/USD (Base) · base
WETH (vault 0x8d6cebd76f18e1558d4db88138e2defb3909fad6) · max LTV 83.33% · MCR 120% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 39 vaults with debt totaling 2,424.77 MAI; 164.14 WETH collateral; remaining mint capacity 555,134.64 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Base cbETH vault
Vault source 0x5e5CcE0ac9375937D264d0aaf680C5261f95e3ff: token()=0x806b4Ac04501c29769051e42783cF04dCE41440b (Coinbase exchange-rate oracle on Base), underlying()=cbETH 0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22; live at $2,162.99 (consistent with ETH/USD x cbETH rate). Exact USD leg not decoded from bytecode. · QiDao cbETH composite (Base) · base
cbETH (vault 0x7333fd58d8d73a8e5fc1a16c8037ada4f580fa2b) · max LTV 80% · MCR 125% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 5 vaults with debt totaling 1,815.46 MAI; 11.36 cbETH collateral; remaining mint capacity 1,038,832.68 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the composite source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon WBTC vault (current)
Vault reads Chainlink BTC/USD Polygon proxy 0xc907E116054Ad103354f2D350FD2514433D57F6f directly; live at the observed block ($64,972.17). · Chainlink BTC/USD (Polygon) · polygon
WBTC (vault 0x169d47043cc0c94c39fa327941c56cb0344dc508) · max LTV 76.92% · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 10 vaults with debt totaling 35,315.69 MAI; 1.664 WBTC collateral; remaining mint capacity 884,704.61 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe (0x1d8a6b7941ef1349c1b5e378783cd56b001ecfbc, the reviewed 3-of-4 Polygon vault-admin Safe) can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon WETH vault (current)
Vault reads Chainlink ETH/USD Polygon proxy 0xF9680D99D6C9589e2a93a78A04A279e509205945 directly; live at the observed block ($1,919.52). · Chainlink ETH/USD (Polygon) · polygon
WETH (vault 0xb5b31e6a13ae856bc30b3c76b16edad9f432b54f) · max LTV 76.92% · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 6 vaults with debt totaling 22,106.00 MAI; 19.48 WETH collateral; remaining mint capacity 477,924.73 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon dead-oracle legacy markets (cxETH, cxADA, cxDOGE, CEL, FXS, dQUICK)
Each vault's ethPriceSource reverts latestRoundData at the observed block: cxETH 0x6cD4CeB4C5a6068dbC7BD1E3b1633a0666A68E46, cxADA 0xB8BDAe5bbBD01b9a876660D717B43fC2C02F5B56, cxDOGE 0x5c32c4e1c9E08AC713DD8EF10DEeC820830D9634, CEL 0xc9ECF45956f576681bDc01F79602A79bC2667B0c, FXS 0x6C0fe985D3cAcbCdE428b84fc9431792694d0f51, dQUICK 0x5F35E99494ac6215669bB9c4a7b217B6B9dDf59e (whose inner source 0xa058689f4bCa95208bba3F265674AE95dED75B6D also reverts). · Dead Polygon price sources (CelsiusX customs and retired Chainlink proxies) · polygon
cxETH (vault 0x7d36999a69f2B99BF3FB98866cBbE47aF43696C8) · MCR 10000% · Wind-down: debtRatio=1 (full repayment), gainRatio=1010 (1% bonus), closingFee=50; 21 vaults with debt totaling 10,073.79 MAI; 14.96 cxETH collateral (CelsiusX wrapper, devalued).
cxADA (vault 0x506533B9C16eE2472A6BF37cc320aE45a0a24F11) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1010; 17 vaults with debt totaling 12,434.00 MAI; 46,704 cxADA collateral (devalued).
cxDOGE (vault 0x7CbF49E4214C7200AF986bc4aACF7bc79dd9C19a) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1010; 22 vaults with debt totaling 2,594.53 MAI; 100,281 cxDOGE collateral (devalued).
CEL (vault 0x178f1c95c85fe7221c7a6a3d6f12b7da3253eeae) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1010; 4 vaults with debt totaling 2.79 MAI.
FXS (vault 0xff2c44fb819757225a176e825255a01b3b8bb051) · MCR 10000% · Wind-down: debtRatio=1, gainRatio=1010; 10 vaults with debt totaling 8.81 MAI; 47.48 FXS collateral.
dQUICK (vault 0x649Aa6E6b6194250C077DF4fB37c23EE6c098513) · MCR 50000% · Wind-down: raw _minimumCollateralPercentage=50000; debtRatio=1, gainRatio=1010; 18 vaults with debt totaling 2.40 MAI; 56.70 dQUICK collateral.
Designed mechanism (currently inoperative): permissionless partial liquidation via liquidateVault() with debtRatio=1 (full-debt repayment) and a 1% gainRatio bonus under wind-down parameters. In practice no liquidation can execute because the oracle call reverts. Re-proved by direct eth_call at Polygon block 91727016 (2026-08-09): getEthPriceSource() reverts with empty return data on all six vaults (cxETH 0x7d36999a, cxADA 0x506533B9, cxDOGE 0x7CbF49E4, CEL 0x178f1c95, FXS 0xff2c44fb, dQUICK 0x649Aa6E6), stabilityPool() on cxETH is the zero address, and on the live cxETH position 36 (34.752181 MAI debt) checkCollateralPercentage(36), checkLiquidation(36), and liquidateVault(36) all revert empty. The control is decisive: on the live Polygon WETH market 0xb5b31e6a at the same block, the identical liquidateVault call reverts with the reason string 'Vault is not below minimum collateral percentage', proving the endpoint returns revert strings and that the collateral-ratio require is the only gate on a working market. liquidationDelaySec is deliberately left unrecorded on this branch: the QiDao vault contract has no delay, grace-period, auction, or timestamp term anywhere in liquidateVault, but these markets are uncallable at every block. That creates an unbounded wait the schema's non-negative-integer field cannot express, and recording 0 would render as 'liquidation delay: none'. · liquidation delay uncallable (reviewed)
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. The 2023 Polygon bad-debt settlement ($668k from the DAO treasury, per DL News) was an ad hoc governance action and did not cover these markets.
None, and the failure is live: every listed ethPriceSource reverts, so getEthPriceSource() reverts and liquidation, withdrawal, and new borrows are all bricked on these six markets. The vault contract has no staleness fallback or alternate feed even when sources are alive; the only remedy is the owner-gated changeEthPriceSource, which has not been exercised here.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. These markets are de facto frozen: dead oracles brick liquidation, withdrawal, and borrowing, so the 25.1k MAI of mostly Celsius-collateralized bad debt remains on the books indefinitely.
Polygon Gains gDAI vault
Vault source 0x853df00Ac364263F7f59744aAb4F4D7FCcfe90CA: priceSource()=Chainlink DAI/USD Polygon proxy 0x4746DeC9e833A82EC7C2C1356372CcF2cfcD2F3D (live, $0.9996), underlying()=Gains gDAI 0x91993f2101cc758D0dEB7279d41e880F7dEFe827; composite live at $1.1872. Rate composition getter-verified; exact arithmetic not decoded from bytecode. · QiDao gDAI composite over Chainlink DAI/USD (Polygon) · polygon
gDAI (vault 0xF1104493eC315aF2cb52f0c19605443334928D38) · max LTV 89.29% · MCR 112% · debtRatio=10 (liquidator repays 10%), gainRatio=1050 (5% bonus), closingFee=0, openingFee=0; 11 vaults with debt totaling 7,566.87 MAI; 7,707.59 gDAI collateral; remaining mint capacity 167,448.28 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (10%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (105% = 5% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the composite source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon wstETH vault
Vault source 0xb057c5d7A95A581d6b9C192352F679541Bde69BF: priceSource()=Chainlink ETH/USD Polygon proxy 0xF9680D99D6C9589e2a93a78A04A279e509205945, underlying()=stETH (PoS) 0x03b54A6e9a984069379fae1a4fC4dBAE93B3bCCD; composite live at $2,353.69. Rate composition getter-verified; exact arithmetic not decoded from bytecode. · QiDao wstETH composite over Chainlink ETH/USD (Polygon) · polygon
wstETH (vault 0x3bcbAC61456c9C9582132D1493A00E318EA9C122) · max LTV 76.92% · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 9 vaults with debt totaling 3,808.59 MAI; 3.63 wstETH collateral; remaining mint capacity 246,193.77 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the composite source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon MaticX vault
Vault source 0x271ad4279c319FEE4036416dD71F6D74E467076F: priceSource()=Chainlink 'Calculated MaticX / USD' feed 0x5d37E4b374E6907de8Fc7fb33EE3b0af403C7403 (live, $0.0905), underlying()=MaticX 0xfa68FB4628DFF1028CFEc22b4162FCcd0d45efb6; composite live at $0.0892. Rate composition getter-verified; exact arithmetic not decoded from bytecode. · QiDao MaticX composite over Chainlink Calculated MaticX/USD (Polygon) · polygon
MaticX (vault 0xb1f28350539b06d5a35d016908eef0424bd13c4b) · max LTV 74.07% · MCR 135% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 2 vaults with debt totaling 1,424.56 MAI; 26.24 MaticX collateral; remaining mint capacity 148,576.72 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the composite source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon stMATIC vault (current, oracle dead)
Vault source 0x1526f06F8938c9E622f57e960B89eBC3C587A9bD: priceSource()=0x97371dF4492605486e23Da797fA68e55Fc38a13f (legacy stMATIC source, owner 0x5A3ca642fdEd17296adDdb53A496ce4f26901596), underlying()=stMATIC 0x3A58a54C066FdC0f2D55FC9C89F0415C92eBf3C4. The inner source reverts latestRoundData at the observed block, so the composite and the vault's getEthPriceSource() revert as well. · Dead QiDao stMATIC composite (Polygon) · polygon
stMATIC (vault 0x9A05b116b56304F5f4B3F1D5DA4641bFfFfae6Ab) · MCR 135% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0, openingFee=0; 28 vaults with debt totaling 719.60 MAI; 26,700.64 stMATIC collateral; remaining mint capacity 9,633.59 MAI.
Designed mechanism (currently inoperative): permissionless partial liquidation via liquidateVault(vaultID, front) with 50% repayment and a 10% bonus, this newer vault build exposes liquidateVault(uint256,uint256), not the legacy liquidateVault(uint256). In practice no liquidation can execute because the oracle call reverts. Re-proved by direct eth_call at Polygon block 91727016-91727114 (2026-08-09): stabilityPool() is the zero address, debtRatio()=2 and gainRatio()=1100 are unchanged, getEthPriceSource() reverts with empty return data, and on the live position 5 (448.290758 MAI debt) checkCollateralPercentage(5), checkLiquidation(5), and liquidateVault(5,0) all revert empty, whereas the same liquidateVault(id,0) call on the live Polygon WETH market 0xb5b31e6a returns the reason string 'Vault is not below minimum collateral percentage', so the empty reverts here originate in the price read, not in a require. liquidationDelaySec is deliberately left unrecorded on this branch: the vault contract has no delay, grace-period, auction, or timestamp term, but this market is uncallable at every block. That creates an unbounded wait the schema's non-negative-integer field cannot express, and recording 0 would render as 'liquidation delay: none'. · liquidation delay uncallable (reviewed)
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists.
None, and the failure is live: the composite's inner source reverts, so getEthPriceSource() reverts and liquidation, withdrawal, and new borrows are all bricked. The vault contract has no alternate feed; the only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. With the oracle dead, the 719.60 MAI of debt and the deposited stMATIC are frozen in place until the owner Safe repoints changeEthPriceSource.
Polygon legacy wind-down markets (WETH, LINK, AAVE, CRV, WBTC, BAL, GHST, SAND, WPOL)
WETH vault -> ETH/USD 0xF9680D99D6C9589e2a93a78A04A279e509205945; LINK vault -> LINK/USD 0xd9FFdb71EbE7496cC440152d43986Aae0AB76665; AAVE vault -> AAVE/USD 0x72484B12719E23115761D5DA1646945632979bB6; CRV vault -> CRV/USD 0x336584C8E6Dc19637A5b36206B1c79923111b405; WBTC vault -> WBTC/USD 0xDE31F8bFBD8c84b5360CFACCa3539B938dd78ae6; BAL vault -> BAL/USD 0xD106B538F2A868c28Ca1Ec7E298C3325E0251d66; SAND vault -> SAND/USD 0x3D49406EDd4D52Fb7FFd25485f32E073b529C924; WPOL vault -> MATIC/USD 0xAB594600376Ec9fD91F8e885dADF0CE036862dE0. All live at the observed block. · Chainlink (Polygon) — direct single feeds · polygon
GHST vault source 0xd56E523d18a205f96CA8009f2c85aA47F3FA35ab; live at $0.0442. No standard aggregator getters; composition not decoded from bytecode. · QiDao GHST custom source (internals not decoded) · polygon
WETH (vault 0x3fd939B017b31eaADF9ae50C7fF7Fa5c0661d47C) · MCR 591% · Wind-down: raw _minimumCollateralPercentage=591; debtRatio=1 (full repayment), gainRatio=1010 (1% bonus), closingFee=50 (0.5%); 1,578 vaults with debt totaling 186.31 MAI; 20.01 WETH collateral (mostly debt-free user collateral not yet withdrawn).
LINK (vault 0x61167073E31b1DAd85a3E531211c7B8F1E5cAE72) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=50; 47 vaults with debt totaling 0.70 MAI; 357.95 LINK collateral.
AAVE (vault 0x87ee36f780ae843A78D5735867bc1c13792b7b11) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=50; 17 vaults with debt totaling 5.75 MAI; 21.44 AAVE collateral.
CRV (vault 0x98B5F32dd9670191568b661a3e847Ed764943875) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=50; 92 vaults with debt totaling 20.46 MAI; 1,265.57 CRV collateral.
WBTC (vault 0x37131aEDd3da288467B6EBe9A77C523A700E6Ca1) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=5; 55 vaults with debt totaling 6.06 MAI; 1.803 WBTC collateral.
BAL (vault 0x701A1824e5574B0b6b1c8dA808B184a7AB7A2867) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=1; 48 vaults with debt totaling 20.19 MAI; 153.14 BAL collateral.
GHST (vault 0xF086dEdf6a89e7B16145b03a6CB0C0a9979F1433) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=50; 46 vaults with debt totaling 16.18 MAI; 1,457.46 GHST collateral.
SAND (vault 0x1dcc1f864a4bd0b8f4ad33594b758b68e9fa872c) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=50; 4 vaults with debt totaling 0.44 MAI; 517.42 SAND collateral.
WPOL (vault 0x305f113ff78255d4f8524c8f50c7300b91b10f6a) · MCR 10000% · Wind-down; debtRatio=1, gainRatio=1010, closingFee=50; 14 vaults with debt totaling 1.82 MAI; 63,217.67 WPOL collateral.
Permissionless liquidation via liquidateVault() under wind-down parameters: debtRatio=1 means the liquidator repays 100% of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (101% = 1% bonus) at the oracle price; the closingFee collateral share accrues to the treasury vault. With _minimumCollateralPercentage at 591%-50000%, every open position is liquidatable. No auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address on all nine vaults at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. These markets ARE the wind-down: owner Safes raised _minimumCollateralPercentage to force full liquidatability, and remaining debt is dust that is uneconomic for external liquidators to clear (1% bonus on sub-$25 positions). If a feed reverts, the market freezes in place (observed pattern in the dead-oracle branches).
Polygon camWMATIC vault (legacy, wind-down)
Vault source 0x7791b9d71fa3A9782183B810f26b5C2eEdf53Eb0: priceSource()=Chainlink MATIC/USD Polygon proxy 0xAB594600376Ec9fD91F8e885dADF0CE036862dE0 (live, $0.0758), underlying()=amWMATIC 0x8dF3aad3a84da6b69A4DA8aeC3eA40d9091B2Ac4; composite live at $0.0796 (consistent with MATIC/USD x camWMATIC exchange rate). Rate composition getter-verified; exact arithmetic not decoded from bytecode. · QiDao camWMATIC composite over Chainlink MATIC/USD (Polygon) · polygon
camWMATIC (vault 0x88d84a85A87ED12B8f098e8953B322fF789fCD1a) · MCR 10000% · Wind-down; debtRatio=1 (full repayment), gainRatio=1010 (1% bonus), closingFee=50 (0.5%); 159 vaults with debt totaling 71.86 MAI; 63,860.71 camWMATIC collateral; remaining mint capacity 71,929.16 MAI (matches mintAuthority evidence).
Permissionless liquidation via liquidateVault() under wind-down parameters: debtRatio=1 means the liquidator repays 100% of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (101% = 1% bonus) at the oracle price. With _minimumCollateralPercentage at 10000%, every open position is liquidatable. No auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the composite source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The market is under owner-imposed wind-down parameters; residual dust debt persists because clearing it is uneconomic at a 1% bonus. If the composite or its inner Chainlink feed reverts, the market freezes in place.
Polygon Arrakis MAI/DAI LP vault
Vault source 0xe6e5535154dc430996bb5bC257634e89C7397Ec9 (8-decimal answer, live at $0.0112); no standard aggregator getters; composition not decoded from bytecode. The underlying LP pairs MAI with DAI, so the oracle implicitly depends on MAI's own price. · QiDao Arrakis LP custom oracle (internals not decoded) · polygon
Arrakis MAI/DAI LP (vault 0x7d75F83f0aBe2Ece0b9Daf41CCeDdF38Cb66146b) · max LTV 98.04% · MCR 102% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=10 (0.1%); 2 vaults with debt totaling 101.00 MAI; 15.23 RAKIS-37 LP collateral; remaining mint capacity 801.00 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the custom source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind the market down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Polygon Stake DAO am3CRV vault (wind-down)
Vault source 0x56Ca9B7a4dB485606479DEf2b5eB70EcfaC62E2C (18-decimal answer, live at $1.23); no standard aggregator getters; composition not decoded from bytecode. · QiDao sdam3CRV custom oracle (internals not decoded) · polygon
sdam3CRV (vault 0x57cbf36788113237d64e46f25a88855c3dff1691) · MCR 10000% · Wind-down; debtRatio=1 (full repayment), gainRatio=1010 (1% bonus), closingFee=50; 9 vaults with debt totaling 8.27 MAI; 938.93 sdam3CRV collateral; remaining mint capacity 391.73 MAI.
Permissionless liquidation via liquidateVault() under wind-down parameters: debtRatio=1 means the liquidator repays 100% of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (101% = 1% bonus) at the oracle price. With _minimumCollateralPercentage at 10000%, every open position is liquidatable. No auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. The vault reads only the answer field of the custom source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The market is under owner-imposed wind-down parameters; residual dust debt persists because clearing it is uneconomic. If the custom oracle reverts, the market freezes in place.
Optimism legacy markets (WETH, Beefy Aave ETH, Beefy Curve stETH, WBTC, Yearn ETH)
WETH vault reads Chainlink ETH/USD Optimism proxy 0x13e3Ee699D1909E989722E753853AE30b17e08c5 directly; live ($1,919.75). The Beefy Aave ETH composite 0x80762C8b0DBF57324DCBEB867d59c4Fc6fFDd960 and Yearn ETH composite 0xf9973B6Bf045755C09B36aA4A21F11E5c5f78cAf both report priceSource()=0x13e3Ee699D1909E989722E753853AE30b17e08c5 and answer live ($2,006.94 / $1,991.13 including their yield-token rates). · Chainlink ETH/USD (Optimism) · optimism
Beefy Curve stETH vault source 0xFC8070e692C1c3C9705656809a76183cCfA709f7; live at $1,981.86. Composition not decoded from bytecode. · QiDao Beefy Curve stETH custom composite (internals not decoded) · optimism
WBTC vault reads Chainlink BTC/USD Optimism proxy 0xD702DD976Fb76Fffc2D3963D037dfDae5b04E593 directly; live ($64,971.02). · Chainlink BTC/USD (Optimism) · optimism
WETH (vault 0x062016cd29fabb26c52bab646878987fc9b0bc55) · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=50; 301 vaults with debt totaling 19,078.63 MAI; 31.72 WETH collateral.
Beefy Aave OP ETH (vault 0xF9CE2522027bD40D3b1aEe4abe969831FE3BeAf5) · MCR 135% · debtRatio=2, gainRatio=1100, closingFee=0; 1 vault with debt totaling 12,903.36 MAI; 24.23 mooAaveETH collateral.
Beefy Curve stETH (vault 0xa478E708A27853848C6Bc979668fe6225FEe46Fa) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=0; 1 vault with debt totaling 1,144.64 MAI; 0.97 mooCurveSTETH collateral.
WBTC (vault 0xb9c8f0d3254007ee4b98970b94544e473cd610ec) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 7 vaults with debt totaling 311.12 MAI; 0.358 WBTC collateral.
Yearn ETH (vault 0x7198ff382b5798dab7dc72a23c1fec9dc091893b) · MCR 125% · debtRatio=2, gainRatio=1100, closingFee=0; 7 vaults with debt totaling 291.37 MAI; 0.62 yvWETH collateral.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind markets down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Avalanche legacy markets (BTC, Moo Aave AVAX, AVAX, ETH)
BTC vault reads Chainlink BTC/USD Avalanche proxy 0x2779D32d5166BAaa2B2b658333bA7e6Ec0C65743 directly; live ($65,026.44). · Chainlink BTC/USD (Avalanche) · avalanche
Moo Aave AVAX vault source 0xdDC3D26BAA9D2d979F5E2e42515478bf18F354D5 reports priceSource()=Chainlink AVAX/USD Avalanche proxy 0x0A77230d17318075983913bC2145DB16C7366156 (live, $6.52); the plain AVAX vault reads 0x0A77230d17318075983913bC2145DB16C7366156 directly. · QiDao Moo Aave AVAX composite over Chainlink AVAX/USD; Chainlink AVAX/USD direct for the AVAX vault · avalanche
ETH vault reads Chainlink ETH/USD Avalanche proxy 0x976B3D034E162d8bD72D6b9C989d545b839003b0 directly; live ($1,919.43). · Chainlink ETH/USD (Avalanche) · avalanche
BTC.b/WBTC (vault 0x1f8f7a1d38e41eaf0ed916def29bdd13f2a3f11a) · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=50; 2 vaults with debt totaling 20,264.24 MAI; 1.902 BTC collateral.
Moo Aave AVAX (vault 0xfA19c1d104F4AEfb8d5564f02B3AdCa1b515da58) · MCR 135% · debtRatio=2, gainRatio=1100, closingFee=50; 139 vaults with debt totaling 738.92 MAI; 309.38 mooAaveAVAX collateral.
AVAX (vault 0x73a755378788a4542a780002a75a7bae7f558730) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 6 vaults with debt totaling 4.02 MAI.
WETH.e (vault 0xa9122dacf3fccf1aae6b8ddd1f75b6267e5cbbb8) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 2 vaults with debt totaling 3.51 MAI.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind markets down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Gnosis legacy markets (WETH, GNO)
WETH vault reads Chainlink ETH/USD Gnosis proxy 0xa767f745331D267c7751297D982b050c93985627 directly; live ($1,921.92). · Chainlink ETH/USD (Gnosis) · gnosis
GNO vault reads Chainlink GNO/USD Gnosis proxy 0x22441d81416430A54336aB28765abd31a792Ad37 directly; live ($106.60). · Chainlink GNO/USD (Gnosis) · gnosis
WETH (vault 0x5c49b268c9841AFF1Cc3B0a418ff5c3442eE3F3b) · MCR 130% · debtRatio=10 (liquidator repays 10%), gainRatio=1100 (10% bonus), closingFee=50; 9 vaults with debt totaling 818.24 MAI; 0.48 WETH collateral, underwater at the observed price.
GNO (vault 0x014a177e9642d1b4e970418f894985dc1b85657f) · MCR 130% · debtRatio=10, gainRatio=1100, closingFee=50; 22 vaults with debt totaling 462.57 MAI; 7.10 GNO collateral.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (10%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. Underwater vaults cannot be liquidated (SafeMath payout underflow). · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single feed's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind markets down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt (observed in the WETH market) remains on the books indefinitely.
Linea legacy markets (WBTC, WETH)
WBTC vault reads Chainlink BTC/USD Linea proxy 0x7A99092816C8BD5ec8ba229e3a6E6Da1E628E1F9 directly; live ($64,972.14). · Chainlink BTC/USD (Linea) · linea
WETH vault reads Chainlink ETH/USD Linea proxy 0x3c6Cd9Cc7c7a4c2Cf5a82734CD249D7D593354dA directly; live ($1,919.63). · Chainlink ETH/USD (Linea) · linea
WBTC (vault 0x8ab01c5ee3422099156ab151eecb83c095626599) · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=0; 5 vaults with debt totaling 627.73 MAI; 0.224 WBTC collateral.
WETH (vault 0x7f9dd991e8fd0cbb52cb8eb35dd35c474a9a7a70) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=0; 3 vaults with debt totaling 370.80 MAI; 0.44 WETH collateral.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single feed's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind markets down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
Moonbeam GLMR vault (oracle dead)
Vault source 0x4497B606be93e773bbA5eaCFCb2ac5E2214220Eb reverts latestRoundData at the observed block; no description() or other standard getters answer. · Dead Moonbeam price source · moonbeam
GLMR (vault 0x3A82F4da24F93a32dc3C2A28cFA9D6E63EC28531) · MCR 150% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=50; 31 vaults with debt totaling 1,494.39 MAI; 19,808.99 GLMR collateral.
Designed mechanism (currently inoperative): permissionless partial liquidation via liquidateVault(vaultID, front) with 50% repayment and a 10% bonus, this newer vault build exposes liquidateVault(uint256,uint256), not the legacy liquidateVault(uint256). In practice no liquidation can execute because the oracle call reverts. Re-proved by direct eth_call at Moonbeam blocks 16786674-16786696 (2026-08-09): ethPriceSource() is 0x4497B606be93e773bbA5eaCFCb2ac5E2214220Eb and its latestRoundData() reverts, stabilityPool() is the zero address, debtRatio()=2 and gainRatio()=1100 are unchanged, getEthPriceSource() reverts, and on the live position 42 (8.330497 MAI debt, ownerOf 0x02282d4342b0258e202b8e1a3497a5102720f703) checkCollateralPercentage(42), checkLiquidation(42), and liquidateVault(42,0) all revert with empty return data. liquidationDelaySec is deliberately left unrecorded on this branch: the vault contract has no delay, grace-period, auction, or timestamp term, but this market is uncallable at every block. That creates an unbounded wait the schema's non-negative-integer field cannot express, and recording 0 would render as 'liquidation delay: none'. · liquidation delay uncallable (reviewed)
No protocol backstop: no stability pool, insurance fund, or committed bad-debt buyer exists on this deployment.
None, and the failure is live: the price source reverts, so getEthPriceSource() reverts and liquidation, withdrawal, and new borrows are all bricked. The vault contract has no alternate feed; the only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. With the oracle dead, the 1,494.39 MAI of debt and the deposited GLMR are frozen in place until the owner Safe repoints changeEthPriceSource.
Arbitrum legacy markets (WETH, gDAI, WBTC)
WETH vault reads Chainlink ETH/USD Arbitrum proxy 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 directly; live ($1,918.51). · Chainlink ETH/USD (Arbitrum) · arbitrum
gDAI vault source 0x759D0e8623C5028ED4D447dB25Bbe789FD07A43D reports priceSource()=0xc5C8E77B397E531B8EC06BFb0048328B30E9eCfB (Chainlink DAI/USD Arbitrum proxy); composite live at $1.2373 including the gDAI share price. Rate composition getter-verified; exact arithmetic not decoded from bytecode. · QiDao gDAI composite over Chainlink DAI/USD (Arbitrum) · arbitrum
WBTC vault reads Chainlink BTC/USD Arbitrum proxy 0x6ce185860a4963106506C203335A2910413708e9 directly; live ($64,972.55). · Chainlink BTC/USD (Arbitrum) · arbitrum
WETH (vault 0xC76a3cBefE490Ae4450B2fCC2c38666aA99f7aa0) · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=50; 19 vaults with debt totaling 301.88 MAI; 0.51 WETH collateral.
gDAI (vault 0xd371281896f2F5f7A2C65F49d23A2B6ecfd594f3) · MCR 112% · debtRatio=2, gainRatio=1100, closingFee=0; 3 vaults with debt totaling 322.92 MAI; 354.39 gDAI collateral.
WBTC (vault 0xB237f4264938f0903F5EC120BB1Aa4beE3562FfF) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 3 vaults with debt totaling 9.12 MAI; 0.037 WBTC collateral.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind markets down by raising _minimumCollateralPercentage; a reverting oracle bricks liquidation, withdrawal, and borrowing; underwater debt would remain on the books indefinitely.
BSC legacy markets (CAKE, BNB, DODO)
CAKE vault reads Chainlink CAKE/USD BSC proxy 0xB6064eD41d4f67e353768aA239cA86f4F73665a1 directly; live ($1.43). · Chainlink CAKE/USD (BSC) · bsc
BNB vault reads Chainlink BNB/USD BSC proxy 0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE directly; live ($603.10). · Chainlink BNB/USD (BSC) · bsc
DODO vault source 0x87701B15C08687341c2a847ca44eCfBc8d7873E1 reverts latestRoundData at the observed block; getEthPriceSource() reverts, so the market is frozen. · Dead DODO price source (BSC) · bsc
CAKE (vault 0x014a177e9642d1b4e970418f894985dc1b85657f) · MCR 130% · debtRatio=2 (50% repayment), gainRatio=1100 (10% bonus), closingFee=50; 7 vaults with debt totaling 39.88 MAI; 56.51 CAKE collateral.
BNB (vault 0xa56f9a54880afbc30cf29bb66d2d9adcdcaeadd6) · MCR 130% · debtRatio=2, gainRatio=1100, closingFee=50; 14 vaults with debt totaling 436.08 MAI; 2.10 BNB collateral.
DODO (vault 0x7333fd58d8d73a8e5fc1a16c8037ada4f580fa2b) · MCR 150% · debtRatio=2, gainRatio=1100, closingFee=0; 1 vault with debt totaling 12.70 MAI; oracle dead, frozen.
Permissionless partial liquidation via liquidateVault(): any MAI holder repays 1/debtRatio (50%) of a below-minimum vault's debt and extracts collateral worth the repayment times gainRatio/10 (110% = 10% bonus) at the oracle price; no auction, no grace period. Inoperative on the DODO market because its oracle reverts. · liquidation delay None
No protocol backstop: stabilityPool is the zero address at the observed block; no stability pool, insurance fund, or committed bad-debt buyer exists. Liquidations rely entirely on external MAI holders.
No fallback. Each vault reads only the answer field of its single source's latestRoundData(); updatedAt is never checked, there is no stale-answer rejection, and no alternate feed exists. On the DODO market the source already reverts, bricking liquidation, withdrawal, and borrowing. The only remedy is the owner-gated changeEthPriceSource.
No global shutdown, settlement, or debt-socialization path exists in the vault contract. The owner Safe can wind markets down by raising _minimumCollateralPercentage; the DODO market is already frozen by its dead oracle, and its residual debt remains on the books indefinitely.