[Anthias Labs] - Minimum Reserves Recommendations

[Anthias Labs] Minimum Reserve Recommendations (1/8/26)

The following report gives minimum reserves recommendations for Base and OP Mainnet for the month of January. Below are our recommendations as well as the current state of reserves and bad debt on Base and OP Mainnet. Additionally, the bottom of this post contains recommendations for next steps to remediate bad debt on the protocol using reserves.

Current Reserves

The table below details the current state of reserves on Base. It gives the current reserve levels, as well as the monthly change in reserves from last month to this month. It should be noted that 300 WETH was withdrawn and converted to cbXRP over the past month.

Asset Total Reserves Total Reserves (USD) Monthly Change (Tokens) Monthly Change (USD)
AERO 166977.4032 $101,188.31 19217.8572 $11,646.02
cbBTC 0.4645 $43,620.92 0.0158 $1,483.77
cbETH 10.6186 $38,385.15 0.6225 $2,250.27
cbXRP 496082.4255 $1,170,258.44 467416.2381 $1,102,634.91
DAI 1798.3254 $1,798.33 43.3261 $43.33
EURC 23536.1306 $27,584.35 371.1894 $435.03
LBTC 0.2014 $18,960.07 0.0001 $9.41
MAMO 3333.5764 $86.67 270.749 $7.04
MORPHO 14256.3285 $17,392.72 43.6173 $53.21
rETH 2.9432 $10,966.96 0.0113 $42.11
tBTC 0.0747 $7,045.16 0.0001 $9.43
USDC 105716.1659 $105,716.17 9976.7512 $9,976.75
USDS 130.4403 $130.44 5.3579 $5.36
VIRTUAL 867711.8773 $947,541.37 5602.3243 $6,117.74
weETH 6.0124 $21,053.65 0.0027 $9.45
WELL 2492218.551 $19,937.75 239693.8708 $1,917.55
WETH 49.2119 $158,861.08 -299.4872 -$966,775.53
wrsETH 0.8118 $2,783.57 0 $0.00
wstETH 6.6436 $26,221.82 0.0044 $17.37
Total: $2,719,532.92 Total: +$169,883.22

Recommended Minimum Reserves

We recommend the protocol sends no reserves to auction this month in order to accrue reserves to cover bad debt as quickly as possible. The following recommendations propose minimum reserves above their current levels for all markets.

Asset Recommended Reserves
AERO 600000
cbBTC 4
cbETH 100
cbXRP 1300000
DAI 1500
EURC 250000
LBTC 1
MAMO 600000
MORPHO 140000
rETH 6
tBTC 1
USDC 800000
USDS 2500
VIRTUAL 2000000
weETH 8
WELL 4000000
WETH 400
wrsETH 1
wstETH 100

Bad Debt

With Moonwell’s contracts (Compound V2), there are two ways to fix insolvencies caused by bad debt. The first is to maintain enough reserves in the market to cover the shortfall, as reserves can serve as excess withdrawal liquidity. The second is to repay the debt on behalf of the borrower. Each approach has its pros and cons.

The first approach requires the minimum amount of capital to restore solvency. However, the bad debt continues to accrue interest. The protocol can essentially ignore this accrual and only hold reserves equal to the initial principal amount borrowed (the portion that became bad debt). The interest technically increases, but it’s never claimable, as no rational borrower will repay it. As a result, the accounting remains permanently broken. Utilization stays distorted, which can mislead suppliers into thinking they’re earning higher rates than they actually are. Yet suppliers are still made whole through redemptions.

The second option is to repay the debt on behalf of the borrower. This fully corrects the accounting but requires the protocol to cover any interest that has accrued since the debt went bad.

Ultimately, the second option is cleaner and effectively the only viable one if the protocol wants to continue actively supporting the market. If the goal is to sunset a market with bad debt, the first option is the cheapest way to make suppliers whole again. At the end of the day both methods increase the cash available for withdraw.

