Waves Protocol
Published in

Waves Protocol

The Waves DeFi Revival Plan

The master plan to make all Waves protocol users whole and restore full functioning of its ecosystem’s DeFi Protocols.

On the 2nd of April 2022, the Neutrino Protocol Stablecoin — USDN depegged from the US dollar. This was due to aggressive selling of the token in the USDN liquidity pool on Curve Finance. The de-pegging alone was incredibly unfortunate, but the problems didn’t stop there. Then Vires Finance, the Waves-based lending protocol, ran into a liquidity crisis, a “bank run.” Worried lenders rushed to withdraw their positions from the protocol.

Both problems are still existing today. In the case of Neutrino, the peg has been — almost — restored not once but twice. The second large de-pegging occurred due to the LUNA/UST crisis around the 10th of May 2022. At the time of writing, USDN is at $0.97. In the case of Vires, user withdrawals are limited because most of the lent funds have been borrowed. Several very large borrowers are blocking the majority of lenders from withdrawing, with lenders having to wait for their repayments to have the liquidity to withdraw.

This article will show the steps Waves DeFi protocols have already taken to fix the situation and why they were important. However, most of the community has been waiting patiently for the master plan in full: what we will do next and how we see that resolving the situation. This is that plan.

The steps towards recovery

A bank run situation has led other protocols to total destruction, and correcting it is not an easy task. However, two things have helped us weather the storm. First, the immediate actions of the Neutrino and Vires Finance teams to find and propose solutions. Second, the fast comprehension of those proposals and voting by the Waves community members.

Fixing the Peg

The first problem to address was the depeg. Without a stablecoin worth $1, the follow-up plans could not work.

Vote #7: Defining Max Swap Amount parameters

  • What this did: Changed the swap parameters to make arbitrage of USDN back to peg more accessible. As a result, less NSBT is needed to swap Waves for USDN for $1.
  • Why: Previously, Users required large amounts of NSBT (The Neutrino governance token) to interact with the smart contract directly and swap USDN for Waves at the hardcoded $1 rate. This limited the number of users who could participate in arbitrage (Buying USDN in the Curve Pool at the depegged value and selling it back to the smart contract at the hardcoded $1 rate). By changing these parameters, less NSBT is needed, and thus, more users could work on bringing USDN back to peg.
  • Result: This has worked well with large amounts of users buying from the Curve pool, and millions of dollars worth of arbitraging, bringing the USDN back to peg twice in the last two months.

Solving the liquidity crisis

The second problem was bringing enough liquidity back into Vires Finance, with the community confidence severely impacted. How to do this while avoiding the same situation from happening all over again? Because when liquidity is returned, everyone withdraws it all in an instant. That would mean the fastest users — typically bots — get to take their deposits, and most normal users remain stuck.

Set WAVES/USDN/EURN Liquidation Threshold to 1, Max Borrow APR for all assets to 400

  • What it means: All borrowers must return 99.98% of their loans to avoid liquidation of their positions. And the rate users would need to pay on loans is reduced from what it was at 80% to 40%
  • Why: This was in reaction to community outrage as well as evidence found that there was price manipulation occurring. Several large accounts had borrowed the majority of the deposits. We realized that those borrows if liquidated, would fix the situation quickly as their collateral could be used to restore liquidity to the lenders.
  • Result: This proposal was rejected by the community. Users wanted to retain free-market principles and felt the proposal was too severe.

Set daily withdrawal limits for USDT and USDC

  • What: $1000 per day withdrawal limits are imposed on USDT and USDC
  • Why: We saw most of the liquidity paid back by the borrowers every day getting immediately overrun by bots. This meant the average user was unable to withdraw their funds.
  • Result: This harsh withdrawal limit was necessary to set up the next step, namely the introduction of dynamic borrow and withdrawal rates. It has limited the bot activity and has meant average users at least can withdraw $1k daily since implementation.

Adaptive Borrow and Withdraw Limits for the Lending Markets of Vires.Finance

  • What: Establish dynamic limits to prevent large liquidity exits through over-borrowing or withdrawing. Both borrowing and withdrawing as well as importing and redeeming vTokens are limited automatically, depending on the level of market utilization.
  • Why: By introducing dynamic limits based on utilization rate, we can gradually lift (or reapply) withdrawal and borrowing limits automatically as the situation normalizes. Meaning that Vires users with collateral in the protocol will know when they can withdraw based on the utilization rate.
  • Result: This proposal was accepted, and the changes were made. This will push the markets to a ~80% utilization position, which is both a decent APY and a healthy margin for borrows and withdrawals.

Introduce Liquidity Position lock to gain a larger share of VIRES Token rewards

  • What: Introduced 3–6–12 month liquidity locks and changed the distribution of VIRES rewards in favor of users who support the long-term sustainability of the protocol.
  • Why: We needed to prevent further bank run situations. Believing many community members want to support the long-term sustainability of Vires, we wanted to reward this behavior. However, many users want to leave, and we want to give them the opportunity to do so in a sustainable way that doesn’t cause critical liquidity problems. This solution means users are rewarded a larger share of the VIRES token rewards based on the amount of time they lock their positions for.
  • Result: Since the inception one day ago, already $20m has been locked, demonstrating there is still significant confidence in the protocol. We hope for this to continue to allow the users who want to leave quicker access to their funds.

