[AIP-4] Handling of a recent bad debt on WaultSwap’s position and solution to eliminate this risk in the future

Background:

With WaultSwap’s migration and tokenomics change that took place in Q3 last year, we have deprecated our LYF integration with the platform and disabled new positions from being opened. Despite warnings and recommendations for users to close their positions, there are still 100+ active LYF positions on WaultSwap.

As liquidity in these LP pools decreases and debt value continues to accrue from borrowing interest, while the positions no longer earns yields, these positions pose higher risk of bad debt.

Several days ago, one such event occurred and incurred ~$12k USDT in bad debt. This happened because the LYF position is large relative to the underlying liquidity in the pool. When liquidation happened, a part of the LP must be swapped back to the borrowed asset (in this case from TUSD → USDT) but because there isn’t much liquidity in the pool, the swap caused a large price impact resulting in a much lower amount of USDT received and bad debt.

Proposed Implementation:

We would like to propose two independent votes to handle this issue:

First Vote: (AIP-4.1)

Yes or No on the activation of Alpaca Insurance Plan as outlined here: Security - Alpaca Finance

  • If activated, 50% of the platform’s earnings would be directed to cover the $24k bad debt (which will be deposited back into the USDT pool.)
  • ALPACA governance stakers will still receive ALPACA emission rewards, Grazing Range rewards, and 50% of Protocol Revenue.
  • Once the bad debt is covered, 100% of the platform’s revenue will go back to Governance Vault’s stakers as usual.
  • Based on the current revenue run rate and structure above, it should take ~2 weeks to cover bad debt.

Second Vote: (AIP-4.2)

  • Yes or No to close all remaining WaultSwap’s positions and return funds to users to prevent future bad debt cases.

As of March 19th, there are 113 positions with total debt of $140k USD

Below please find the implementation plan:

  • We will upgrade the WaultSwap farming contract to allow for a privileged address (i.e., dev controlled address) to liquidate any WaultSwap’s positions (only for WaultSwap. No change to PCS or MDEX positions.)
  • We will change the liquidation method. Instead of swapping non-borrowed token in the DEX (this is the cause of bad debt due to low liquidity), we will use oracle price and let the new liquidation strategy deduct the necessary amount from our wallet as determined by the Oracle with a 5% discount.
  • Farming positions will now have all base assets and be able to pay back debt and close the positions
  • Any remaining value after debt repayment is sent back to users

In Step #2, Alpaca Core team will provide the liquidity required to close the positions. We will then manually swap them in CEX or other DEX to get back stablecoin. If there is any profit after, we will use them to buyback ALPACA and burn. Note: Some tokens e.g., MATIC no longer has DEX liquidity on BNB Chain and must be traded on CEX.

Update: Bad debt amount is actually 12,088 USDT, there was an error in the script that double counted the amount to 24k USDT initially.

11 Likes

Yes we should cover the bad debt, yes close all remaining positions. Should have been done when the integration was deprecated in the first place and this should be done in future as well.

If we don’t cover the bad debt it can impact the trust people have in Alpaca. This should be done asap.

5 Likes

This is a great use for Gov. It is important we eliminate bad debt vulnerabilities while keeping the trust of the herd.
I agree that the platform should cover it and we should close remaining positions.

2 Likes

I will vote yes for both.

1 Like

same, I vote yes to both

1 Like

Reasons to vote NO:
If we implement that, aren´t we covering the risk of the one who lend the money?
Lending it’s never a risk free strategy and people should be aware of that.
Lenders should contribute in some way to solve their bad financial decisions (I really don’t know how).

Reasons to vote YES
If i vote YES, it’s only in order to prevent a damage in the Alpaca Finance image. The price impact could be worse than lose some revenue for two week. Another important thing it is that we make profit from the TVL, that came from the lenders, we don’t want to scare them.

For the future:
Despite yes or no to cover the bad debt, I totally agree that we whould implement a long term solution, and I think that the one you proposed is a good one. That makes us more anti-fragile.

Another thing that could be done it’s to create a reserve fund to cover these unforseen situations. Insted of giving 5% interest to the lenders, give them 4,99% and keep 0,01% for that fund. It will work like an insurance fee. (The % are just examples)

1 Like

If you are waiting for my opinion its “yes” for both

1 Like

Hi everyone. AIP-4.1 and AIP4.2 are now live for voting on Snahpshot. Plase cast your vote by 3PM UTC on Wednesday, March 30th.

Link to AIP-4.1: Snapshot

Link to AIP-4.2: Snapshot

1 Like

Could you give us the bad debt transaction id?

1 Like

Why the debt is ~$24K?
29153 debtibUSDT is ~33156 USDT, and the transaction already return 20929(22030-220-881) USDT to lending pool.
I think the debt is ~12226 USDT.

is it 50% of all platform’s earnings or 50% of the share that goes to us governance stakers?

From this post:
" * If activated, 50% of the platform’s earnings would be directed to cover the $24k bad debt (which will be deposited back into the USDT pool.)"

While in the medium post it seems to indicate our 50% share gets halved:
" In the case of a shortfall event, up to 50% of future Protocol Revenue going to the Governance Vault would be available to pay back users who lost funds"

With the only benefit for stakers seemingly being that it might attract more capital in the long-run, I hope it’s the former and we share both profits and debt equally

It’s per the Docs in the Insurance Plan section:

50% of the share that goes to Governance Vault stakers

1 Like

Thanks for point it out. Our dev rechecked it and looks like the script was double counting value.

The actual amount of bad debt is 12,088 USDT

3 Likes