Earn Uniswap v3 rewards
Nov 02, 2021
Uniswap has released groundbreaking features with the launch of v3, which ensures that added liquidity is over 4000x more capital efficient when compared to Uniswap v2. What this means is that you now have more flexibility in order to ensure that your added capital works efficiently for you. That said, the prerequisite for achieving your liquidity’s maximum earning potential is that you make good predictions for the future market price.
💡 Already contributing to DEPAY liquidity in Uniswap v2? Learn how you can easily migrate it to Uniswap v3.
Uniswap v3 offers a unique feature that can be regarded as a breakthrough for DEX trading. This feature has not been discussed much, although it is a good indicator (to us at least) that centralized exchanges are no longer superior to DEX'es in terms of features and capital efficiency. We are not talking about the interesting fact that Uniswap v3 represents your liquidity positions through NFT's.
The unique feature that we are talking about relates to "Range Orders". The value of Range Orders stems from the fact that they let you realize automated buy and sell tactics that flexibly adjust to the market price. Range Orders allow you to set buy and sell limit orders executed "on steroids".
Uniswap does not explicitly name this feature anywhere in their widgets, however automated stop limit buys and sells can be implemented by adding pool liquidity with so-called "Single Sided Range Orders".
We will soon release another article that will show you how you can use these in order to generate automated limit orders for DEPAY pairs instead of performing individual (timed) market trades. This will enable you to buy or sell tokens continuously within a price range on Uniswap v3. In the meantime, you can watch this great video tutorial on Range Orders:
If you already know the basics of Uniswap v3 and just want to read the specific steps to add liquidity to a pool, then jump straight to the section "Step-by-step: Providing Uniswap v3 liquidity" .
Uniswap v3 - Control your liquidity
Unlike v2, Uniswap v3 finally enables you to control the price ranges within which you provide your liquidity (liquidity range concentration).
As a Liquidity Provider, this feature allows you to ensure that your liquidity is used efficiently. This is made possible as your liquidity can be placed by you within self-defined price ranges where the most trade volume is generated (and associated earnings).
This implies that the accuracy of your own forecast of the price development of a pool pair has a significant influence on your earnings that are generated by trading fees. Uniswap v3 has put the main focus on features that give LP's more control over the use of their liquidity and allow competition between small and large capital providers.
In fact, by allowing your strategy and forecast to have the most influence on your pro-rated trading fees earned, you can earn far more than a large capital provider if they do not place their capital on concentrated price ranges but instead replicate the normal distribution of Uniswap v2.
Where your chances of higher returns increase, the same applies to the associated risks. You will not lose money directly with Uniswap v3, but the biggest risk is the so-called impermanent loss due to volatility.
Below we will explain the basics of passive income generation through Uniswap v3 liquidity provision and why it could be worthwhile to contribute liquidity to small pools such as DEPAY/ETH or DEPAY/DAI. This approach allows you to earn higher fees as your relative proportion of the pool is higher.
Uniswap v3 - strong focus on the needs of Liquidity Providers
Uniswap v2 has always had an inherent limitation when it comes to attractiveness for LP's: When you add liquidity to a UNI v2 pool, it is allocated across the entire pool supporting the full breadth of possible price developments.
You become a "0-infinite" LP so to speak with your pool contribution. This means that your tokens will be used in trades even if the price drops close to 0.
With Uniswap v2, the scope of LP ability has always been limited to the creation of new pools, which they then filled with liquidity (with no additional control options).
Apart from the inefficient liquidity distribution, the ever-increasing Ethereum Gas Fees on transactions have negatively impacted profitability. To counter the loss due to price fluctuations after providing liquidity, LP's were able to factor in their pro-rata rewards - however LP's could not be sure how long the rising costs of the Ethereum network would be tolerated by traders.
Both traders and LP's have long harbored the same desire: to have the ability to start or pause trading their assets based on conditions. On Reddit, there are past statements from users that support this assumption.
"Generally, it would be great to have conditional transactions. For example here, the condition would be that a certain price level is reached (...)" (source).
For many LP's, liquidity mining on Uniswap v2 became too risky and ultimately too expensive in general.
It was clear: AMM's (automated market makers) like Uniswap need mechanisms that allow liquidity providers more flexibility and active intervention possibilities on a price level. LPs are, after all, the component without which AMM's cannot exist.
Accordingly, based on the insights and learnings from v2, it was in Uniswap's interest to focus on the needs of LP's so that they do not remain at the mercy of market conditions and losses due to price fluctuations.
The distribution of liquidity on a curve from 0 to infinity had a major negative effect in Uniswap v2:
A large portion of the pool tokens deposited by LPs were never used (more on this below).
This weakness of Uniswap v2 had a name: "Low Capital Efficiency". As we state above, the efficiency has now been increased by a whopping 4000 times with the introduction of v3.
The dilution of liquidity across all price ranges also allowed higher volume trades to have a more significant impact on price slippage in v2. With Uni v3 and the concept we describe in the next section, this has changed too.
Concentrated liquidity: The secret for high LP rewards on Uniswap v3
As described, liquidity was distributed across the entire price scale from 0 to infinity in v2, resulting in many disadvantages for LPs.
At the core of all the disadvantages was the lack of granular control over the price ranges in which to provide liquidity. It was recognized that v2 poorly represented a key reality:
That the price of a pool always oscillates in a price range where the theoretically available liquidity is most needed by traders, while the zones above and below that range lie idle in the meantime.
In Uniswap v3, a new concept has been introduced - "Concentrated Liquidity". You as an LP can now gather your added pool liquidity in one closed interval and earn fees whenever the spot price moves into your defined “active zone”.
If the price goes above or below this zone, you earn nothing and all your liquidity goes into one single asset of the pair. As soon as the price returns to your zone, you automatically continue earning on the trades.
The desire of many users to limit their added liquidity to zones was elegantly implemented by Uniswap in v3.
In order to limit your liquidity to price ranges, Uniswap needs to provide a scale of units for subdivision that makes sense for each type of pool pair. To realize such a scale, in Uniswap v3 the entire price spectrum has been partitioned into many small individual units called "ticks".
Uniswap v3 bands and ranges
Concentrated liquidity allows you to map a liquidity position onto so-called “bands”. A band is simply a price range in which you want to offer your assets. Accordingly, a band consists of the specification of a price range - a lower and an upper threshold.
As long as the current spot price is within these ranges, you earn a pro-rata share of the pool fees collected on each trade. In this case, your liquidity is said to be "active". It becomes “inactive” as soon as the price moves out of your range, which will pause your earnings until the price is back in your range.
Dynamic LP reserve adjustments
For each band with price limits A and B, if the price moves out of A or B (so that your liquidity is "deactivated"), all your liquidity is bundled in one of two assets after that.
As lower price limit A you set 1 DAI and as an upper price limit 2 DAI.
Your liquidity will now be active within this range so long as the spot price remains within the band.
At the time of your deposit, the DAI/DEPAY price is still at 1.5 DAI. Now, when the price moves towards B (2 DAI), you will observe that the composition of your liquidity keeps changing and you will have more DAI (relative to the initial number of tokens) in your position than DEPAY.
As soon as the limit B (2 DAI) is exceeded, 100% of your position consists of DAI (because all DEPAY tokens have been sold for DAI).
Now your position is inactive and you do not earn any further rewards outside the limits of A and B.
The inverse is also true where price falls below the limit A (1 DAI): When falling below 1 DAI, your entire (now inactive) position will consist of DEPAY.
The constant product formula
As you can see, this principle has nothing in common with order books. Your initial liquidity is transformed like a scale that swings back and forth, shedding one asset while replenishing the other. It is important to understand that there is no linear formula behind this.
The ratio of DEPAY to DAI is not proportional, but is recalculated after each trade based on the constant product formula: x * y = c.
Here "x" and "y" stand for the number of tokens of each pair asset and "c" for the constant that results from multiplying "x" by "y".
Simplified example: If you initially put 100 DEPAY and 150 DAI into a pool, it starts with a constant of 15,000. Each trade will now change(increase/decrease) the token reserves which will cause the formula to be recalculated, under the condition that the product is always 15,000.
Tiered fees: Risk level based compensation
To compensate for the risks of providing liquidity and to create more incentives for LP's, fee tiers have been introduced for the first time in Uniswap v3. When adding liquidity to a pool, it is up to you in which fee tier you assign your assets to.
What this means for you is that if you expect your liquidity to be in demand in an "exotic" pool and you have little (or no) competition as a LP, you can mitigate your comparatively higher risk (to the more commonly used pools) with higher fees.
Uniswap v3 offers the following three fee levels:
0.05% - Recommended for low risk, for example stablecoin pairs like DAI/USDC
0.3% - Suitable for moderately stable pairs that are subject to the (for crypto) "usual" price fluctuations
1% - Recommended for assets that have high price risk and whose fluctuations are difficult to assess.
Step-by-step: Providing Uniswap v3 liquidity
Step 1: Define a realistic price range in which you want to provide liquidity. Take time for your research and considerations. The more time the market price will stay within your defined rank, the longer you will earn trading fees.
Step 2: Select a DEPAY token pair in the pool dashboard of Uniswap, for example DEPAY/DAI
Step 3: Decide on a fee tier.
Step 4: Set your minimum and maximum price from your considerations of step 1. The picture shows example values.
Step 5: Define the amount of tokens you want to add to the pool. Approve the V3 router contract with a first transaction. After this, you can deposit your pool liquidity with a second transaction.
Congrats! Wait a little bit until you receive your V3 NFT LP token. You should not lose this token under any circumstances, as it symbolizes your claim to your liquidity.
Evidence of the breakthrough performance of Uniswap v3
We have visualized the performance data of the first two months after Uniswap v3 launch (compared to v2) and shared the results in a Twitter thread.