TL;DR: Collection creators dedicate a certain amount of rewards to users who provide liquidity for their collection. These token rewards can come in the form of the project’s NFTs from their treasury, ETH in their treasury, any ERC-20 token, or any ERC-721 token that the team, their partners, or anyone else would want to dedicate towards rewarding liquidity.

These rewards are then distributed according to the user’s percentage stake in the liquidity pool. The more NFTs and ETH they deposit into the liquidity pool, the greater the rewards. Liquidity providers can claim rewards and withdraw funds from the pool at any time.

Fig.1 - How does NFT Yield Farming work?

Fig.1 - How does NFT Yield Farming work?

To understand how yield farming works, you first have to understand how liquidity pools work. So, what are liquidity pools?

Let us quickly take a step back. There are currently two ways of trading NFTs: through order books on OpenSea, Blur, etc., or through liquidity pools (LPs) on platforms like Caviar, NFTX, and Sudoswap.

With order books, if you want to buy an NFT, someone has to be actively putting up their NFT for sale at a certain price level for that to happen. This means that selling at a reasonable price becomes an arduous process where you have to constantly stay on top of the market and adjust the listing price accordingly. An alternative is to put up the NFT for auction, but the auction may take a lot of time and could be a disaster if the market cannot come to a reasonable price in time, and now that OpenSea has lost its tight grip on the market, not as many people are watching these auctions, making such situations much more likely.

These are only some of the disadvantages of order book trading for NFTs, but one of the most important differentiators between order books and LPs is that order books are not nearly as composable, meaning that building tools and products to enhance the overall experience is very difficult. On the other hand, buying, selling, and providing liquidity in liquidity pools is a much simpler process, allowing for products like yield farming, where liquidity providers can be directly compensated for improving the health of the market, to be built.

How do Liquidity Pools work?

Instead of needing a counterparty to facilitate a trade, market participants buy and sell their NFTs against the liquidity pool which has NFTs from the same collection as well as ETH in it. To buy an NFT, you would swap your ETH from your wallet for an NFT from the liquidity pool. To sell an NFT, you would swap your NFT from your wallet in exchange for ETH from the liquidity pool. The price that buyers and sellers receive is a function of the ratio of NFTs and ETH in the LP after they would execute the trade.

For example, if there are 5 Redacted Remilio Babies NFTs and 50 ETH in the liquidity pool, then the virtual price of Redacted Remilio Babies is 10 ETH. If Alice wants to buy an NFT, she would pay a price based on the ratio of assets in the liquidity pool after she would execute the trade. How is that price set? If someone wants to buy an NFT, it is logical that the price should increase since there is more demand for it now, resulting in *slippage *****- the price the user receives after.

The amount of slippage the user experiences is a function of the bonding curve of the liquidity pool. There are pros and cons to each type of bonding curve but Baton is initially built on top of Caviar which utilizes an XYK bonding curve to derive its prices. Its most vital advantage is that swaps between the assets can occur at a very tight spread at first but becomes very large as the ratio between the assets diverges, meaning that you will likely always be able to buy or sell from the pool.

Fig.2 - XYK Bonding Curve used by Uniswap V2, Caviar, NFTX, etc.

Fig.2 - XYK Bonding Curve used by Uniswap V2, Caviar, NFTX, etc.

Where do these NFTs and ETH come from? So-called Liquidity Providers (the acronym is also “LPs”) deposit their NFTs and ETH in a 50-50 ratio based on the virtual price of the pool, so if, for instance, Bob wants to become an LP in the Redacted Remilio Babies pool, he could provide 1 NFT and 10 ETH, 2 NFTs and 20 ETH, 3 NFTs and 30 ETH, etc. So, why would someone provide liquidity?

To compensate liquidity providers for allowing their NFTs and ETH to be used for trading, they take a percentage fee from each trade which is typically 1% or even lower. Now, Baton allows LPs to earn more through yield farming, which comes at no additional risk to LPing (apart from smart contract risk) and does not burden traders with additional fees. All in all, this means that this is the only way that users can utilize their NFTs to earn a passive yield. In other words, they do not have to sell their NFTs to earn from them.

A unique aspect of NFT LPs is that because each NFT is unique, traders can decide which specific NFT they want to buy. This means that if, for example, Bob LP’d with Remilio 7133 and 10 ETH, and Alice buys Remilio 7133 from the pool, then Bob will not have access to that NFT any longer. When they decide to exit their LP position, though, they will be able to withdraw any other NFT in the pool. This brings us to another point: all NFTs in the pool are treated like they have the same value; the floor price of the collection. Therefore, for a regular LP on Caviar, users should only deposit floor price NFTs into the LP. Depositing a non-floor price NFT introduces an arbitrage opportunity: a user can buy the non-floor NFT for the floor price and then sell it at the higher, non-floor price.

Getting to the point: what all bonding curves share is that the more assets are deposited into the LP, the less slippage there is for traders. This means that executing a trade is more efficient, and finally, resulting in the conclusion that the NFT collection is more liquid the more assets there are in the liquidity pool.

There are tons of reasons why collections would want this, so what is the most effective way to increase liquidity for an NFT collection?

NFT Yield Farming

Yield farming is a method to incentivize increased liquidity (more assets in the LP) by rewarding liquidity providers with additional rewards. Baton allows rewards to be any ERC-20 token e.g. ETH, USDC, PEPE, etc., or any ERC-721 token (NFTs) e.g. Bored Ape Yacht Club, Redacted Remilio Babies, etc. How do rewards get distributed to liquidity providers?

Firstly, LPs need to stake their LP tokens on Baton to become eligible for rewards. Once they have done that, if there are ERC-20 tokens in the yield farm then these ERC-20 tokens in the yield farm are continuously distributed to LPs based on each LP’s stake in the farm. That means that if an LP does not stake their LP tokens on Baton then they will miss out on all the yield farming rewards.