The State of AMMs
Featuring Uniswap, Balancer, Bancor, Curve, ThorChain, Strike, Shell, MCDex, JellySwap, PotionLabs!
|Kerman Kohli||Jun 25, 2020|| 1|
For those of you that aren’t full sure how AMMs work, I’d highly recommend checking out the following material I’ve put out to help you get up to scratch:
Also special shout out to TokenInsight Research, Chief Analyst - Johnson Xu for collaborating on this piece.
The current DEX ecosystem is mainly under one AMM family called constant function market makers
As a market maker, providing liquidity is a tedious task, it often involves locking up significant capital, programming a trading bot and building up a feasible strategy. It is often in the hands of institutional providers where they have the capability and incentives to build such initiatives.
The AMM structure creates possible ways for any individual to become passive market makers without worrying about the technical details for market makings.
There are a few different strategies in creating that AMM structure, we call it the constant function market makers (CFMMs), under the CFMMs, there are a few different substructures with their unique characteristics.
1. Constant product market makers (CPMMs) - Uniswap
X * Y= K
2. Constant mean market makers (Generalised CPMMs) - Balancer Protocol
3. Constant sum market maker (CSMMs) - Unfit for DEX use cases
4. Hybrid CFMMs - Curve, Bancor V2, MCDex
P = i + β ∙ i ∙ E
There are generally two components in the return for liquidity provided
Total return = trading fees + impermanent loss/gain.
Locking up capital and thus by providing liquidity to the pool, the liquidity providers (LPs) need some incentive to do so. Under the current incentivised structure, the LPs will get reimbursed for their capital lock-up via trading fees generated by the traders and arbitrageurs. However, with the design of AMM structure, the LPs can generate a gain/loss called impermanent gain/loss which at the most of time would be a loss and significantly reduce their overall returns.
The initial AMM structure does generate sufficient liquidity in the DEX ecosystem, however, due to the design and actual implementation, LPs sometimes would generate negative overall return due to impermeant loss.
For example, if LPs started to provide liquidity on DAI in the beginning of the year, LPs made +10.42% return to date netting impermanent loss. However, if instead LPs chose HEX trading pairs to provide liquidity, the LPs would suffer a net loss of -55.14%. This shows how impermanent loss can greatly affect the LPs’ overall return.
There are a few proposals to reduce or theoretically eliminate the impermanent losses and, in the meantime, further reduce slippages. For example, Curve is using hybrid CFMMs targeting stablecoins or wrapped assets to provide significantly better liquidity for stablecoins. Bancor V2 and MCDex also proposed their own solutions to counteract the issues with impermanent loss.
Infinite liquidity at every single price point or infinite liquidity near the central price?
The financial market is rather dynamic, diverse participants have very different needs, however, then there is some common phenomenon in the financial markets that is occurring reasonably often.
For example, people most of the time will only trade at near market price, rather a price point significantly differs from the market central price, unless a significant market crash happens just like the Black Thursday in March 2020. Infinite liquidity provides liquidity at every single price point but suffers issues such as low capital utilisation. The latest AMM structure is looking to increase capital efficiency while providing infinite liquidity relative to the central price. Initiatives by players such as MCDEX and Bancor V2 interpret the concept of infinite liquidity differently.
In another word, providing sufficient liquidity and reducing the price slippage near the central price which increases capital utilisation. There are trade-offs, such as this model can only provide a limited market making scope since all inventory capital needs to be concentrated near the index price.
They took a different approach to achieve the concept of “infinite liquidity”, rather than looking at absolute infinite liquidity, they both look at relative infinite liquidity around the central index price.
This approach generates deep liquidity around central price, reducing near market slippages, and limiting arbitraging opportunities, as a result improve market efficiency and improve capital efficiency.
When talking about the various AMM implementations out there, it’s important to understand the various factors that make them unique and how they function at a high level.
Formulas. Many of you may be aware of Uniswap’s famous x * y = k formula, however this isn’t the only formula you can use with AMMs. Constant product (Uniswap) is the first that incentivises infinite liquidity by increasing slippage as large quantities of the pool are purchased. Other implementations incentivise prices within certain ranges or scale linearly.
Pool fees. This is still an under explored area but Balancer is the core pioneer of this area. For example, should a pool fee be constant, be determined/voted by the liquidity providers or by a single admin/owner?
Amplification coefficient. This may be a double up of point 1, but worth mentioning regardless. The whole idea around an amplification coefficient is that the curve is harder to shift at a certain region of the curve enabling deeper liquidity at the amplification point but then thinner liquidity at other points. Think of it as tricking the order book that it has more tokens than it actually has at the expense of not having many tokens at other points
Pairs supported. Most AMM protocols have a standard 50/50 pool meaning you need to supply two tokens of the same value. Some have deviated from the 50/50 ratio to more exotic ones, however overwhelmingly most AMMs only support 2 tokens per pool.
One of the first AMMs in the space that got extreme traction. Uniswap v1 was innovative due to the simplicity of the protocol and user interface. Provide a token and ETH of equal value and you’re good to go as an LP. Uniswap proved that orderbook-less models are viable on Ethereum. Uniswap released v2 earlier this year with the ability to create a pair between two tokens rather than forcing quotes against ETH.
However, relative to the competition Uniswap has fallen behind due to the inflexibility in fees, pool customisation, formula and pairings. Every trade incurs a 0.3% trade fee but pool owners can’t set fees and the fee is always the same. V3 may inch up to the competition or introduce a token, however Uniswap at this point in time is resting on the laurels of its past.
In terms of future growth, Balancer is one that I’m personally excited about due to the innovative features present in the protocol and the smart incentivisation of the protocol via a token. So what’s actually good about it? Let’s break it down.
Multiple tokens per pool. Rather than just having a USDC/COMP (50/50) pool, you can actually have a USDC/COMP/LEND/SNX pool (yes 5 tokens) that stay based on a certain weight (10/10/50/30)! Why would anyone want to do it? We’ll find out but for now it can act as an automatic rebalancing ETF where you can get consistent exposure to multiple tokens at once.
Dynamic fees that can be set by the liquidity providers or owner of a pool. Sounds simple but if a large majority of LPs think that the liquidity they provide to the ecosystem is valuable, they can come together to increase the fee to increase profits. Such flexibility should be necessary to incentivise capital providers.
Token! Some skeptics may or may not argue that token incentivised usage is false, however whichever way you look at it the fact that people can earn 20%+ APRs for supplying liquidity and earning native tokens that will accrue value once protocol fees are turned on is a deal.
Bancor’s new AMM design is one that brings the kind of innovation to AMMs that we haven’t seen since they were first announced. The idea is unique in that it uses an oracle to set the weights of a pool rather than relying on a fixed weight. So how does it compare to a regular AMM? Well, suppose in a 50/50 pool of ETH/USDC, if the price of ETH increases to $110 from $100, the pool doesn’t rebalance to force itself back to be 50/50 through arbitrages. Instead, the pool will be 53%, 48% pool (rough numbers).
So what incentive is there to keep the pools at 50/50 (or ample liquidity)? The twist here is relying on fees. Regardless of the current weight of the pools, pools are always split 50% between the two pairings. So if one side gets out of balance, the other side will receive a greater portion of the fees compared to the other side. This incentive allows liquidity to be healthy on both sides.
Bancor V2 relies on every token being paired with BNT, the native asset of the ecosystem. At a first glance this can create friction as people need to route orders through BNT and hope there’s enough BNT being provided on the other side (Bancor doesn’t require both tokens to be supplied at once). However coupled with a liquidity mining scheme, demand for BNT can be skyrocketed and creating a positive flywheel where an increase in token price causes an imbalance in pool weights (fees out of proportion, not prices) which attracts more liquidity to bridge the gap. They’re launching in the coming weeks with this new design and will cause some very interesting dynamics. That being said, Bancor isn’t as well suited for small cap tokens but rather one where there’s already large secondary markets and a reliable oracle is available.
Before Curve came along, stable coins were a bit of a challenge to swap between since the slippage would be anywhere between 1-3% which is a large chunk if you’re dealing with pure dollars to make an arbitrary transaction (eg using dYdX which supports USDC but not USDT means you will lose a few thousand dollars switching is not cool when they should theoretically be worth $1 on redemption). Curve came in and solved this through a novel formula that keeps the price fairly constant in a certain region of the curve while making it more lopsided in other regions. Here’s a little picture of how the curve looks:
As you can see it has a region where it’s fairly flat but then sloped near the edges. This flat region helps Curve optimise the prices so that when you swap USDC for USDT you experience less than 1% slippage. Recently, Curve has done over $200m+ in daily volume and has shattered what anyone thought a DEX is possible of doing. Expect Curve competitors to come out soon.
Potion Labs - this is still an early project that was created at HackMoney however uses the concepts of an AMM to price tokenised option contracts
Strike Network - I’m personally really bullish on this project as they use an AMM to provide and price liquidity for perpetual swaps on-chain. Expect more from me about them in the upcoming future.
Jelly Swap - the interface and branding may throw you off but it’s actually pretty interesting. They basically allow anyone to be an AMM for BTC/ETH by installing software on their device and facilitate cross-chain swaps effectively allowing anyone to provide liquidity easily.
Shell - a competitor to Curve Finance that will be coming out in the next few weeks. I don’t have plenty of details about them yet but expect that to change
MCDex - based out of Asia, MCDex allows futures, trading, leverage and plenty more on their exchange. In the coming weeks they’re releasing a new AMM pricing formula which will be interesting to see the early results of that helps reduce impermanent loss. They have a wide variety of markets such as the ability to speculate on whether Trump will win the elections.
ThorChain, also known by $RUNE, makes the rounds on Crypto Twitter quite frequently. While they do promote cross-chain liquidity, what really stands out about them is their Continuous Liquidity Pool model which basically sets the price of a trade based on the amount of liquidity a trader uses up of a pool. The devil is in the details and I’ll be waiting keenly to see if their new fee model lives up to the hype.
After reading through all of the above, hopefully you should have a better understanding of the AMM landscape and the various forces that have made/broke projects. In my view, there’s a few take-aways we can all learn about the state of AMMs