[Temp Check] Use Treasury Funds to Repay Bad Debt

Abstract

This post is to start discussion and gather feedback regarding TWO separate but related proposals aiming at repaying bad debt on crvUSD mint markets and the CRV LlamaLend market.

Background

Following the large market volatility and exceptionally fast price drawdown from last Friday, both mint and lend markets were left with some amount of bad debt.

On crvUSD mint markets, bad debt at the time of writing amounts to $35k, almost entirely from the WETH market.

On LlamaLend markets, there is currently over $800k of bad debt, with the Ethereum CRV market accounting for two third of it with $539k. The remainder is on Fraxtal’s SQUID and FXS markets, with the former already having prior bad debt that the project has planned to mitigate over time.

Earlier this year, Curve started accumulating a Treasury which now holds $402k worth of crvUSD. One of the rationale for accumulating a treasury at the time was the ability to cover bad debt in times of market drawdowns.

Proposals

There will be two separate onchain proposals submitted to the DAO in the upcoming days.

Proposal 1: Repay the $35k of bad debt on the crvUSD mint markets using Treasury funds

This is in my opinion a fairly straightforward proposal, not having bad debt on crvUSD markets is essential for the health, stability and perception of what is now the DAO’s main revenue generating product. The amount of bad debt is small, represents less than 10% of the treasury’s value and being able to clear such debt is one of the reason why we have a treasury.

Proposal 2: Repay as much of the bad debt as possible on the CRV lend market

This is a less straightforward proposal as lenders on Llamalend are supposed to accept the risk inherent with supplying in a market, but some factors in this case do warrant intervention. The DAO does bear a responsibility to lenders as parameters may have hampered the efficiency of liquidations and worsened the bad debt. This particular market is also important for optics, since it’s using our governance token as collateral. Inaction could damage the protocol’s reputation and deter future lenders. On the other hand, lenders were aware that they were taking on risk and were already getting paid to do so. Paying off the bad debt means that we would need to fully deplete the treasury to make them somewhat whole. The treasury is however not enough to cover everything and emptying it will still leave one third of the bad debt outstanding (~$175k). Finally, this creates moral hazard as users may adopt riskier behaviors on the premise that the DAO will again step in and clear bad debt in the future.

Final Remarks

  • We are aiming for a quick resolution of both matters and therefore would appreciate prompt responses from the community. We would prefer not to gamble that the market might recover and fix it (last major bad debt in 2024 took 1 year to clear).

  • We are still ironing out the exact operational details for the repayment and will provide an update once a clearer picture emerges.

  • We welcome creative suggestions for different, possibly gradual or longer, repayment plans, in particular for lend markets.

2 Likes

Summary:

  • Proposal 1 is no longer relevant, as bad debt in mint markets has already been cleared.
  • Re: Proposal 2, we recommend a targeted ≈100k crvUSD repayment in the CRV lend market, reviewed monthly.
  • Continue simulations and parameter optimization to reduce the likelihood of bad debt accrual in mint and lend markets.
  • Use this as an opportunity to define the treasury’s role and operational framework.

CRV Market Bad Debt Analysis

Key findings:

  • Two large positions account for roughly one-third of total bad debt.
  • Around two-thirds of shortfalls fall below Pᵢ = 1.2, meaning most positions would naturally clear if CRV returned to ≈ $1.20–$1.50.
  • A targeted 100,750 crvUSD paydown across seven addresses would bring all positions to Pᵢ ≤ 1, making them liquidatable again around $1 CRV.

We recommend a gradual, data-driven intervention focused on those positions, reassessed monthly, rather than a one-off full treasury drain. This materially improves market health while avoiding moral-hazard concerns and preserving funds for future events.

The majority of the bad debt is concentrated in the CRV-long market on Ethereum. We will focus on a plan to address this market in particular.

Given below is a list of all accounts in CRV-long market that have a shortfall greater than 10 crvUSD (assuming CRV=$0.60).

  • x_crvUSD: collateral held as crvUSD
  • y_CRV: collateral held as CRV
  • debt_crvUSD: crvUSD debt outstanding
  • P_i: Price of CRV when debt_crvUSD = collateral_crvUSD
  • shortfall@CRV=$0.6: Bad debt per account assuming CRV = $0.60
