Summary
Llamalend v2 is preparing to launch with significant improvements to market safety and risk management. As housekeeping before that launch, we propose deprecating all bad-debt and idle v1 markets, including the entire Optimism v1 deployment (already hidden from the UI). Healthy active markets on Ethereum, Arbitrum, and Fraxtal continue to function as usual on v1.
Across Ethereum (47), Arbitrum (22), Fraxtal (12), and Optimism (5), there are 86 v1 markets in total. Of these:
- 11 bad-debt markets carry ~$1.22M in aggregate bad debt; concentrated in cohorts that emerged from the October 10, 2025 volatility event and from a handful of permissionlessly deployed markets that proved to be misconfigured for their underlying assets.
- 56 idle markets, of which 37 have no open loans.
- 19 active markets carry ~$40M in healthy debt.
Action tracks for the markets being deprecated:
- Bad-debt markets: action depends on liquidity. Liquid bad-debt markets keep their existing monetary policy, accruing interest on underwater positions only inflates the shortfall, and lenders earning yield on the solvent portion of the book arenβt well served by an artificial rate change. Illiquid bad-debt markets have their rate set to 0, since further accrual on positions that wonβt repay only deepens the bad debt. In both cases the loan discount is raised to the maximum of 50% to prevent new loans, and the gauge is killed. Per-market remediation of the existing shortfall, including AMM-based recovery along the lines of Michael Egorovβs forum proposal, may be handled as a separate workstream.
- Idle markets: monetary policy swapped to a singleton MP (a shared, slowly linearly-increasing rate contract; no open loans means the rate doesnβt matter), loan discount raised to 50%, gauges killed where they exist.
This proposal is a companion to the in-flight CRV-long market deprecation, which is being handled with its own per-position analysis.
Current State of LlamaLend v1
| Chain | Markets | Bad-debt | Active | Idle | Total debt | Bad debt |
|---|---|---|---|---|---|---|
| Ethereum | 47 | 4 | 11 | 32 | ~$40.1M | $810,500 |
| Arbitrum | 22 | 3 | 6 | 13 | ~$1.08M | $123,520 |
| Fraxtal | 12 | 2 | 2 | 8 | ~$642K | $277,852 |
| Optimism | 5 | 2 | 0 | 3 | ~$9.4K | $5,973 |
| Total | 86 | 11 | 19 | 56 | ~$41.83M | $1,217,845 |
Track definitions:
- bad-debt: market carries a shortfall; rate action depends on liquidity (no MP change for liquid markets, rate set to 0 for illiquid markets); loan discount maxed, gauge killed.
- idle: no open loans; MP swapped to singleton, loan discount maxed, gauge killed (where one exists).
- active: healthy market with open loans; no action under this proposal (except on Optimism, see chain-wide note), remains operational on v1.
Background
Llamalend v2 is the successor design and will eventually inherit the role v1 plays in the Curve ecosystem. Rather than wind down all of v1 at once, this proposal takes a phased approach: remove the markets that should not exist on v1 going forward (bad-debt and idle) while keeping healthy active markets running.
The bad-debt cohort. Thirteen markets carry shortfalls: CRV-long, UwU, sDOLA-Long2, and WETH-Long2 on Ethereum; IBTC, FXN, ARB-Long2, and WETH on Arbitrum; FXS/FRAX and SQUID on Fraxtal; and OP and CRV on Optimism.
These shortfalls trace to two sources: the October 10, 2025 volatility event together with the subsequent collateral price decay, and a handful of v1 markets that were permissionlessly deployed with parameters that proved to be misconfigured for their underlying assets; primarily long-tail collateral with thin liquidity.
What v2 changes. v2 markets remain permissionlessly deployable, but every new market launches with supply and borrow caps set to zero. Caps can only be raised through DAO governance, which means parameters and risk controls receive direct oversight before any meaningful TVL accrues in a market. Beyond the caps gate, v2 also reworks vault accounting to prevent the share/asset inflation pattern, replaces v1βs immutable price oracle with a DAO-gated set_price_oracle(), makes the LendFactory pausable so new market creation can be halted in an emergency without affecting existing markets, flips Vyper 0.4.2βs # pragma nonreentrancy on so every method and public getter is nonreentrant by default, and consolidates lending and mint-market controllers into a single controller.vy module that removes ~2,000 lines of duplicated logic and the divergence bugs that came with it.
Wind-Down Strategy
Bad-debt markets: liquidity-dependent rate action, max loan discount, kill gauge
Bad-debt markets typically contain a mix of solvent and underwater positions, and the right rate action depends on which cohort dominates and on the marketβs liquidity. Underwater positions are unlikely to repay regardless of rate, so interest accrual on those positions tends to flow into shortfall that lenders absorb.
The action therefore splits on market liquidity:
- Liquid bad-debt markets: No monetary policy change. Lenders chose their exposure, continue to earn yield on the solvent portion of the book, and forcing them out via an artificial rate change neither helps the protocol nor improves recovery on the underwater positions.
- Illiquid bad-debt markets: Rate set to 0% via a MP. With no meaningful lender base left to serve, the priority shifts to not deepening the bad debt.
In both cases the loan discount is raised to the maximum of 50% to prevent new loans, and the gauge is killed to stop CRV emissions to a known-bad market. Per-market routing is shown in the chain tables below.
Remediation of the existing shortfall is handled as a separate workstream and may be presented per-market. Michael Egorov has already proposed an AMM-based recovery approach in a recent governance forum post, which is a candidate for illiquid bad-debt markets in particular.
Idle markets: singleton MP, max loan discount, kill gauge
Idle markets (no active loans, no user-facing impact) get pointed at the singleton MP for housekeeping uniformity, have their loan discount raised to the maximum, and have their gauges killed (where they exist). The MP swap doesnβt affect anyone β there are no loans β but having every deprecated market point at the same MP makes the deprecated cohort uniform and removes a class of orphaned Controllers from the surface area.
Active markets: no action (except Optimism)
Active healthy markets on Ethereum, Arbitrum, and Fraxtal remain operational on v1 under this proposal. A follow-up proposal will address their migration once v2 is live and integrators have had time to plan.
Optimism is the exception**.** All five Optimism v1 markets β including the two with healthy active loans β are being deprecated together as part of a chain-wide wind-down. Optimism v1 has been hidden from the UI for some time and total debt across the chain is ~$9.4K. Active Optimism markets receive the same MP / loan discount / gauge actions as the rest of the deprecated cohort.
Markets by Chain
One row per market, one table per chain. Sorted bad-debt β active β idle, then by debt within each track. All addresses checksummed. Active markets are listed for completeness but receive no action under this proposal.
Data fetched: 2026-04-29 08:47 UTC, from
api.curve.finance/api/getLendingVaults/all,prices.curve.finance/v1/lending/markets/{chain}, andprices.curve.finance/v1/lending/liquidations/bad_debt. Gaugeis_killedand Controllerloan_discountchecked on-chain as of the same time.- Gauge status across the deprecation cohort: 18 already killed, 27 to be killed (mainnet root).
- Loan-discount status: 3 already at 50% (CRV-long mainnet, FXS/FRAX & SQUID on Fraxtal β set by votes 1391/1393), 60+ still to be set.
Optimism (5 markets; $5,973 bad debt)
| Track | Market | Controller | Loans | Debt | Bad debt | MP | LDβ50% | Gauge |
|---|---|---|---|---|---|---|---|---|
| bad-debt | OP (oneway-3) | 0xC5Cd9f6A1Fb88bed782f475F72fF686ED35b7e8e | 8 | $7,378 | $5,582 | set to 0% | to be set (currently 17.5%) | already killed (0xe042515355e6852dbaec269d04d574e0b8d8c6f4) |
| bad-debt | CRV (oneway-4) | 0x88aa928B906b745009B53A31034701Fc377b7C89 | 4 | $1,914 | $391 | no action | to be set (currently 20.0%) | already killed (0x3e3d66ad3c707a9fcbb6553da6acec396697e173) |
| idle | WETH (oneway-0) | 0x9dba46e6a06FBf24CA11f8912B44338fe1b28Ea9 | 1 | $123 | β | singleton | to be set (currently 7.0%) | already killed (0x9a002726d7b9d9dc90d3277f7531fe15a31b47df) |
| idle | WBTC (oneway-2) | 0x09cEd8b3392bED73B0358e39AaEC0A6e9b0e76DF | 1 | $0 | β | singleton | to be set (currently 6.5%) | already killed (0x0c1b39806655a816054d45fdfde8658e2f620bc6) |
| idle | wstETH (oneway-1) | 0x6CE5B539367A29d48038A9F3108E6e0f226b83ed | 0 | $0 | β | singleton | to be set (currently 7.0%) | already killed (0x19fcbee2956d3436520fb12d2b9024b22a10beba) |
Arbitrum (22 markets; $123,520 bad debt)
| Track | Market | Controller | Loans | Debt | Bad debt | MP | LDβ50% | Gauge |
|---|---|---|---|---|---|---|---|---|
| bad-debt | IBTC (oneway-15) | 0x3e293dB65c81742e32b74E21A0787d2936beeDf7 | 16 | $78,230 | $77,765 | set to 0% | to be set (currently 7.5%) | already killed (0x2656b01a19a790f07e2b875d69007f88241602f0) |
| bad-debt | ARB (oneway-11, βARB-long2β) | 0xeCF99dE21c31eC75b4Fb97e980F9d084b1d8Da8f | 11 | $49,202 | $19,129 | set to 0% | to be set (currently 21.0%) | to be killed (0x8d1600015ae09eaacaed08531a03ecb8f2bd40fa) |
| bad-debt | FXN (oneway-7) | 0x7Adcc491f0B7f9BC12837B8F5Edf0e580d176F1f | 1 | $26,758 | $26,282 | set to 0% | to be set (currently 17.0%) | to be killed (0x033e4b9d481ec8eb01a64ef782548c9056f45068) |
| active | WETH (oneway-0) | 0xB5B6f0E69c283AA32425FA18220e64283B51F0A4 | 21 | $38,165 | $344 | β | β | |
| active | asdCRV (oneway-13) | 0x83B85f3b08B5EE58dE9EF9604e7Eec087FCCf130 | 10 | $402,472 | β | β | β | |
| active | WETH (oneway-9) | 0xB5c6082d3307088C98dA8D79991501E113e6365d | 43 | $239,131 | β | β | β | |
| active | WBTC (oneway-10) | 0xb9aDddCf4e01c2f64F8F2CD9a050DC35585ea053 | 40 | $220,248 | β | β | β | |
| active | CRV (oneway-4) | 0x88f88e937Db48bBfe8E3091718576430704e47Ab | 21 | $10,087 | β | β | β | |
| active | WBTC (oneway-1) | 0x013be86e1cdb0f384dAF24Bd974FE75EdFfe6B68 | 7 | $10,564 | β | β | β | |
| idle | EYWA (oneway-21) | 0x7a5A1c91dAF5A41942F90b3f8a9c4d3526294c16 | 1 | $364 | β | singleton | to be set (currently 12%) | already killed (0xc1b06b52848fd69d4734983d923e0a0101111e21) |
| idle | tBTC (oneway-17) | 0x376e6D52F38e0fCe8E94293ce911e2FdEd2d4A4f | 1 | $5 | β | singleton | to be set (currently 7.5%) | to be killed (0x6ba9bf35158dcb0dc9f71cfe1eed9d5c75cd3836) |
| idle | stXAI (oneway-19) | 0x398e6dd92Df9F792D0107668871e6F49ebdfE028 | 2 | $0 | β | singleton | to be set (currently 11.0%) | no gauge |
| idle | ARB old (oneway-5) | 0x76709bC0dA299Ab0234EEC51385E900922AE98f5 | 2 | $0 | β | singleton | to be set (currently 21.0%) | to be killed (0xc0d2d2cfbc20badaef4360f577590790f16c3d43) |
| idle | CRV (oneway-12) | 0xF4e35f69D0BeE1AFC26EE73f12Fa7fA220F16F40 | 0 | $0 | β | singleton | to be set (currently 20.0%) | to be killed (0xb7a51f9d5b2903fca3be111beb5a2448f772d9b8) |
| idle | IBTC (oneway-14) | 0x991Bf50A34972227e681127D9127a1Dc54f67a3b | 0 | $0 | β | singleton | to be set (currently 6.5%) | no gauge |
| idle | tBTC (oneway-16) | 0x4153532Eb32D57a1a08cD024c66E79635aFC8e3a | 0 | $0 | β | singleton | to be set (currently 7.5%) | no gauge |
| idle | stXAI (oneway-18) | 0x5A2b666E6f36CB0a17CF03c9feb421855Ca9751D | 0 | $0 | β | singleton | to be set (currently 11.0%) | no gauge |
| idle | WBTC (oneway-2) | 0x28c20590de7539C316191F413686dcF794d8898E | 0 | $0 | β | singleton | to be set (currently 9.0%) | no gauge |
| idle | stXAI (oneway-20) | 0x6c1cD25cC6320f992EDE07F6a6e93810e8855bc2 | 0 | $0 | β | singleton | to be set (currently 11.0%) | no gauge |
| idle | gmUSDC (oneway-3) | 0x5014AB37Fca7201baDEc3C0d0f28Dc7899cdC7D5 | 0 | $0 | β | singleton | to be set (currently 3.5%) | no gauge |
| idle | FXN (oneway-6) | 0xAe659CE8f2f23649E09e92D164244AA127A7a2c7 | 0 | $0 | β | singleton | to be set (currently 17.0%) | to be killed (0xb75949507127c31a39eae50f1d0fdec6c35aebb6) |
| idle | gmUSDC (oneway-8) | 0x4064Ed6Ae070F126F56c47c8a8CdD6B924668b5D | 0 | $0 | β | singleton | to be set (currently 1.3%) | no gauge |
Fraxtal (12 markets; $277,852 bad debt)
| Track | Market | Controller | Loans | Debt | Bad debt | MP | LDβ50% | Gauge |
|---|---|---|---|---|---|---|---|---|
| bad-debt | FXS/FRAX (oneway-2) | 0xf0922934f16DbE5Df9f90F729b2023D5e1FC2F15 | 18 | $194,311 | $145,857 | already set to 0% | already at 50% | to be killed (0xfc6891c8482aef6aef71a09a09ce14432617a403) |
| bad-debt | SQUID (oneway-4) | 0xBF55Bb9463bBbB6aD724061910a450939E248eA6 | 5 | $137,768 | $131,995 | already set to 0% | already at 50% | already killed 0x718Fe7ab113c2e02B61d947B80b6fA0C434ba60b) |
| active | sfrxETH (oneway-0) | 0xc68f91FfA2B27147F9AB153267018f5Fe4b6850F | 6 | $190,140 | β | β | β | - |
| active | sfrxUSD (oneway-1) | 0xB4EbF87A474569d8eB7f7182B4beBD8aE79ae675 | 20 | $119,788 | β | β | β | - |
| idle | CRV (oneway-3) | 0x99d5b47D431f1963940F72ffa6F25bC0B9849CbF | 0 | $0 | β | singleton | to be set (currently 20.0%) | to be killed (0x2687a11cb2916bffb9406959c6d386c79c621f15) |
| idle | mooCurveFXS-cvxFXS (oneway-5) | 0xCdf0D2a3B4e8D334042aE04631137696C7a09a00 | 0 | $0 | β | singleton | to be set (currently 24.0%) | no gauge |
| idle | mooCurveFXS-cvxFXS (oneway-6) | 0x1d174AdBF69D531EE13629a253517Ad3Cf3Aa7AF | 0 | $0 | β | singleton | to be set (currently 28.0%) | no gauge |
| idle | cycvxFXS/FXS borrow (oneway-7) | 0xCB2b1f2a5d472828eB56d36E9Bdbefb4963ECA79 | 0 | $0 | β | singleton | to be set (currently 22.0%) | no gauge |
| idle | cycvxFXS/FXS (oneway-8) | 0xc52eFB33C8b90d7c1f64c4b5747ae209af2A02e5 | 0 | $0 | β | singleton | to be set (currently 22.0%) | no gauge |
| idle | cycvxFXS/FXS (oneway-9) | 0xCadF8A2Aa79eb80DDFcD204C50E3c7d6d3ed1927 | 0 | $0 | β | singleton | to be set (currently 22.0%) | no gauge |
| idle | cycvxFXS/FXS (oneway-10) | 0x5B425D2a3D9bea2B3a158125b15895D9C34dCFb2 | 0 | $0 | β | singleton | to be set (currently 22.0%) | no gauge |
| idle | cycvxFXS/FXS (oneway-11) | 0x03F98Bcf2A602cBe165Ddc14b2b0B20139A660d2 | 0 | $0 | β | singleton | to be set (currently 25.0%) | no gauge;to be killed on Fraxtal (child gauge 0x602b80d7daaaa7ea605ccfb6b3af3367cac29bc3); |
Ethereum (47 markets; $810,500 bad debt)
| Track | Market | Controller | Loans | Debt | Bad debt | MP | LDβ50% | Gauge |
|---|---|---|---|---|---|---|---|---|
| bad-debt | CRV (oneway-3) | 0xEdA215b7666936DEd834f76f3fBC6F323295110A | 82 | $3.26M | $757,509 | already set to 0% | already at 50% | already killed (0x49887df6fe905663cdb46c616bfbfbb50e85a265) |
| bad-debt | UwU (oneway-8) | 0x09dBDEB3b301A4753589Ac6dF8A178C7716ce16B | 1 | $50,802 | $48,138 | already set to 0% | to be set (currently 33.0%) | already killed (0xad7b288315b0d71d62827338251a8d89a98132a0) |
| bad-debt | sDOLA (oneway-30, βsDOLA-Long2β) | 0xaD444663c6C92B497225c6cE65feE2E7F78BFb86 | 2 | $60,240 | $4,521 | no change | to be set (currently 1.3%) | to be killed (0xa21043df8d25dc876f38bc5c7e54285f3e1a936b) |
| bad-debt | wstUSR (oneway-34) | 0x89707721927d7aaeeee513797A8d6cBbD0e08f41 | 7 | $2,069 | $320 | no change | to be set (currently 1.3%) | already killed (0x91d0f7022edb620429b4f63d482fcfbb2cbe7f30) |
| active | WETH (oneway-12, βWETH-long2β) | 0x23F5a668A9590130940eF55964ead9787976f2CC | 29 | $650,368 | $12 | β | β | |
| active | sreUSD (oneway-41) | 0x4F79Fe450a2BAF833E8f50340BD230f5A3eCaFe9 | 15 | $19.11M | β | β | β | |
| active | sfrxUSD (oneway-28) | 0x3DE37c38739dFb83b7A902842bF5393040f7BF50 | 14 | $11.20M | β | β | β | |
| active | WBTC (oneway-9) | 0xcaD85b7fe52B1939DCEebEe9bCf0b2a5Aa0cE617 | 40 | $2.60M | β | β | β | |
| active | sUSDe (oneway-11) | 0xB536FEa3a01c95Dd09932440eC802A75410139D6 | 26 | $2.00M | β | β | β | |
| active | wstETH (oneway-13) | 0x5756A035F276a8095A922931F224F4ed06149608 | 27 | $736K | β | β | β | |
| active | fxSAVE (oneway-39) | 0x8035b16053560b3C351b665b10f6C7dBDb6A1E05 | 13 | $320K | β | β | β | |
| active | tBTC (oneway-2) | 0x413FD2511BAD510947a91f5c6c79EBD8138C29Fc | 5 | $34K | β | β | β | |
| active | WETH (oneway-1) | 0xaade9230AA9161880E13a38C83400d3D1995267b | 6 | $32K | β | β | β | |
| active | XAUM (oneway-27) | 0xB4544e705665e0856961a51F7E86Ccf633404b86 | 2 | $7.6K | β | β | β | |
| active | sUSDS (oneway-32) | 0x2dA313f6DCEE04BA46466E100c4656618E5d3dDd | 3 | $7.2K | β | β | β | |
| idle | ycvxCRV (oneway-35) | 0x24174143cCF438f0A1F6dCF93B468C127123A96E | 1 | $5.9K | β | singleton | to be set (currently 33%) | to be killed (0xa7b4b02953687fd7f860bb6fe1c09450e01b8a71) |
| idle | sFRAX (oneway-15) | 0x8C2537F1a5b1b167A960A14B89f7860dd5F7cD68 | 3 | $5.7K | β | singleton | to be set (currently 1.3%) | to be killed (0xdff0ed66fddcc440fb3adfb2f12029925799979c) |
| idle | tBTC (oneway-31) | 0xc572297c5e995692B972c8eEa1D12b56b6399e1e | 1 | $4.0K | β | singleton | to be set (currently 6.5%) | to be killed (0x4ad7ee6648289980240c29e8fcb95d04f5d958e0) |
| idle | ynETHx (oneway-29) | 0x6f91f33Ac7122F025b73206239CbC81606F022D4 | 2 | $3.3K | β | singleton | to be set (currently 7%) | to be killed (0xc74796d3ec1a0165f2c127f3f50caa259823d36a) |
| idle | ynETH (oneway-23) | 0x143985860EFaeAcB92Db23E4b0c4d66Be51b08D2 | 2 | $2.6K | β | singleton | to be set (currently 13.0%) | to be killed (0x8966a85b414620ef460deeacd821c30c442c433f) |
| idle | pufETH (oneway-10) | 0x4f87158350c296955966059C50263F711cE0817C | 5 | $983 | β | singleton | to be set (currently 10.0%) | to be killed (0x294280254e1c8bcf56f8618623ec9235e8415633) |
| idle | sDOLA (oneway-17) | 0xCf3DF6C1B4A6b38496661B31170de9508b867C8E | 4 | $819 | β | singleton | to be set (currently 1.3%) | already killed (0x30e06cadfbc54d61b7821dc1e58026bf3435d2fe) |
| idle | USDe (oneway-14) | 0x74f88Baa966407b50c10B393bBD789639EFfE78B | 9 | $749 | β | singleton | to be set (currently 1.5%) | to be killed (0xeaed59025d6cf575238a9b4905aca11e000baad0) |
| idle | ETHFI (oneway-18) | 0xAC9AdD93364Aea685be238dB6c40BF53753f2cF1 | 1 | $167 | β | singleton | to be set (currently 13.0%) | already killed (0x3ba9d8792fa703ea21b6120e675aa34bda836aeb) |
| idle | PROS (oneway-45) | 0x6934ba5ED7B1664F9e04161D7d76291C3f9D8C21 | 1 | $100 | β | singleton | to be set (currently 12.0%) | no gauge |
| idle | wstETH (oneway-0) | 0x1E0165DbD2019441aB7927C018701f3138114D71 | 2 | $2 | β | singleton | to be set (currently 7.0%) | already killed (0x222d910ef37c06774e1edb9dc9459664f73776f0) |
| idle | UNIT0 (oneway-44) | 0xd15d9797c4ECBf1c97c010327602bC51A09Dfb95 | 1 | $1 | β | singleton | to be set (currently 12.0%) | to be killed (0x173c8b67823a4f7d80cb4d2b4ef375c2137d70cd) |
| idle | sUSDe (oneway-7) | 0x98Fc283d6636f6DCFf5a817A00Ac69A3ADd96907 | 2 | $1 | β | singleton | to be set (currently 3.5%) | to be killed (0x82195f78c313540e0363736b8320a256a019f7dd) |
| idle | ezETH (oneway-16) | 0x3c1350aa6FaFF17c87Bde2015BBb45100D37dAD3 | 0 | $0 | β | singleton | to be set (currently 10.0%) | already killed (0xad52a81d8aea772b8d21fe2bc573ef388bddac69) |
| idle | USD0USD0++ (oneway-19) | 0x1F9D988cDeBfA1FD5563C122a987186e516173c2 | 0 | $0 | β | singleton | to be set (currently 1.3%) | to be killed (0x4b4d4e87cc5cd3995965dada97d7abde376f8426) |
| idle | USD0USD0++ (oneway-20) | 0xDC8b1Caf2e10dE76fb67E82C2485E7d4fA098C53 | 0 | $0 | β | singleton | to be set (currently 1.3%) | to be killed (0x1d701d23ce74d5b721d24d668a79c44db2d5a0ae) |
| idle | swBTC (oneway-21) | 0x276B8C8873079eEACCF4Dd241De14be92D733b45 | 0 | $0 | β | singleton | to be set (currently 6.5%) | already killed (0x34b3a436eefab94cf95dfe20700c43330a5208e7) |
| idle | ynETH (oneway-22) | 0xdC5D5EE1223D4C8b7eAc8e876793f2171e7e8dEb | 0 | $0 | β | singleton | to be set (currently 1.3%) | to be killed (0xe9ca32785e192abd1bcf4e9fa0160dc47e93ed89) |
| idle | ynETH borrow (oneway-24) | 0x757C61d89bD0406BfcBB68178BBfaE79ECa46c0f | 0 | $0 | β | singleton | to be set (currently 13.0%) | to be killed (0x7eb2f263fbdace62fca1a49386410f9247c3d553) |
| idle | LBTC (oneway-25) | 0xC28C2FD809FC1795f90de1C9dA2131434A77721d | 0 | $0 | β | singleton | to be set (currently 6.5%) | no gauge |
| idle | RCH (oneway-26) | 0xf8C27436B277734AAA726A8fD5e6D7daDe0296c5 | 0 | $0 | β | singleton | to be set (currently 10.5%) | already killed (0x11c2a9fac65809c527bcb04fb7ec52080f053dc0) |
| idle | sUSDf (oneway-33) | 0xD961B0Da2B0Fb04439c96B552777720B5FC551A0 | 0 | $0 | β | singleton | to be set (currently 1.9%) | to be killed (0xfc31d6227e8b9341bdbf781b58c87c1ccff7ff2b) |
| idle | yvUSDC-1 (oneway-36) | 0xB62B9272679d7A495d7e9698d8663F217224408a | 0 | $0 | β | singleton | to be set (currently 1.3%) | no gauge |
| idle | yvUSDS-1 (oneway-37) | 0xE786af7faef857C8D850d648723Eec0A27cd8581 | 0 | $0 | β | singleton | to be set (currently 1.3%) | no gauge |
| idle | yvWETH-2 (oneway-38) | 0x5bfEE37053d711F49A0aCf5afEd6496fA68dCE32 | 0 | $0 | β | singleton | to be set (currently 7.0%) | no gauge |
| idle | CRV borrow (oneway-4) | 0xC510d73Ad34BeDECa8978B6914461aA7b50CF3Fc | 0 | $0 | β | singleton | to be set (currently 11.0%) | to be killed (0x99440e11485fc623c7a9f2064b97a961a440246b) |
| idle | sdeUSD (oneway-40) | 0xFA4f65B3Dc477738ce8618e9145E1f0Ad9E29034 | 0 | $0 | β | singleton | to be set (currently 1.9%) | already killed (0xcc0214391c24a948308f27e0d5ab4e832082d09a) |
| idle | zkBTC (oneway-42) | 0xbe0f8c48776c0433B2b778AE9c076C21683ebe7B | 0 | $0 | β | singleton | to be set (currently 6.5%) | no gauge |
| idle | zkBTC (oneway-43) | 0xbCc9AcD2E7934bb8B5d734416737694AcDD9E25a | 0 | $0 | β | singleton | to be set (currently 6.5%) | to be killed (0x169b6d105e05732ef9e0cd1d279dd81283d90aff) |
| idle | yvCurve-yYB-f (oneway-46) | 0x1591F867C42ecA199d59a4f8B0074DeDee5D843A | 0 | $0 | β | singleton | to be set (currently 22.0%) | no gauge |
| idle | WETH borrow (oneway-5) | 0xa5D9137d2A1Ee912469d911A8E74B6c77503bac8 | 0 | $0 | β | singleton | to be set (currently 7.0%) | to be killed (0x12b9db644ca8a8e27cd1770adb48513b5f8c5ae5) |
| idle | tBTC borrow (oneway-6) | 0xe438658874b0acf4D81c24172E137F0eE00621b8 | 0 | $0 | β | singleton | to be set (currently 6.5%) | to be killed (0x2605d72e460feff15bf4fd728a5ea31928895c2a) |
In-Progress Actions
| Chain | Market | Action | Status |
|---|---|---|---|
| Fraxtal | FXS/FRAX (oneway-2) | Set borrow rate to 0, loan discount to 50% | Done β vote passed and executed via proposal 1393. Controller now points at the singleton MP 0x7abEB1Dfbe7Dc5e64D1F392F7627162E6D53929F; loan discount = 50%; rate = 0%. |
| Fraxtal | SQUID (oneway-4) | Set borrow rate to 0, loan discount to 50%, kill gauge | Done β vote passed and executed via proposal 1393. Controller now points at the singleton MP 0x7abEB1Dfbe7Dc5e64D1F392F7627162E6D53929F; loan discount = 50%; rate = 0%; gauge kill action included. |
| Ethereum | CRV (oneway-3) | Set borrow rate to 0 | Done |
| Ethereum | CRV (oneway-3) | Set loan discount to 50%, kill gauge | Done β vote passed and executed via proposal 1391. Loan discount = 50%, gauge is_killed = true confirmed on-chain. |
Next Steps
For each bad-debt or idle market, the following procedure applies, with parameters varying by track. All markets are addressed together rather than phased by chain.
-
Set monetary policy (
Controller.set_monetary_policy)- Liquid bad-debt markets β no MP change. Existing utilization-driven policy stays in place; lenders earning yield on the solvent portion of the book are left undisturbed.
- Illiquid bad-debt markets β point at a zero-rate MP, halting further interest accrual on positions that are unlikely to repay so the shortfall stops growing.
- Idle markets β point at the singleton MP. The rate doesnβt matter (no open loans), but it keeps the deprecated cohort uniform.
-
Raise loan discount to maximum (
Controller.set_borrowing_discounts)Call
Controller.set_borrowing_discounts(MAX_LOAN_DISCOUNT, MAX_LIQUIDATION_DISCOUNT). The contract enforces a maximum value of 50% (loan_discount <= 5e17). This prevents new borrows from being underwritten against v1 collateral but does not retroactively touch existing positions. Applies to all markets in the deprecation cohort regardless of track. -
Kill the gauge
Set
is_killed = trueon each marketβs gauge (or RootGauges for L2 markets) to stop CRV emissions. Same procedure used in prior deprecations. Markets without a gauge or withis_killedalready true are skipped. -
UI removal
All deprecated markets will be hidden from the UI. Users with active positions in those markets will still be able to see and interact with them in order to manage or close their positions.