The Master plan

Now that we have restored the peg and have a reliable mechanism and market of arbitrageurs who are consistently working to defend it, we can reveal our second phase.

The steps will go like this:

  1. Begin buying and locking CRV tokens with 45% of the WAVES staking profits from Neutrino, and vote to incentivize the USDN 3-pool. To improve demand for USDN.
  2. Liquidate large accounts, taking control over their collateral.
  3. Sell their collateral without depegging USDN to return liquidity to Vires Finance and reduce utilization rate, enabling larger user withdrawals.
  4. Improve Neutrino architecture with a new recap token that recapitalizes Neutrino with new Waves Tokens when under-collateralized.

Begin buying and locking CRV tokens with 45% of the WAVES staking profits from Neutrino, and vote to incentivize the USDN 3-pool. To improve demand for USDN.

Neutrino needs to adjust to external conditions. Curve Finance did not exist when Neutrino was created, but now it holds a lot of power over the market pricing of USDN. The initial depegging was caused by large selling volumes in the Curve pool. Therefore, we must do what we can to bring stability to USDN and protect it against large imbalances in Curve.

Neutrino intends to participate actively in voting for the USDN 3-pool to receive additional rewards, making USDN a very attractive pool for the Curve community. Neutrino’s goal is to lock 1–3% of all CRV tokens to give us sufficient voting power over the rewards distribution gauges.

This should bring significant liquidity to USDN and help to buffer further attacks on the peg.

Liquidate large accounts, taking control over their collateral.

It is unfair that most users have to suffer due to a few large whales abusing the system. Therefore, there will be a Vires Finance proposal for Sasha Ivanov, Waves Founder to take control of the $400m debt of the largest borrowers in Vires. This will mean Sasha can liquidate the whale’s collateral, sell the USDN and return that liquidity to Vires.

This frees up liquidity -> reducing the utilization rate -> enabling larger and larger withdrawals.

Sell their collateral without depegging USDN to return liquidity to Vires Finance and reduce utilization rate, enabling larger user withdrawals.

The problem is that Neutrino must still maintain the peg to sell the USDN without large amounts of wasted slippage. Therefore, the liquidation and selling of the USDN collateral must be done in a controlled, methodical way that does not put too much pressure on the price of USDN.

Because of this, it is likely to take 1–2 months before the situation is fully resolved and Vires Finance is back to normal operation.

That being said, with adaptive limits imposed, once the utilization rate is <95%, withdrawals of $10k a day will be enabled automatically. We believe most users who want to leave will be able to do so quicker than the 1–2 month route to full functionality.

Improve Neutrino architecture with a new recap token that recapitalizes Neutrino with new Waves Tokens when under-collateralized.

Another issue is the Backing Rate of USDN, currently being below 100%. The dollar value of the WAVES tokens in the Neutrino smart contract is presently lower than the amount of USDN in circulation.

The NSBT token was supposed to be how Neutrino is recapitalized, but it doesn’t work in this situation. This is due to the number of tokens in circulation. There are only ~2.8 million NSBTs, and 95% of them are locked for long periods. Meaning that they cannot be used to recapitalize. So there is a need for a new token.

Neutrino will issue a recapitalization token that will have two features:

  • First, you can issue a recap token using WAVES whenever the BR <1; this token can always be redeemed for $1 worth of WAVES in the smart contract — once the BR is >1.
  • Second, recap token holders will receive APY from the 50% of all WAVES tokens staked in the Neutrino smart contract.

Therefore, the recap token has the potential to take on its own value, due to the rewards its holders receive. Eventually, NSBT will be depreciated and replaced by the recap token, but they will first exist together. This will benefit NSBT holders as there will be an exchange for market value of your NSBT tokens to recap tokens, which you can then sell on the market or hold to receive the rewards.

The new recap token will benefit NSBT holders in 2 ways:

  1. You can exchange the NSBT for recap tokens at market value — meaning if NSBT is $20 and BR is at 0.5 — You would get 40 recap tokens for every NSBT you exchanged. You’re effectively getting the recap tokens at 50% discount, and once BR returned to >1 you could sell at the market rate.
  2. You can exchange your NSBT tokens even if they are locked, with no unstaking fee.

Users will be able to buy the recap token at a discount whenever BR is <1, and they’ll always be able to sell it for $1 once BR is >1. This way, we have a mechanism to recapitalize Neutrino during hostile market conditions.

Building back stronger, better with the most robust protections in DeFi.

Waves DeFi has suffered a significant crisis. One that other protocols have been through and been destroyed by. The protocols have adapted dramatically, and every single change was made in true DeFi fashion — with true decentralized governance! The community, in their wisdom, has led the way, rejecting proposals that would have been against free-market values and accepting proposals that benefit the long-term sustainability of the Waves DeFi ecosystem. With these proposed changes in place, Waves DeFi will be restored to full function, be more sustainable, and better prepared to withstand further attacks.

We urge the community to support the upcoming proposals and help us maintain the protocols’ sustainability.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store