user x_crvUSD y_CRV debt_crvUSD P_i shortfall@CRV=$0.6
0x82925fbee7060FB6B23600A92Ff1C04735DE0b99 119,277.103376 143,735.344880 317,512.499229 1.379169 111,994.188925
0xD76AA47f1Ad6ce7f78ddCD4643A85C87B7e7C047 0.000000 475,457.510796 355,715.307921 0.748154 70,440.801443
0xe69A49F8F9C1d66fefA66Dfb61155c06606986D1 20,257.935575 209,244.065041 211,875.531155 0.915761 66,071.156556
0x6e22c49c85de053107fEA6E09ffFbC4b5029C5f1 26,119.558235 82,598.383557 121,983.662186 1.160605 46,305.073816
0x6bE91cbC96071e3F1Cb79b50deF8D59a016Fa1c6 117,398.293306 25,567.575575 174,245.132652 2.223396 41,506.294001
0x6620912AC168458ED84D5D3d6c83E728abf9941F 3,017.898506 104,446.802791 90,221.556576 0.834910 24,535.576395
0x3b96f28e3B45a19FA3e89232D0680E54872D3d58 8,251.692706 44,399.468251 53,533.435243 1.019871 18,642.061586
0x1cABC2a3E7fD58B16502bF7c60c5a5e41b9Db638 2,047.516991 70,862.755326 60,795.030895 0.829032 16,229.860707
0xFfb3Cad58bb14eeDDfDd077c99c73e96Feb1602a 0.000000 113,212.863944 80,411.481786 0.710268 12,483.763420
0x1Fdf62394aBDa67BE5346f9eA426A447Bf602Fcc 2,347.104457 24,243.224380 24,945.113559 0.932137 8,052.074475
0x72Ec1Fd9929A854719d9A1a2aFc7fFcd7C0C7DeE 1,977.990369 20,430.647730 20,335.199486 0.898513 6,098.820480
0x802d8Db785bD165125D5907A5F67Ce3E4012C384 2,016.404320 10,849.565391 13,019.958207 1.014193 4,493.814652
0x0fc6144F9eA35EE67Ee4e38c5Ea47B2960C13Ccc 2,373.724206 8,127.700245 9,766.064433 0.909524 2,515.720079
0x2400a45243e6B13dbaF549FCAc88Eda203df80D2 0.000000 29,776.768597 20,060.381751 0.673692 2,194.320593
0x8D7E07b1A346ac29e922ac01Fa34cb2029f536B9 0.000000 86,234.073951 53,695.934328 0.622677 1,955.489958
0x36bF825269bCD6988a491c04053e0855d445db97 985.231112 3,373.459784 4,919.633470 1.166281 1,910.326487
0x28949AEdec812949Ff872bF13dA323Ce5bc82728 785.183149 4,440.471087 5,333.867305 1.024370 1,884.401503
0xbbc84a064d7FD00F2383A6b0faFf8c78C7517eB2 367.495650 2,078.309768 2,534.924400 1.042881 920.442889
0xcbcE52b5576771C7c8F5C21E29640D29E9636a8F 342.772142 1,938.490130 2,361.152526 1.041213 855.286306
0x21F4aA70F4C375b6Ee91570A1e1D86FDE4Cad098 0.000000 13,925.825476 9,171.955371 0.658629 816.460086
0x38F4362d888985a8ef4B9Cc9E51277C13Aca5C37 0.000000 4,521.292674 3,501.571669 0.774463 788.796064
0xe5b2a2459914B78F52bEF1d294605EfC91E311a3 0.000000 15,087.071277 9,608.400061 0.636863 556.157295
0x50de06228FB5b6ba51e4d40AA93d16B9BeFBaE7E 0.000000 3,065.018009 2,361.159556 0.770357 522.148751
0xA903f50Fe59B8939443e818b2451f4f1e021BcE4 0.000000 8,951.236373 5,885.728674 0.657532 514.986850
0x477A3cC7c323607510f6b5555Cc2e30FE4B4fC6A 0.000000 20,433.985122 12,752.588902 0.624087 492.197829
0xcc433e8c820900aba3CC7F54A5076F426183f99F 0.000000 1,571.416806 1,060.568953 0.674913 117.718869
0x1b7A9C831B4f2088FA6eaE337088ae2Fc9913ef5 0.000000 462.418212 350.984650 0.759020 73.533723
0x7Ae37200fbc08e1cb786059934f671fbE62d7c0f 13.869631 47.490018 67.666698 1.132808 25.303056

