Welcome back, adventurer.
We started this journey in an attempt to hunt for the most sustainable yields in DeFi. Our first stop was the lending pools. An analysis of their mechanics and how they generate yield led us to conclude that they could not satisfy our needs despite being a crucial building block of DeFi. You can explore that journey here.
Today, we resume our journey and navigate the world of AMMs and fixed-yield protocols.
Generating yields from AMMs
Deposit to our pools and earn trading fees whenever someone swaps their assets!
A befitting sales pitch for AMMs. In AMMs, you trade your assets against a liquidity pool - unlike centralized exchanges. The liquidity providers (LPs) provide paired liquidity to different pools to facilitate this trading. As an LP, you get trading fees that the traders pay in return for providing liquidity, and that is how you effectively generate returns in AMMs (you also get value-accrual governance tokens but more on that later). Naturally, the returns vary according to the trading activity on that pool.
If there’s no activity (i.e., 0 trades happening in that pool), then the average returns by supplying liquidity to those pools are skewed because they can either be too high (in cases where there is sudden activity) or too low (when there is little-to-no trading activity). To substantiate, let’s look at the top AMMs on DeFiLlama and analyze the top-performing pools.
- In Curve’s 3pool (USDC, USDT, and DAI), the TVL is $1.4B, while the daily volume is $45M with a maximum APY of 1.097%.
- On Uniswap, apart from the top pools the fees collected on most pools are miniscule. Take the FEI/TRIBE pool for example with a TVL of roughly $113M, daily volume of $400K and only $1,201 fees collected. Based on this, the rough APY comes out to be 0.38%.
- On Sushiswap, the biggest pool (ILV/ETH) has a TVL of $169M along with a $1.9M daily volume and an APY of 1.04%.
We know that the way these pools are created, the trading activity on them have an impact on the generated returns. But what has a greater impact is the Impermanent Loss (IL). What is it? Let’s dig a little deeper.
Understanding Impermanent Loss
At its core, constant function market makers (such as Uniswap that has the second largest TVL in the market, second only to Curve) on a simple formula that helps the make-up of all trading pools.
x*y = k
Here, x and y are the amounts of the assets in the liquidity pool. Despite the market conditions (and/or the price changes in the prices of assets x and y), k is always a constant. Therefore, whenever someone purchases the asset x from the pool in return for y, then the quantities of the assets in the pool are adjusted so that the constant k remains the same.
But what happens when the value of the asset you deposited in the pool reduces at a given time after you’ve deposited it in the pool? This is referred to as IL. It is also known as unrealized loss because you incur this loss only when you close your LP position. But, given the highly volatile nature of crypto markets, LPs are more exposed to the risks of IL when they deposit their assets in liquidity pools.
Most AMMs have a constant product function where the LPs lose money if any token in the pool moves rapidly in either direction (up or down). This problem is exacerbated by arbitrage - when users exploit the difference in the price of the same asset across different exchanges. Let’s understand this through an example.
Suppose you have deposited paired assets (x,y) into the liquidity pool. If the price of x is slightly lower than its price on another exchange, then arbitrageurs can buy x from the initial pool and sell it for a profit on the other exchange. This creates a cycle of arbitrage whenever an asset goes down in price. Now, remember the constant product formula,
x*y = k
This does not take into account the price of the assets. When the quantity of x decreases, it is made up for by the increasing quantities of asset y, ensuring that the constant remains the same. The difference in the price of these two assets is effectively being paid for by the LPs themselves as they are the ones who have supplied liquidity to these pools.
IL risk is biggest when the price of an asset moves in one direction
And because there is a significant IL when the market suddenly moves in one direction, then not only are you as an LP paying for the arbitrage opportunities to balance the price of the asset, but you are also exposing your LP position to IL - thus, instead of sustainable yields on your deposited capital, you are effectively making nothing! Add to this the opportunity costs of having your capital locked in a liquidity pool and not being able to utilize it anywhere else (for spot trading, for instance).
While Uniswap v3 aimed at solving this problem by introducing concentrated liquidity, as Bancor has shown, the risks of IL still persist. Other AMMs like Bancor and Kyber have also attempted to create workarounds by diversifying the risks associated with IL and using dynamic pricing curves, respectively. However, some of these protocols are still in their early stages.
The dynamic nature of these liquidity pools and the price-independent calculation of the constant product formula render the average yield from LP positions risky. While the trading fees seem lucrative, they can either get too high for similarly-priced pairs such as stablecoins or too low for highly volatile pairs. And even though the IL risks in stable pools are quite low, we have already seen above how the returns from these pools are minimal (look at Curve’s returns above).
In most of these protocols, governance subsidies play a crucial role in compensating users for IL. And if But as seen with The Hunt for Sustainable Yields in DeFi - Part I, they are unsustainable. Rational profit-seeking users deposit their liquidity to get yield from the protocol and the governance tokens. However, as the returns from the protocol peak, they start dumping these tokens in the market to withdraw their deposited liquidity.
Not only are your assets exposed to the IL when you become an LP on an AMM, but your governance yield is exposed to the prevailing market volatility.
Generating yields from fixed-rate protocols
Deposit your funds in our protocol and get fixed yields...always.
Now isn’t that an attractive promise? Imagine putting your money in a DeFi protocol and getting the same yield throughout the period that you hold the investment for!
But wait - how are these protocols generating yield?
Are they relying on lending/borrowing protocols or AMMs...or how?
That’s what we will discover in this section. Specifically, we’ll explore Anchor Protocol in the Terra ecosystem and understand how it generated yields for its users.
Anchor was a fixed-rate yield protocol in the Terra ecosystem that offered 20% returns to users who lent their assets. It aimed to achieve this yield by primarily relying on staking rewards, along with using the interest paid by borrowers. A crucial third factor played a vital role in ensuring that the fixed rate of the protocol was maintained - the yield reserve. The reserve helped balance the yields being offered out to depositors if there was ever a deviation.
How Anchor offered yield to depositors
The base yield that was lent out to depositors came from the staking rewards of deposited collateral. When a borrower deposited their assets to the protocol, they were staked and the borrowers were issued what were known as bAssets. These represented the borrowers’ initial stake in the protocol. The rewards generated from these bAssets were collected by the yield reserve. Another key aspect here was the ANC token. It was the governance token of the protocol that was given out to borrowers as an incentive. And this is where it got very interesting:
- The token captured a portion of the fees generated by the protocol. Specifically, 10% of the value that flowed to the yield reserve was used for the ANC token’s value accrual. This protocol fee was “sourced” from rewards on bAssets, the excess yield (more than the fixed yield that the protocol offers), and liquidation fees.
- If the deposited yields exceeded the fixed yield rate, the additional value was accumulated in the yield reserve. A portion of that value was, then, used to purchase ANC.
- If a loan got liquidated, then 1% of the collateral value was sent to the yield reserve, a portion of which again was used to purchase ANC.
On top of this, the weak mechanics of UST were making things work. I’m not going to get into the details of why UST (an unbacked stable!) was doomed to lose its peg but you can read about it in the thread below.
Did it actually work though 🤔
It almost felt like the perfect mechanics were in place when you added all of this up.
- You have depositors who are lending their assets to the protocol.
- You have borrowers whose collateral is being staked, which is fueling the rewards for the depositors along with rewards coming in from the interest that is being paid out by the borrowers.
- If there is any deviation from the fixed yield, then the yield reserve (replenished by the excess deposit rates) makes up for it.
On top of all that, the borrowers were getting the ANC tokens as incentives for borrowing from the protocol in the first place. And these tokens were accruing value from the in-protocol activity, among other ways.
For this entire cycle to function properly, though, the protocol needed to have consistent demand from borrowers. Because if it was, then that means there were instances of a) excess deposit yields, b) liquidations on loans, and c) generation of protocol fees. All of this would further help keep the entire system alive. But what if the amount of capital deposited far exceeded the number of borrows in the protocol?
As we have seen, that is exactly what had happened. Because there were far fewer borrowers, there were lesser instances of excess deposit yields, and lesser instances of liquidations. And to make matters worse, the protocol was already issuing more ANC tokens to borrowers as incentives. But wait, wasn’t the value of the ANC tokens reliant on the protocol itself?
In the end, this is what it all looked like:
- The protocol had more depositors than borrowers, forcing more emission of ANC tokens and more drawing of capital from the yield reserve to sustain the 20% yield.
- The value that was being generated for the depositors was not coming from within the protocol itself – but from external sources. The yield reserve could not be sustained by the protocol’s mechanics itself.
And if the yield reserve could not be sustained, how could the protocol keep up the 20% yield? The internal mechanics of the protocol were not resilient enough to sustain such a high yield, rendering it highly unsustainable and risky.
So neither AMMs nor fixed-rate protocols (even the likes of Anchor, which had over $15B in TVL just a few weeks ago) are sufficient to offer us sustainable yields. It’s interesting how even the protocols with the strongest convictions and an extremely passionate community can...well...fail.
This puts us back on our journey...
on the hunt for the most sustainable yields.
And for the next time, we will have an entirely new set of protocols to explore. Can you tell what they will be?