AMM

Automated market maker

What is an AMM?

AMM or Automated market makers allow digital assets to be traded in a permissionless and automatic way by using liquidity pools rather than a traditional market of buyers and sellers.

AMM users supply liquidity pools with crypto tokens, whose prices are determined by a constant mathematical formula

A blog post about “on-chain market makers” by Ethereum founder Vitalik Buterin described a simple mathematical formula that can take many forms.

The most common one was proposed by Vitalik as :

tokenAbalance(p)tokenBbalance(p)=ktokenA_balance(p) * tokenB_balance(p) = k

and popularized by Uniswap as:

xy=kx * y = k

The constant, represented by “k” means there is a constant balance of assets that determines the price of tokens in a liquidity pool.

ShibaSwap also uses the same formula and liquidity providers are incentivised by charging a per trade fee of 0.25 - 0.30%.

A protocol fees of 0.05% is also levied in some cases.

Sourced from Gemini.com Cryptopedia

Risks

Why is my liquidity worth less than I put in?

To understand why the value of a liquidity provider’s stake can go down despite income from fees, we need to look a bit more closely at the formula used by Uniswap to govern trading. The formula really is very simple. If we neglect trading fees, we have the following:

eth_liquidity_pool * token_liquidity_pool = constant_product

In other words, the number of tokens a trader receives for their ETH and vice versa is calculated such that after the trade, the product of the two liquidity pools is the same as it was before the trade. The consequence of this formula is that for trades which are very small in value compared to the size of the liquidity pool we have:

eth_price = token_liquidity_pool / eth_liquidity_pool

Combining these two equations, we can work out the size of each liquidity pool at any given price, assuming constant total liquidity:

eth_liquidity_pool = sqrt(constant_product / eth_price)token_liquidity_pool = sqrt(constant_product * eth_price)

So let’s look at the impact of a price change on a liquidity provider. To keep things simple, let’s imagine our liquidity provider supplies 1 ETH and 100 DAI to the Uniswap DAI exchange, giving them 1% of a liquidity pool which contains 100 ETH and 10,000 DAI. This implies a price of 1 ETH = 100 DAI. Still neglecting fees, let’s imagine that after some trading, the price has changed; 1 ETH is now worth 120 DAI. What is the new value of the liquidity provider’s stake? Plugging the numbers into the formulae above, we have:

eth_liquidity_pool = 91.2871dai_liquidity_pool = 10954.4511

Since our liquidity provider has 1% of the liquidity tokens, this means they can now claim 0.9129 ETH and 109.54 DAI from the liquidity pool. But since DAI is approximately equivalent to USD, we might prefer to convert the entire amount into DAI to understand the overall impact of the price change. At the current price then, our liquidity is worth a total of 219.09 DAI. What if the liquidity provider had just held onto their original 1 ETH and 100 DAI? Well, now we can easily see that, at the new price, the total value would be 220 DAI. So our liquidity provider lost out by 0.91 DAI by providing liquidity to Uniswap instead of just holding onto their initial ETH and DAI.

Of course, if the price were to return to the same value as when the liquidity provider added their liquidity, this loss would disappear. This loss is only realised when the liquidity provider withdraws their liquidity, and is based on the divergence in price between deposit and withdrawal. We can therefore call it divergence loss (previously described as impermanent loss). Using the equations above, we can derive a formula for the size of the divergence loss in terms of the price ratio between when liquidity was supplied and now. We get the following:

divergence_loss = 2 * sqrt(price_ratio) / (1+price_ratio) — 1

Or to put it another way:

a 1.25x price change results in a 0.6% loss relative to HODL a 1.50x price change results in a 2.0% loss relative to HODL a 1.75x price change results in a 3.8% loss relative to HODL a 2x price change results in a 5.7% loss relative to HODL a 3x price change results in a 13.4% loss relative to HODL a 4x price change results in a 20.0% loss relative to HODL a 5x price change results in a 25.5% loss relative to HODL

N.B. The loss is the same whichever direction the price change occurs in (i.e. a doubling in price results in the same loss as a halving).

Sourced from Uniswap: A Good Deal for Liquidity Providers?

Last updated