Taking a closer look at the distribution of P_i, the majority of accounts are below 1.5, meaning bad debt in the majority of accounts can be cleared if CRV reaches a price of $1.5.

The outstanding crvUSD debt of accounts greater that 10 is shown below.

Around 2/3 of the total shortfall is below P_i = 1.2. Two large user positions account for 1/3 of the outstanding debt and greatest shortfall (0x82925fbee7060FB6B23600A92Ff1C04735DE0b99 and 0x6bE91cbC96071e3F1Cb79b50deF8D59a016Fa1c6).

See also, shortfalls scaled linearly.

If no action is taken, the approximate bad debt at different prices of CRV (P) are:

  • P=0.50 → ~595,913 crvUSD
  • P=0.80 → ~200,765
  • P=1.00 → ~100,927
  • P=1.20 → ~51,920
  • P=1.50 → ~18,497
  • P=2.00 → ~5,713

Recommendation

The table below includes accounts with over 1k shortfall when CRV=0.6 and where P_i is higher than 1. It gives the crvUSD repayment required to bring the shortfall of each account down to P_i = 1, meaning the accounts would then become liquidatable when CRV = ~$1.

user debt_crvUSD P_i shortfall@CRV=$0.6 paydown_to_1
0x6bE91cbC96071e3F1Cb79b50deF8D59a016Fa1c6 174,245.132652 2.223396 41,506.294001 31,279.263771
0x82925fbee7060FB6B23600A92Ff1C04735DE0b99 317,512.499229 1.379169 111,994.188925 54,500.050973
0x36bF825269bCD6988a491c04053e0855d445db97 4,919.633470 1.166281 1,910.326487 560.942573
0x6e22c49c85de053107fEA6E09ffFbC4b5029C5f1 121,983.662186 1.160605 46,305.073816 13,265.720394
0x28949AEdec812949Ff872bF13dA323Ce5bc82728 5,333.867305 1.024370 1,884.401503 108.213069
0x3b96f28e3B45a19FA3e89232D0680E54872D3d58 53,533.435243 1.019871 18,642.061586 882.274285
0x802d8Db785bD165125D5907A5F67Ce3E4012C384 13,019.958207 1.014193 4,493.814652 153.988495

This totals 100,750 crvUSD required to bring the total bad debt exposure in the CRV-long market within a range of P_i <= 1.

We recommend to address the most egregious shortfalls in the market firstly by paying down 100,750 crvUSD to the seven accounts listed above. This should be reassessed on a monthly basis. This will have the following implications for bad debt at different prices of CRV:

CRV price Before paydowns After paydowns Reduction
0.50 595,912.79 495,162.33 100,750.45
0.80 200,765.47 100,015.02 100,750.45
1.00 100,927.31 176.86 100,750.45
1.20 51,920.06 1.33 51,918.73
1.50 18,496.57 1.10 18,495.48
2.00 5,712.52 0.84 5,711.69

While there are no guarantees about price performance to organically clear the debt at certain price targets, the lend market is also not critical to crvUSD stability and steps should be taken to minimize expense to the treasury as much as reasonably possible while ensuring that the market does ultimately resolve the accumulated bad debt.

Note on Treasury Purpose and Framework

This incident also underscores the importance of having a clearly defined treasury purpose and management framework. At present, the treasury’s role is somewhat implicit — initially accumulated to act as a backstop for crvUSD — but not formally codified. We recommend that the DAO:

  • Clarifies the mandate of the treasury (e.g. risk backstop, ecosystem development, market support).
  • Establishes rules and thresholds for when treasury intervention is warranted (e.g. max % allocation for bad debt, liquidity support, etc.).
  • Defines governance and reporting mechanisms for treasury deployment and replenishment.

Such a framework would improve transparency, guide expectations, and strengthen Curve’s resilience in future market drawdowns.

Future Risk Mitigation

In parallel, we are running simulations and recalibrating market parameters for the CRV lend market and other highly volatile lend markets (e.g., FXS, ARB). The goal is to reduce the likelihood of similar bad debt formation during sharp price crashes and to ensure liquidation efficiency under extreme volatility scenarios.

We will be putting up a vote shortly to modify parameters in the CRV-long market that aims to reduce future unsafe borrow exposure without impacting existing borrow positions.

2 Likes

