Proposal to Increase maxDiscount on Bad Debt Repayer Contract

Proposal to Increase maxDiscount on Bad Debt Repayer Contract


On the 9th of September, 2022, Proposal 57 was executed to launch the Debt Repayer and Converter contracts that provided a novel and fair option for users holding bad debt stemming from the April 2nd price manipulation incident to recover liquid assets.

To date, the Debt Repayer contract has distributed the following to users (for insolvent anTokens):

47.44 wETH

3.33 WBTC

1.15 YFI

In doing this, the user-held bad debt has been reduced by:

94.18 ETH (~$163k)

7.07 WBTC (~$182k)

2.22 YFI (~$21k)

Today, the current maximum discount set on the Debt Repayer is 55%. In order to accelerate the reduction in bad debt, this proposal increases the discount to 80% while preserving the current zero discount reserve threshold at 15%.


The purpose of the Debt Repayer is to allow a more market-based repayment approach while speeding up the time taken for total repayment of user-held bad debt for the DAO. The contract is designed to allow participants willing to accept the largest discount on their anToken to withdraw first. This means that if deployed with the correct parameters, there should only ever be 1 participant willing to accept the current discount.

The first few months of usage showed us that multiple users would compete to accept the discounts (between 50-55%). This suggests that the starting discount of 55% was above what the market would bear. Further evidence of this is debt holders who have reached out in private to DAO contributors, offering to negotiate private OTC swaps of anTokens for even larger discounts (up to 75%). Based on this data, the TWG recommends that the max discount be increased to 80%. It is believed that starting at a discount of 80% will more accurately reflect demand.

For a quick summary of how the contract works (please see proposal 57 for greater detail):

  • The contract tracks current outstanding debt for each token (ETH, WBTC, YFI), as remainingDebt.
  • The current balance of WETH/WBTC/YFI stored in the repayment contract is tracked, as reserves.
  • A reserve ratio is calculated, by (reserves/remainingDebt) for each asset
  • The discount is what the user accepts when swapping their anToken for the underlying asset
  • At 0% reserve ratio, the discount = maxDiscount, which after this proposal will be 80%
  • At zeroDiscountReserveThreshold (15% reserve ratio currently), the discount is 0%

Hypothetical situation for the ETH market:

  • remainingDebt = 1,000 ETH
  • If the balance of the contract is 0 ETH
    • Reserve ratio = 0 / 1,000 = 0%
    • Discount = maxDiscount
    • Discount = 80%
  • If the ETH balance of the contract is 10 ETH:
    • Reserve ratio = 10 / 1,000 = 1%
    • Discount = [maxDiscount - (maxDiscount / (zeroDiscountReserveThreshold / reserve ratio))]
    • Discount = [80% - (80% / (15% / 1%))] = 74.67%
  • If the ETH balance of the contract is 90 ETH
    • Reserve ratio = 90 / 1,000 = 9%
    • Discount = [maxDiscount - (maxDiscount / (zeroDiscountReserveThreshold / reserve ratio))]
    • Discount = [80% - (80% / (15% / 9%))] = 32%

On Chain Action

  • Set newMaxDiscount to 80%