Malt V2 Debrief + Future Plan

0xScotch
Malt Protocol
Published in
6 min readMay 25, 2022

--

Intro

What a crazy few weeks it has been in the stablecoin world. Needless to say it hasn’t been the best time for stablecoins in general. However, despite all that, the Malt team are extremely pleased with how our code worked throughout V2. We have learned a lot again and have big plans moving forward.

This article will break down exactly what played out in Malt V2, why we decided to shut it down and repay everyone and what our plans for the future are.

Break down of what happened in V2

Malt V2 got off to an unbelievable start growing to $10mm of TVL in only a few hours. The first epoch’s APR was 4.6mm%! This was so high that the calculation for APY created a number so large that the UI crashed.

After the explosive initial growth the protocol quickly settled into normal operation and starting doing what it does — holding a solid $1 peg. TVL was growing steadily and the above and below peg mechanics were put to the test and passed with flying colors.

Malt V2 Price Stability

The code worked flawlessly. We even saw the price drop slightly below peg early on and saw the Swing Trader step in to swiftly return the price back to peg. Implied Collateral got close to 80% in the early stages and protocol health was looking great.

Unfortunately, the high APR seen in epoch 1 catapulted us into an uphill battle due to the APR averaging used to create the current desired APR. Having such a large outlier in the first epoch kept the average APR very high and therefore required the protocol to start using the Reward Overflow much sooner than we would have liked.

This also created some confusion as the displayed APR was higher than the real APR being seen by our users.

After about 36 hours the Reward Overflow was depleted to 0. The Reward Overflow is what funds the APR runway which is the incentive for new participants to join. The capital in the Reward Overflow should be increasing in the early stages as the initial demand streams into the protocol — this builds up the reserves and is what will allow the protocol to sustain itself when the initial demand slows down. Due to the APR for epoch 1 being uncapped the Reward Overflow got depleted, removing our main incentive for new participants.

This was happening at the exact same time that UST and Luna were collapsing. While this obviously doesn’t directly affect Malt it did introduce a lot of fear into the market in general and especially around algorithmic stablecoins. We believe the uncapped epoch 1 APR was ultimately the loose thread that stopped Malt from finding a sustainable peg this time. However, it is hard to deny the timing coinciding with the UST collapse made things much harder.

With that said, we were extremely pleased with the performance of the code. The stability mechanism worked. Malt worked. The improvements required this time are only tweaks to parameters related to APR cap and Implied Collateral growth to be more conservative and prioritize protocol health initially.

Why did we pause the contracts?

Due to the depleted Reward Overflow, subsequent dropping APR and overall market fear around stablecoins it is understandable that some large wallets wanted to exit the protocol. The aim was to get to 100% Implied Collateral before demand plateaued but unfortunately we were only at 74% Implied Collateral when they started to exit. This resulted in a large chunk of the Implied Collateral being depleted as these wallets exited.

At the same time a few users where reporting an issue with unbonding. After some quick investigation we isolated the issue. The issue was being caused by a tiny rounding error in the way automatic auction contribution for LPs was handled. The accounts leaving the protocol had triggered automatic LP contribution to auctions. The rounding error was 0.000000000000008. But that’s all it takes.

Fortunately, the issue was very easy to fix and we could have pushed a fix in under 20 minutes. This put us in a bit of a conundrum though. Implied Collateral was depleted, demand was dropping quickly, fear was everywhere and now we had an unbonding issue. PTSD. This was a perfect storm for a large exodus.

We could have just put our heads down and pushed the fix. But this felt like a risk. Rumors spread quickly in defi — especially when on the surface this issue looks a lot like the issue we had in v1. If a bank run started before we pushed a fix there could be a huge losses for everyone who stays in (our biggest believers). If we push a fix and put out a statement that the issue is resolved we still have the reduced implied collateral and market fear to contend with and might still see the bank run.

Instead of gambling with our user’s funds we decided to pause the protocol to give us the time to think what the best course of action would be. We have always said Malt is an experiment that we are iterating on so protecting our investor’s from avoidable losses while we iterate has always been our number 1 priority. Pausing was the only way we could guarantee avoiding large losses.

Why did we decide to repay everyone instead of unpausing?

As many of you will already know we paid back 100% of face value cost basis to everyone who was still in Malt when we paused it. This amounted to nearly $10.5mm in repayments. Unfortunately, we were about $100k short of paying back 100% using the funds recovered from the protocol. The team decided to cover the remaining $100k out of our treasury (about 50% of our treasury) to make sure everyone got paid back 100% of the face value of their holdings. But how did we get to that point?

When we had paused the contracts we did some very quick back of the envelope calculations to figure out how much capital we had available to us. We came to the conclusion we could probably cover 100% of the face value cost of everyone still in the protocol.

At this point we had to weigh up the chances of success given the current Malt parameters (and the outlier epoch 1 APR), depleted Reward Overflow, reduced Implied Collateral and overarching fear around UST. We decided that the timing was just not right this time and that we had learned enough already that we could make some minor tweaks to the protocol and relaunch when conditions were more favorable. In our mind this would give us a much larger chance of success in the long run than just pushing a fix and unpausing. Given that we could cover 100% of everyone’s cost it made the decision to repay everyone and relaunch much easier.

We still firmly stand behind our decision to pause and ultimately repay everyone instead of continuing. We believe we saved our biggest believers from large losses this time around. We also believe we have given the protocol the best chance of succeeding by resetting with significantly improved mechanics.

Plan moving forward

Here are the core improvements we will be working on in the coming weeks:

  • Capping the APR to avoid crazy outliers.
  • Being more conservative with reward distribution and prioritize Implied Collateral growth early on.
  • Allow users to directly invest in the Swing Trader.
  • Replace the current Auction system with an improved mechanism.

The rough timeline for this looks like this:

  1. Implement changes and improvements — 2 weeks
  2. Get an audit done on changes — 1 week
  3. Implement and remediation found in audit — 1 week
  4. Launch whenever the team and community feel the conditions are more favorable.

We look forward to embarking on the next leg of this journey with you all. We could not ask for a better community to stand behind us. We truly believe we have the best community in Defi.

Thanks,

The Malt Team

--

--

0xScotch
Malt Protocol

Defi builder trying to make cool stuff. Currently building Malt Protocol, an algorithmic stablecoin.