Was any of this debt from YieldBasis LPs?

This seems reasonable. I’m generally not in favor of backstopping “permissionless” markets. However, CRV is the gov token for Llamalend, so repaying $100k from treasury and reviewing based on price action seems fair. With utilization at 76% currently, there is space for suppliers to still withdraw, if suppliers were trapped, I think it would warrant more prompt action.

In terms of future treasury use I think the flexibility of not having a formally defined framework is powerful, as it’s hard to formally write all future possibilities and scenarios. I personally think it would be helpful to have a loose framework though. Is the main goal of the treasury to completely fund all development, infrastructure and operations in the future? If so that does mean risk-backstop becomes a secondary goal and should be limited.

no ser, YieldBasis didn’t get any bad debt

I don’t see any reason why treasury should repay and sets bad precedence.

1 Like

To clarify, the repayment of the bad debt would be done by liquidating underwater positions rather than simply repaying loans on behalf borrowers. This means that the DAO would be able to get back some amount of CRV collateral for each liquidation (given that mint market debt has cleared, we would only target the CRV lending market). The process would be akin to purchasing CRV at a premium. According to the simulations below, the loss is expected to be between ~20 and 40% in most scenarios, meaning the DAO would require a 25 to 67% CRV price increase to break even.

Not all positions are equally as unprofitable to liquidate and so to minimize losses, it is better to target specific accounts by their level of (un)profitability rather than simply focus on the amount of debt they have accrued.

Proposed strategy: Liquidate the accounts that will yield the most CRV per liquidation in decreasing order of efficiency. Use 100,000 crvUSD for the liquidation as per LlamaRisk’s recommendation. Expected return will be 100~150k CRV, for a 20 to 40% loss and a 5 to 25% reduction of the bad debt. Liquidations will be executed via a dedicated contract, given a 100k crvUSD allowance on the Treasury by the upcoming proposal. A designated trusted third party will be the contract’s sole authorized caller, and will provide the list of users to liquidate as input to the contract. All the liquidation proceeds in CRV and any remaining crvUSD will be sent back to the Treasury.

Further details:

The table below shows the expected PnL for different strategies using $100k to repay the debt:

Strategy CRV Received CRV $ Value CRV Price paid Gas Used Total PnL (USD)
Liquidate the position with largest debt 117,252 $64,610 $0.8529 256,078 -$35,391.0
Split funds across 7 largest debt positions 83,053 $45,765 $1.2041 1,012,681 -$54,239.0
Partially liquidate multiple users to minimize losses 134,328 $74,019 $0.7444 857,662 -$25,984.0

Running rough simulations at different price levels and different amount of committed repayment funds, the strategy would yield the following potential results:

Full detailed data:

Budget Price Spent CRV CRV $ Value PnL PnL % Bad Debt Before Bad Debt After
100,000 0.4 100,000 140,093 56,037 -43,963.0 -43.96% 540,771 453,832
100,000 0.5 100,000 138,874 69,437 -30,563.1 -30.56% 540,771 509,890
100,000 0.6 100,000 128,972 77,383 -22,616.9 -22.62% 540,771 506,863
100,000 0.7 100,000 117,415 82,190 -17,809.8 -17.81% 540,771 468,282
100,000 0.8 100,000 102,507 82,005 -17,994.6 -17.99% 540,771 405,036
200,000 0.4 200,000 269,278 107,711 -92,288.9 -46.14% 540,771 425,164
200,000 0.5 200,000 265,399 132,700 -67,300.4 -33.65% 540,771 479,754
200,000 0.6 200,000 240,101 144,061 -55,939.4 -27.97% 540,771 468,225
200,000 0.7 200,000 218,381 152,866 -47,133.5 -23.57% 540,771 424,033
200,000 0.8 200,000 180,566 144,453 -55,547.3 -27.77% 540,771 348,138
300,000 0.4 300,000 398,565 159,426 -140,573.8 -46.86% 540,771 396,553
300,000 0.5 300,000 392,459 196,230 -103,770.3 -34.59% 540,771 449,913
300,000 0.6 300,000 355,157 213,094 -86,905.9 -28.97% 540,771 431,756
300,000 0.7 300,000 318,490 222,943 -77,056.8 -25.69% 540,771 379,310
300,000 0.8 226,052 190,031 152,025 -74,027.4 -24.68% 540,771 327,312
400,000 0.4 400,000 530,567 212,227 -187,773.2 -46.94% 540,771 369,440
400,000 0.5 400,000 522,357 261,178 -138,821.6 -34.71% 540,771 421,639
400,000 0.6 400,000 465,323 279,194 -120,806.0 -30.20% 540,771 392,586
400,000 0.7 400,000 379,035 265,324 -134,675.5 -33.67% 540,771 312,742
400,000 0.8 226,052 190,031 152,025 -74,027.4 -18.51% 540,771 327,312

