Yield farming 101

Andre Cronje
Yearn
Published in
3 min readJul 15, 2020

--

We have developed a new yield farming product. But before we launch, we want to explain a few concepts.

When we started with iearn, the options were simplistic, you had Aave, Compound, Dydx, and Fulcrum. Each offered lending markets for different assets. You could lend out your assets and earn passive interest on these assets.

This was a simpler time.

SNX started the concept of incentivized pools. They wanted to provide liquidity to their sETH, and realized the best way to do this, was to reward early participants, if you provided liquidity to sETH/ETH on uniswap, you received SNX rewards.

Now for those of us old enough to remember Havven, you would remember that SNX’s goal was to be a new kind of stable coin. With the focus on sUSD. But at the time of uniswap v1, you had no other options than asset/ETH, so they could not incentivize a single liquidity pool that contained sUSD/ETH, but would have had to incentivize multiple pools.

Along came CRV, a new simpler (not in math, but design), Automated Market Maker (AMM), which allowed a new way to farm yield on stable coins. You provide DAI and/or USDT and you earn trading fees.

So for those keeping track, we have identified a few ways already, in which you could earn yield;

  1. Trading fees from providing an asset to uniswap
  2. Incentivized SNX for providing liquidity to sETH/ETH
  3. Trading fees from providing DAI or USDT to CRV
  4. Lending interest from being a supplier to Aave, Compound, Fulcrum, or DyDx

iearn v1 was simply a lending LP, that switched between pools on deposit/withdraw.

We started discussion with CRV with regards to a yield switching pool, which would later become the Y pool in CRV. This combined the best features of iearn with the best features of CRV. A lending optimized, trade fee switching pool.

When you make a trade on y.curve.fi you are actually trading y tokens yDAI, yUSDT, etc, but the pool itself has awareness that yTokens are switching tokens, and as such they deposit/withdraw the underlying token asset.

At this point in time, we started discussions with SNX, as they were close to launching their own stable coin swap pool, for sUSD, and we added another layer, the sUSD pool. y Tokens + curve.fi + SNX incentivized.

So at this point, we had the ultimate combination, yield switching tokens + trading fees + incentivized liquidity.

This was a good time.

Then the incentivized liquidity wars began. Compound was the first to fire with their COMP token. And the liquidity rush started. Balancer was soon to follow with BAL, mStable launched MTA, Fulcrum launched BZX, and Curve is still waiting in the trenches to unveil CRV.

But this started making yield farming much more complex, and simply profit switching decisions would no longer be sufficient.

Right now, strategies can be as complex as;

  1. Supply DAI to compound, deposit cDAI into Balancer. Earning COMP on the DAI and BAL on the cDAI + lending interest on the DAI and trading fees on Balancer pool
  2. Supply DAI to curve, deposit curve tokens into Synthetix Mintr. Earning CRV on the DAI, SNX on the curve tokens, and trading fees on the curve pool.
  3. Supply DAI to mStable, deposit mStable to Balancer. Earning interst on the DAI and BAL on the mStable + trading fees from Balancer pool.
  4. Supply USDC to Maker, mint DAI, repeat options 1, 2, or 3

And the above are just some examples. A few weeks ago the best yield strategy was borrowing BAT from compound, now its doing leveraged DAI from compound. But next week it might be SNX pools for Curve.

The problem with all the above, their strategies are based on COMP, BAL, MTA, SNX, CRV, etc. And all these are price dependent. Which also means they are oracle dependent. At time of writing, no oracle exists for COMP, BAL, MTA, SNX, or CRV, unless you use a uniswap pool or balancer pool as index, and if you do that, prepare to have your liquidity drained by flash loans.

The point of this post, is to illustrate, that yield farming has become complex, and we expect it to become even more complex with time. So we need to provide a new kind of product, something that instead of trying to choose between these options, seeds these options.

And we have come up with just that.

In the next post, we will start detailing the solution, one block at a time.

--

--