Open game economies will require open financial systems, so therefore it’s important to understand the decentralized finance (DeFi) stack. A key tenet of DeFi is disintermediation, which essentially means that instead of relying on a ‘trusted party’ to facilitate certain actions, crypto empowers the individual to interact trustlessly, peer-to-peer. This is an extremely powerful notion. Nearly every platform we use today is considered an intermediary — Apple’s App Store stands between app developers and the users, and Wells Fargo sits between lenders and borrowers. Crypto redefines that relationship, especially in the context of financial services, and it introduces a new paradigm and economic model for all stakeholders.
For example, future stakeholders of a blockchain game rely on the leadership of the game team to properly and dutifully design the in-game economy. Since blockchain games are open by default – meaning anyone can interact with the economy permissionlessly – it is imperative that developers, game designers, and even some end users increasingly master the fundamentals of DeFi.
One of the most integral DeFi elements is “liquidity pools” of which there are two dominant models in the market today: 1) Constant Function Market Maker, and 2) Central Limit Order Book. This essay will cover the first model with a conceptual explanation and examples, followed by two gaming case studies (Crypto Raiders and Crypto Unicorns) that have implemented different types of liquidity pools and designs.
Understanding Liquidity Pools
The concept of peer-to-pool liquidity isn’t new. We see this model in everyday financial products. The money you deposit into a bank is pooled with other depositors; the bank could use this pool of capital to lend to borrowers, to trade against, or use in numerous other ways. The difference with DeFi is that intermediaries like banks and brokerages are abstracted away and supplanted by code. Additionally, the permissionless and open nature of DeFi facilitates the creation of novel financial products such as liquidity pools. These liquidity pools normally contain at least two assets but may also contain three or more, sometimes with equal weighting and sometimes not.
In short, a liquidity pool is a peer-to-pool model in which participants, aka Liquidity Providers (LPers), deposit assets into a pool of capital to facilitate some financial activity. For example, in the current system, Market Makers actively help facilitate the liquidity between buyers and sellers, and they receive profits from the difference in the bid-ask spread. Liquidity pools that utilize the Constant Function Market Maker (CFMM) render traditional Market Makers obsolete, which is why the industry calls these pools Automated Market Makers (AMM). All this conceptually distills into an elegant math equation.
The CFMM formula, which powers most liquidity pools, dictates that assets in the pool must behave in a function that always results in the same constant. An easy mental model is to imagine this: “X * Y = K”, where X is USD value of Asset A, Y is USD value of Asset B, and K is a constant. If there is any change in X, there must be a functional change in Y to ensure that the product of X and Y always equals K. Therefore, a decrease in value of X necessitates an increase in Y (and vice versa) to ensure the constant (K) remains unchanged.
Also, any changes in any liquidity pool impact these key participants: the Liquidity Provider (LPer), the Trader, and the Arbitrageurs (Arbers).
So, that’s a lot of math and terms, but how does it all work in practice and across all the participants? Assuming a standard vanilla liquidity pool consisting of two assets with equal weighting such as ETH/USDC, the LPer would deposit an equivalent amount, in USD terms, of ETH and USDC into the pool. The result is a 50/50 pool. The LPer then receives trading fees from Traders and Arbers. For example, the Trader who holds ETH but wants to swap for USDC would utilize the liquidity pool to execute the trade, and then pay a trading fee – normally 0.30% – to the LPer.
Lastly, to ensure that the price of ETH is in line with the market price, the Arbers monitor and police the liquidity pools for any arbitrage opportunities. Returning to our earlier example, after the Trader executes their trade, there will be a new ETH/USDC exchange rate due to the CFMM. If this new price is out of sync with the market price of ETH, then the Arbers would execute a countertrade (exchanging USDC for ETH) to align the prices. Please keep in mind that this is a rather simple illustration of the order of operations. If you dare, let’s look at a few other liquidity pool structures.
There are some structures that involve two assets with 20/80 asset weightings such as those on Balancer; some involve three assets with each weighting 33/33/33 on Curve. Further, there are pools that completely ditch the CFMM design, opting to supply liquidity for a range of prices – aka concentrated liquidity – as seen on Uniswap V3. All these innovative liquidity designs couldn’t have been possible without the vanilla liquidity pool created by Uniswap Labs, so let’s look at the brief history and then the current industry standard.
- Constant Function Market Maker (CFMM), aka Automated Market Maker (AMM), is a type of liquidity pool that facilitates swapping of assets.
- Mental Model: (USD value of X) * (USD value of Y) = (K Constant)
- Liquidity Providers (LPers) usually must provide all assets in proportional weighting into a liquidity pool.
- Liquidity pools come in many asset counts and weightings.
History & Overview of Liquidity Pools
The origin of the peer-to-pool liquidity model can be traced back to the Uniswap protocol created by Uniswap Labs. The Uniswap protocol is a smart contract (a body of code) that enables the pooling of assets, the trading of those assets, and the collecting of fees. The vanilla pool is also known as Uniswap v2 or “Univ2.” But even prior to that, Uniswap v1 set the stage for this type of liquidity pool design; however, in v1, only ETH was able to be paired with an ERC20 token.
With the advent of Univ2, ERC20 tokens can pair with one another! I would compare Univ2’s zero-to-one invention to that of the ERC20 standard that created all the tokens in the first place. Uniswap facilitated the liquidity for the long-tail of exotic cryptoassets with wild volatility. Conversely, another decentralized exchange (DEX) called Curve Finance created liquidity pools for similarly priced and stable assets such as the many flavors of stablecoins (USDC, USDT, DAI) and tokenized BTC (wBTC, sBTC, renBTC). Another implementation of liquidity pools is done by Balancer — Liquidity Bootstrapping Pools (LBPs) — which allows the pool deployer to set the starting weight from 1/99 to any configuration in-between. This is the latest invention in terms of community fair token launch designs.
Lastly, the most recent innovation from the Uniswap Labs team is Uniswap v3 (Univ3), otherwise known as concentrated liquidity. Evidently, there are numerous design possibilities, and we’ve witnessed a myriad of projects experimenting — with reckless abandon — in the previous cycle. And there will continue to be more experiments to come, so understanding the rewards and risks is paramount for future Liquidity Providers (LPers) and developers.
The reward for liquidity providing typically takes two forms: 1) Trading Fees, and 2) Liquidity Incentives. As mentioned previously, the common take rate for liquidity pools is 0.30%. Most times the LPers keep all the trading fees, but there are also protocols that withhold up to 50% of the fees and send the money to the DAO’s treasury. Importantly, the trading fees normally aren’t large enough to entice LPers, so a popular technique projects use is to dole out the governance token as liquidity incentives. The combination of these two forms of rewards — the standard trading fee + extra governance token incentive — can generate APY (Annual Percentage Yield) in the thousands, sometimes even millions. Clearly, these nosebleed APYs are attractive, but the risks are just as high and never sustainable.
Impermanence Loss (IL) is a popular industry term that essentially means the difference in what the LPers would’ve earned if they had held Asset A and Asset B separately, instead of combining them in the liquidity pool. Recall that liquidity pools consist of two or more assets, and LPers must provide all the assets in their respective weights when depositing into the pool. As assets are swapped, the composition of the pool changes. In short, the assets’ quantities could be different at the point of deposit versus withdrawal. For LPers to profit, the Trading Fees plus Liquidity Incentives must be greater than the Impermanence Loss. If that’s a bit confusing, we understand! The best way to understand these concepts and economic effects is to see it in practice, so let’s next review how it works in Crypto Raiders.
- Impermanence Loss is the difference between an LPers returns if they had held the assets separately versus combining them into the pool.
- Liquidity Pool Revenue = Trading Fees + Liquidity Incentives
- Liquidity Pool Profitability = Trading Fees + Liquidity Incentives – Impermanence Loss
Case Study #1: Crypto Raiders
Crypto Raiders (CR), which we previously deconstructed, is a dungeon crawler on the Polygon blockchain. CR is notable because it highlights the major points I aim to illustrate: 1) the LPers profitability/(loss), 2) a project’s willingness to pivot liquidity campaigns, and 3) a project’s ability to integrate across the DeFi stack. Let’s begin with an analysis of the best practices for LPers.
As an LPer, the first element to inspect is the project’s tokenomics. For CR, the team allotted 50% of its token supply to liquidity incentives over a four-year period — approximately 1% of its token supply per month. CR needed to allot such a high number of tokens, because the team must mitigate any risk of Impermanence Loss (IL) when attracting LPers to provide liquidity for its native tokens. It’s also prudent to note that CR launched in August 2021 during the midst of the bull market, and aggressive emission schedules were in vogue at the time.
The CR team allocated emissions equally across its two tokens: $RAIDER and $AURUM. The initial pools were vanilla 50/50 (RAIDER/WETH and AURUM/WETH) and launched on Sushi Swap with $100k liquidity each.
In the RAIDER/WETH pool, assuming LPers deposited at the inception of the pool, the APY in trading fees since inception was 10.3%, and the IL was -1.0%, so the net organic APY return was 9.3%. This is great news for the LPers, but wait, there’s more! The LPers also received liquidity incentives using the time-weighted average price (TWAP) since inception. These emissions were worth approximately $37.5k per day. This results in a 130% APY, assuming a $6M average liquidity pool size. Therefore, in total, the LPers received a 139.3% APY on their capital in the RAIDER/WETH pool.
The first pair seemed to work out well, but what about the second token, the $AURUM pools? The LPers here weren’t as fortunate; the organic APY was -9.7%. But remember that the token emissions (liquidity incentive) of 130% completely mitigated the loss.
Clearly, both pools provided great returns for the LPers, and the total value across both liquidity pools was greater than $20M+, but this liquidity was highly cost-prohibitive to Crypto Raiders. According to the CR team: “Of the initial 100,000,000 $RAIDER minted, 50% will go towards incentivizing these liquidity providers. Those 50,000,000 $RAIDER will be split evenly between the two pools, with the $RAIDER distributed on a 4-year schedule. That means at launch, the daily emissions for each pool will be 17,123 $RAIDER tokens. These rewards will be split among all LPs, proportional to their share of the liquidity pool tokens deposited. There will not be a lockup on LP staking. Only on $RAIDER staking.” That’s a lot of tokens to be giving away!
After the initial six months, the CR team decided to pivot away from the aggressive token emission schedule and planned to reduce emissions outright in favor of more in-game rewards, per this blog post. This meant a lower APY for LPers but better liquidity cost effectiveness for the project.
I want to pause here and emphasize the push and pull between the key stakeholders. LPers want higher APYs, which comes at a great cost to the project. The project wants to keep the LPers happy, but the emissions are too dilutive. I commend CR on taking the bitter medicine and rectifying its liquidity campaign. The tokenomics v2 was a complete overhaul. Initially in v1, the tokens were emitted to LPers indiscriminately; moreover, the LPers were able to withdraw their liquidity at any time, so CR was in effect just renting liquidity at an extremely expensive rate.
Renting liquidity means that the liquidity in the pool is not owned or controlled by the protocol / core team. Sometimes it makes sense to rent, but most of the time it’s better to own. CR utilized a DeFi mechanic called bonding, which allows the LPers to effectively trade their LP position for slightly discounted $RAIDER tokens that are vested over seven days, and in return CR gets to own the LP position. This is known as protocol-owned liquidity. Now, instead of renting, Crypto Raiders owns the liquidity and is not subjected to the whims of LPers who could withdraw at any time. The executive decision to pause token emissions, reduce the allotted amount of rewards, and pivot to the protocol-owned liquidity bond model was the right move for CR’s long-term sustainability. CR’s ability to adapt to the market conditions as well as integrate with native DeFi protocols is laudable.
From the onset (and in true crypto fashion), Crypto Raiders only utilized DeFi-native tools. Its initial liquidity pools were launched on Sushi Swap, a decentralized exchange that was a fork of Uniswap. The inaugural pairs were RAIDER/WETH and AURUM/WETH, but through community feedback and demand, the pairs were migrated to RAIDER/WMATIC, RAIDER/USDC, AURUM/WMATIC, and AURUM/USDC. After establishing a liquidity pool that was deep enough, CR pursued more liquidity options by partnering with Market.xyz, a lending/borrowing protocol, to enable $RAIDER to be collateralized to borrow assets against. The third DeFi protocol CR integrated with was OlympusDAO, with its Olympus Pro product that enables the bonding mechanism mentioned earlier.
All this is great, but so what? If you’re a gaming project, you should pay attention to how CR utilized the full DeFi stack; it drove liquidity for its tokens, facilitated access to credit, and enabled the protocol to own its liquidity. These actions make Crypto Raiders a great case study for future gaming projects. Now that we’ve seen what to do in the early-to-mid stage of a liquidity strategy, let’s rewind to look at the initial bootstrapping phase through another case study with Crypto Unicorns.
- There’s a push-and-pull relationship between LPers desiring high APY and projects wanting lowest token dilution.
- Renting liquidity can be expensive, so it’s wise for a team to eventually find solutions and mechanisms to own its liquidity outright.
- Integrate with as many native DeFi products as possible to reduce fees and provide the most flexibility for your project.
- It’s okay to modify your tokenomics, even if it upsets certain stakeholders, if it leads to long-term sustainability.
Case Study #2: Crypto Unicorns
Crypto Unicorns (CU), which we also deconstructed, is a farming simulation game with novel battle mini-game designs. Like Crypto Raiders, CU is built on Polygon; however, instead of launching its token via the Sushi Swap vanilla pools, CU launched its token through a Liquidity Bootstrapping Pool (LBP) from Balancer. As aforementioned, the LBP is a novel fundraising mechanic that allows for fairer launches. The LBP is a live auction of a token over a set duration during which the auctioneer sets the starting weight; then the preset initial price decreases linearly until it reaches the time limit and ending weight. Typically, auction participants use their USDC to swap for the auctioned tokens. Since there’s no benefit to being the fastest bot or the largest bidder, this auction mechanism deters snipers and early whales. The many parameters of an LBP allow projects to customize a very well-tailored solution.
The most important parameters are the initial price, token balances, starting and ending weight, and duration. For CU, its native token is $RBW, and the initial price was 0.60 USDC/1 RBW. The CU team had to seed the pool with these token balances: 40M RBW and 998k USDC respectively. The starting weight was 96/4, with the ending weight being 50/50. The sale lasted roughly 3 days.
Let’s break down each element. The initial price is self-explanatory. The “starting token balances” mean that there’s $24M (40M RBW * $0.60) worth of RBW paired against approximately $1M (998k * $1.00) worth of USDC. This gives us the 96/4 starting weight. Now, if we assumed that no participant wanted to swap their USDC for RBW over the duration of the auction, then we would end up with a $1M worth of RBW paired with $1M worth of USDC — meaning an ending weight of 50/50 and exchange rate of 0.025 USDC/1 RBW. When comparing that to the initial price of 0.60 USDC/1 RBW, this is a terrible outcome for the CU team. Fortunately, that didn’t happen.
The team managed to raise nearly $14.6M worth of USDC. Also, note that the highest auction price was $0.8870/RBW, but since the auction didn’t end at that moment, the market participants continued to trade the token, which ultimately ended at the exchange rate of $0.7657 USDC/RBW. Initially, after the successful raise, the team launched and seeded a vanilla liquidity pool with $7.5M — $3.75M in RBW, and $3.75M in USDC — but by the end of April they switched to a RBW/WETH vanilla pool with $10M in seed liquidity. Here lies another difference between Crypto Unicorns’ and Crypto Raiders’ liquidity strategy.
CU’s Liquidity Incentive plan incorporated a staking mechanism, which allows LPers to lock up their LP positions for 1 to 12 months, with longer lockups getting higher token emissions. Although CU is still renting liquidity in this design, the team could at least anticipate and plan around liquidity unlocks versus having LPers able to withdraw at any moment.
I would feel remiss if I didn’t highlight the LPers’ performance since inception. The trading fees were 5.6%, the IL was -44%, and the net organic APY was -38.4% (source). Not great. Regrettably, the token emissions’ APR ranged from 24% to 76% in today’s prices. So unless most LPers locked their LP positions for more than six months, most likely they were negatively impacted. This illustrates the magnitude of the potential downside with impermanence loss.
However, it is important to note the context. Crypto Unicorns launched at the tail end of the bull market, whereas Crypto Raiders launched mid cycle. Timing matters. The LPers for Crypto Raiders benefited from the momentum of the bull market – as seen in the chart below – and a longer duration for them to cash out their token rewards. Crypto Unicorns LPers, on the other hand, did not. I mention this in order to remind the reader to evaluate projects not only purely on the numbers but also the market environment. Both case studies provided insightful lessons, from how to launch a successful token to pivoting liquidity programs, as well as highlighting the many functions of the DeFi Stack.
- Balancer’s Liquidity Bootstrapping Pool (LBP) could be a good option for community token launches.
- The most important parameters are the initial price, tokens balances, starting and ending weight, and duration.
- Projects could adopt a locking mechanism to have some short-term control over their liquidity.
That was a lot of information, especially for those of you less in the weeds of finance, so props for making it through! Before ending, let’s take a step back and review the core contents of this essay. First, we learned how liquidity pools work, followed by the profit profile of a liquidity provider (LPer). We broke down the mechanism designs of two gaming projects while highlighting their strengths and weaknesses. As a gaming project deciding to jump into crypto, the key takeaways for you are to be considerate and intentional with your tokenomic design, and don’t be afraid to make changes for the long-term health of your project and community.
Some questions to ask yourself here are:
- What does a pilot liquidity program look like?
- What behaviors do I want to incentivize?
- What is my liquidity, in USD terms, target?
- What percent of my total supply is needed for liquidity incentives?
- How do I course-correct if I made a mistake?
Obviously, there are many more questions to ask, and the answers depend on the details of the project, but those should get you started. Having a liquidity incentive plan means you’ll have at least one token, so think about how do you plan on launching said token. Be sure to check out Balancer’s Liquidity Bootstrapping Pool (LBP), if that’s a model you think your community would prefer, or research into other designs, like the ‘Lockdrop’ that was created by Delphi Digital. If you’re a gaming project that has a pre-existing token with a liquidity incentive plan, be sure to reassess to see whether it still makes sense to continue or not. Remember, you can always pivot! The crypto space moves extremely quickly, and the best tools and practices highlighted today may not be the right ones for you for when you launch your project, so always do your research. We also look forward to keeping you updated on more case studies and potential solutions over time!