How to Avoid Impermanent Loss
What is impermanent loss and how Zircon fixes it (unlike others)
If you’ve ever staked/farmed in a DEX liquidity pool, you’ll probably have heard of Impermanent loss. It’s an issue affecting all liquidity pools in DEXs that reduces your gains in a bull market, and increases your losses in downturns.
In this article we will explain what is impermanent loss and how to minimize or even avoid it.
What is impermanent loss, anyway?
Let’s first define exactly what are the “symptoms” of impermanent loss.
Let’s imagine that Alice and Bob each have 10 ETH and 10,000 DAI. Alice places her tokens in a liquidity pool, while Bob just keeps them idle in his wallet. Let’s also imagine that ETH is worth $1,000.
If ETH goes up to $4,000, Bob’s portfolio is going to be worth $50,000. Meanwhile, Alice is suffering rebalancing from the liquidity pool: because of impermanent loss her portfolio will be worth just $40,000.
The same happens when ETH goes down to $500: Bob’s portfolio is worth $15,000, while Alice’s is $14,000.
As you can see, impermanent loss cuts both ways.
One important aspect here is the benchmark: you’re comparing the DEX liquidity pool to the same 50-50 portfolio, but one that’s outside of the pool. In practice this rarely happens. Depending on the state of the market, Bob will want to be mostly in ETH, or mostly in DAI.
If Bob held 20 ETH outside the pool, they’d be worth $80,000 when ETH goes up to $4,000. Alice doesn’t have this option, so she is losing 50% of her potential gains just by accepting the liquidity pool’s 50/50 distribution.
Why does impermanent loss happen? 💸
There are a lot of theories about what causes impermanent loss. The most common says that it’s because of arbitrage traders who are “extracting value” from the pool when they do their job.
This is true, but it’s also just a symptom. The reality is that impermanent loss is a fundamental feature of AMMs. When someone buys ETH, they are removing it from the pool. It now has less ETH than before that can rise in value, and over time this effect compounds.
You can’t remove impermanent loss without losing the ability to earn fees from swaps. The only thing you can do is manage it.
Why existing solutions against impermanent loss failed
“Fixing Impermanent Loss” is one of DeFi’s biggest memes. A lot of teams claimed to “fix it” by reducing profits for arbitrage traders, or raising fees during periods of high volatility.
Some examples include Bancor V2 (not to be confused with V2.1), Mooniswap (an AMM by 1inch), Kyber DMM and recently, Trader Joe’s Liquidity Book.
These approaches work by slightly increasing your yield from swap fees. But they’re never going to be enough to turn Alice’s $40,000 into $80,000.
A more convincing solution was designed by Bancor in V2.1. Here, the protocol offered impermanent loss insurance, which covered impermanent loss with BNT tokens. The idea was that the protocol would earn enough in fees to cover these losses. They were never enough, and in practice the system relied on BNT never going down in price more than the rest of the market.
Unfortunately it did, and the Bancor team was forced to pause the insurance mechanism to avoid hyperinflating BNT.
How Zircon is different 💎
Zircon spent many months iterating on and developing the ideal anti-impermanent loss solution. One that isn’t a meme, and one that doesn’t try to promise the moon only to fall flat when the crunch comes.
It all starts with single-sided staking, where we split liquidity pools into two vaults (one for each token). With Zircon, Alice can supply the full 20 ETH into the Float vault, as long as there’s at least someone else willing to provide some DAI for the Stable side. This already reduces 50% of her losses.
But then we have the rebalancing mechanism, powered by a system we call Async LPing.
It’s all based on an internal weight between the two sides. Let’s say they start out at an even 50/50, but then as ETH goes up in price, the Float vault will have a larger and larger weight.
Thanks to the Async LPing system, new DAI liquidity providers can join by supplying an equal mix of ETH and DAI. The moment they join the pool, they virtually convert their assets to 100% DAI, giving away all the future gains from their ETH. These gains are given to the Float side, who now has access to more ETH that can rise in price.
The “strength” of impermanent loss for Float holders is reset, so if ETH continues to go up in price, they’ll suffer much less than before. In theory if LPs kept adding/removing liquidity to always keep weights at 50/50, there’d be no impermanent loss.
But why should new DAI LPs join the pool in this situation? The protocol incentivizes them by giving them a larger proportion of fees. If Floats control 70% of the pool, Stable LPs will get 70% of fees. This multiplies total APR for that side, offering a very strong incentive to join it.
Zircon uses market incentives and fees to dramatically decrease impermanent loss. It’s not designed to cover it fully: it covers that 90% that really stings, without betting the entire protocol on compensating every cent.
Zircon is launching on Moonriver very soon. Join our Twitter and subscribe to the blog to learn more about it.