Uniswap v3: Introducing Concentrated Liquidity Providing and Maximizing your Capital’s Efficiency
This past Wednesday, May 5th, Uniswap released version 3 of their automated market maker protocol. This highly anticipated release comes almost exactly one year after the release of v2, which introduced ERC20-ERC20 token swaps, avoiding the need to convert to Eth, and is largely considered one of the main catalysts to last year’s DeFi summer. Uniswap quickly became the most popular decentralized exchange with millions of users and billions of dollars in total locked value and influenced a whole host of copy-cat projects. Let’s take a look at the biggest upgrade with this release, Concentrated Liquidity.
This latest release, Uniswap v3, focuses on improving capital efficiency when compared to v2. To accomplish this, Uniswap has implemented concentrated liquidity ranges to which liquidity providers (LPs) can allocate their assets to custom price ranges. For example, Nearly 99% of all USDC/DAI trades occur in the $0.99-$1.01 range, yet in v2, liquidity would be reserved for all prices from $0 — infinity, meaning most of the liquidity in this pair is sitting unused. This change allows LPs to provide their coins where they are most needed and most useful. With v3, an LP can devote 100% of their assets to earning fees in that $0.99-$1.01 range.
For asset pairs with less predictable trading prices, such as the USDC-ETH pool, an LP could concentrate their assets in the $3,500-$4,000 range allowing LPs to earn higher returns on their capital as long as the assets stay in that chosen price range. If the price ratio drops out of the range, by going higher or lower, the LP will stop collecting fees from trades, and their assets will be entirely composed of the less valuable asset until the price re-enters the LPs price range.
So what does this look like in practice? Let’s use the above USDC-ETH example of $3,500-$4,000 and $10,000 worth of capital provided within that range. If a user concentrates their $10,000 within that range, they will earn the same amount of fees and perform identically as a user who provided $309,133 in v2. That is a whopping 31x return on capital just for selecting a custom range. The obvious downside is if the price moves out of that range, you won’t be earning any more fees.
Uniswap has even claimed that if an LP provides liquidity within the tightest price range possible, 0.10%, maximum capital efficiency could reach a mind blowing 4,000x return compared to v2. Trading fees collecting within a given price range are split by LPs proportionally to the amount of liquidity they contributed to that range.
Another feature added is the ability to set range orders, allowing you to deposit a single token into a price range above or below the current price, and when the price enters your range, the contract sells your token for the other along a smooth curve all while collecting swap fees in the process. When the price goes out on the other end of your range, you could then withdraw your assets entirely in the other token, including fees collected while the price was in that range.
One side effect of this change is that LP tokens are no longer fungible. An ETH/USDC token with a range of $2,750-$3,250 isn’t the same as an ETH/USDC token with a range of $3,500-$4,000, and thus they’ll no longer be represented by ERC20 tokens, but instead will be non-fungible ERC721 tokens, commonly known as NFTs.
While this change to the core functionality of liquidity providing isn’t the only change to Uniswap in this version upgrade, it is the biggest and most innovative, and we’ll surely see some interesting strategies deployed across the platform.
Cheers, and thanks for reading,