On Base, all of the bad debt materializes from three addresses listed below.

Address: 0xa98e339f5a0f135792286d481b4e23d91a667d3f

Reason: Oracle misprice 10/10/25

Token Amount USD Value
VIRTUAL 1944480.799 $2,219,041.00
AERO 257209.2132 $156,555.40
MORPHO 119226.4849 $147,280.48

Address: 0x42ecd332d47c91cbc83b39bd7f53cebe5e9734bb

Reason: wrsETH oracle misprice 11/4/25

Token Amount USD Value
cbXRP 1232048.966 $2,948,293.00
wstETH 81.8219 $322,934.17
EURC 155519.7753 $182,422.40
cbETH 47.8816 $172,930.52
AERO 204486.462 $124,464.67
USDC 80624.9828 $80,633.05
tBTC 0.0121 $1,130.60

Address: 0x6a8ee608d88db389796b9c02a1aaa36b89ac660c

Reason: Unfairly liquidated 11/4/25

Token Amount USD Value
cbBTC 0.147 $13,771.00
WETH 0.2254 $726.18
wstETH 0.0049 $19.32
MORPHO 10.3106 $12.73
weETH 0.0033 $11.57
rETH 0.0005 $1.83
wrsETH 0.0003 $1.15
cbETH 0.0002 $0.73
cbXRP 0.1173 $0.28
EURC 0.0015 $0.01
USDC 0.0005 $0.01
VIRTUAL 0.00008244 $0.01
AERO 0.00003968 $0.01

The table below summarizes all the bad debt on Base, along with remaining insolvency after reserves are accounted for. In some markets the bad debt is fully covered by reserves, while others such as VIRTUAL and cbXRP the debt is too great. For these markets where reserves cover bad debt fully, we recommend paying off the debt on behalf of the borrower by calling the rebayBorrowBehalf() function. This will fix the accounting issues in that contract where utilization may be slightly skewed. For other markets we recommend keeping the reserves as is until either a decision is made to sunset the market, or enough reserves are accrued to fully cover the debt.

Asset Bad Debt (tokens) Bad Debt (USD) Remaining Insolvency (tokens) Remaining Insolvency (USD)
AERO 461695.6752 $279,787.58 294718.272 $178,599.27
cbBTC 0.147 $13,804.68 0 $0.00
cbETH 47.8818 $173,087.78 37.2632 $134,702.63
cbXRP 1232049.083 $2,906,403.79 735966.6577 $1,736,145.35
DAI 0 $0.00 0 $0.00
EURC 155519.7768 $182,269.18 131983.6462 $154,684.83
LBTC 0 $0.00 0 $0.00
MAMO 0 $0.00 0 $0.00
MORPHO 119236.7955 $145,468.89 104980.467 $128,076.17
rETH 0.0005 $1.86 0 $0.00
tBTC 0.0121 $1,141.18 0 $0.00
USDC 80624.9833 $80,624.98 0 $0.00
USDS 0 $0.00 0 $0.00
VIRTUAL 1944480.799 $2,123,373.03 1076768.922 $1,175,831.66
weETH 0.0033 $11.56 0 $0.00
WELL 0 $0.00 0 $0.00
WETH 0.2254 $727.61 0 $0.00
wrsETH 0.0003 $1.03 0 $0.00
wstETH 81.8268 $322,964.65 75.1832 $296,742.83
Total: $6,229,667.81 Total: $3,804,782.74

Using reserves to repay on borrowers behalf

As mentioned above, the cleanest way to recapitalize markets with bad debt is to repay the debt on each borrowers behalf.

In Moonwell’s mToken contracts, each market tracks:

  • totalSupply — total mTokens outstanding
  • totalBorrows — aggregate borrows outstanding
  • totalReserves — reserves accrued to the protocol
  • cash — underlying actually held by the mToken contract

Utilization is calculated as:

U = totalBorrows / (cash + totalBorrows)