In short, in the most likely price scenarios for the short term, the DAO would be acquiring CRV at a 25 to 30% loss to whatever amount of capital it commits to clear the bad debt. Note that as we are acquiring CRV collateral with the crvUSD used to liquidate, the bad debt is not reduced by the amount of crvUSD we originally commit but rather by the net top-up after crediting the value of the CRV we take. Put simply: when we liquidate, the user’s own stablecoin first pays down part of their debt (this doesn’t change the shortfall), then our new crvUSD tops up the remainder, and we receive CRV in return. Only the portion of our top-up that isn’t “matched” by the CRV’s oracle value actually reduces bad debt. So spending 100k crvUSD typically cuts bad debt by much less than 100k, because a large share is offset by the collateral we’re acquiring.

Actually running the operation would entail calculating the list of users ordered by profitability, as well as frac amounts and slippage (min_x). This is better done off-chain and at the time of executing the liquidation. Neither running the calculation on-chain or hardcoding the users and values in a proposal that will be executed a week later are practical solutions.

Instead the proposal could approve spending to a contract that will handle the liquidation for an authorized user. The contract will have a liquidate function that takes a list of user addresses, frac and min_x values as arguments. The function will iterate through the users and liquidate them, sending the proceeds of the liquidation and any remaining crvUSD balance at the end of the process back to the treasury contract. The liquidate function will be permissioned to a trusted third party who will agree to compute the list of users to liquidate and execute the transaction.

1 Like

Wow nice work!

But, personally, I don’t think we should pay.

I don’t want to replicate tradfi, where at the end loss is always socialized.

People take risk in financial markets, which is reflected by yield. If we socialize loss every time this risk hits, yield in fact can be the same in all the markets.

The question is, do we enough, that users understand this risks? I think we should improve on this.

The DAO should repay Bad Debt

In DeFi, no One is responsible legally but if you loose money in a protocol, it is user fault.

From a user perspective, they want to lend on a money market that is safe and governed.

So the main question is who is reponsible of bad debt?

-Dev

-Dao

-Users

Who will pay the bad debt ?

-Dev

-Dao

-Users

Some examples to consider :

Resupply has managed to repay the hacked funds.

In term of bad debt, all users are set in a lost.

In short term, the DAO should pay the bad debt

But in long term I think the best option is to implement the concept of Junior/senior tranch

Junior tranche higher yield, bad debt if for you

Senior tranche lower yield, safer (no bad debt)

Aave has implemented Junior/Senior tranche via Umbrella staking module (considered as Junior tranche)

I think at minimum, it MUST be repaid in mint markets.

In lend markets (like CRV), I am also in favor of repaying, however salvaging isolated lending markets should not be guaranteed. So it should be done in a way to NOT set up a precedent

1 Like

Yes mint market = crvUSD is not well backed

For lend market, a code modification implementing junior/senior tranche is the best way to prevent this kind of discussions

“Resupply has managed to repay the hacked funds.”

They did partly, I got an haircut of like 12%. (thats fine for me)

The function of that pool has to been like umbrella, so users with loss can’t complain. ( but did anyway)

Junior/Senior is a good idea, but may technically very complex for isolated lending markets. The main issue is if you optimize all the params in a lending market for the worst case, you are way less capital efficient in normal condition. And, on top, every user will make a tick on the junior tranch, because more shiny high numbers, and if loss hits complain and ask for reimbursement anyway.

And, there is a reason these markets are isolated, they are, because if shit hits the fan, its not spilled over to the whole system.

If you pay for every bad debt, then you don’t need to make isolated markets, because then in fact is the same as aave. The whole design of isolation is obsolet.

What can be done is bad dept pool per market by taking some fee and keep that for this purpose, but it will be dust if you compare this to the damage done.

Isolated markets allow to have risky assets, which will blow up from time to time. So the only way I see is better information for users.