Because bad debt remains inside totalBorrows, it keeps utilization elevated, even if real borrowing demand is gone and even if the market has little/no cash. This matters because utilization is the input to the interest rate model. Interest rates get distorted, and the system charges interest on uncollectible debt.

When the protocol repays the bad debt (by calling rebayBorrowBehalf()), it does two critical things:

  1. Removes the uncollectible balance from totalBorrows
  2. Injects real underlying into cash (although keeping the underlying as reserves does the same thing)

This normalizes utilization, normalizes the interest rate model output, stops interest compounding on phantom borrows, and makes the exchange rate reflect collectible assets rather than a mix of cash + unrecoverable IOUs.

For starters, we recommend the protocol repay the following bad debt balances. All of these markets have enough reserves to pay off the bad debt. Although simply holding the reserves solves the solvency issue, paying back the debt goes the extra step to fix the accounting issue.

Address: 0x6a8ee608d88db389796b9c02a1aaa36b89ac660c

Token Position Debt (tokens) Position Debt (USD) Reserves Available (tokens)
cbBTC 0.147 $13,771.00 0.4645
WETH 0.2254 $726.18 49.2119

Address: 0x42ecd332d47c91cbc83b39bd7f53cebe5e9734bb

Token Position Debt (tokens) Position Debt (USD) Reserves Available (tokens)
USDC 80624.9828 $80,633.05 105716.1659
tBTC 0.0121 $1,130.60 0.0747

OP Mainnet

Current Reserves

Asset Total Reserves Total Reserves (USD) Monthly Change (tokens) Monthly Change (USD)
cbETH 0 0 0 0
DAI 1560.9434 $1,560.94 36.6934 36.6934
OP 8494.4496 $2,684.25 320.9773 101.4288268
rETH 0.2432 $898.17 0.1199 442.8059273
USDC 63242.4556 $63,242.46 137.9138 137.9138
USDT 9191.9676 $9,191.97 42.6144 42.6144
USDT0 3087.3978 $3,087.40 18.8451 18.8451
VELO 349377.6785 $8,385.06 38452.7946 922.8670704
weETH 0.1479 $513.43 0.0001 0.3471464
WETH 29.8631 $95,545.44 -2.458 -7864.243184
wrsETH 0.1363 $463.21 0 0
wstETH 1.8298 $7,166.38 0.0001 0.3916484
$192,738.70 Total: -$6160.34

The reason for the decline in reserves this month is because in last months recommendation we instructed the protocol to withdraw approximately 3 WETH and move it to rETH and cbETH reserves. This swap has yet to happen, but will execute soon.

Recommended Minimum Reserves

Similarly to Base, we propose minimum reserves such that no reserves will be auctioned off until enough reserves are accrued to pay off outstanding bad debt.

Asset Recommended Reserves
cbETH 0.2
DAI 22500
OP 10000
rETH 3
USDC 136000
USDT 73600
USDT0 40000
VELO 600000
weETH 3
WETH 180
wrsETH 2
wstETH 12

Bad Debt

On OP Mainnet all bad debt materializes from three addresses listed below.

Address: 0xa98e339f5a0f135792286d481b4e23d91a667d3f

Reason: wrsETH oracle mispricing 11/4/25

Asset Amount USD Value
rETH 2.3124 rETH $8,674.71
wstETH 1.3962 wstETH $5,556.15
cbETH 0.1003 cbETH $364.76

Address: 0x79376987955480e421e0b23bfd01de05b6e068fe

Reason: Unknown circa March 2025

Asset Amount USD Value
VELO 801.3516 VELO $18.98

Address: 0x703dfcd90b7003549dd89e97d541137ecb03c4d2

Reason: Unknown circa February 2025

Asset Amount USD Value
VELO 640.2615 VELO $15.12

We recommend the protocol take action to repay these underwater positions using reserves to fix accounting in the affected markets. There is sufficient reserves in all respective markets to cover the debt listed above (after WETH swaps execute).