APR calculation and display method

You can check this by clicking on the APR section in the Tealswap Pool List.

However, this value may vary depending on the range set by the user.

Further explanation follows below.

Reward Calculation Formula

FarmAPR=IncentiveRewardsDepositedTVLFarm\,APR = \frac{Incentive\,Rewards}{Deposited\,TVL}

This is a simple and fair formula.

Characteristics of V3 Liquidity

In V3, the same amount of capital can provide different levels of liquidity depending on the range within which it is deposited.

Let’s assume you’re providing $100 in liquidity for the OAS-USDC pair:

  • Case 1: $100 placed in the $0.9 to $1.1 range

  • Case 2: $100 placed in the $0.01 to $100 range

In Case 1, rewards are earned only when swaps occur in this narrower range, but it’s recognized as providing higher liquidity density, so rewards are greater.

In Case 2, you can earn rewards across a wider range of swaps, but with lower liquidity density, resulting in lower rewards per unit of liquidity.

How V3 DEXes Calculate Farming APR

As explained, APR varies depending on the range within which users deposit their capital.

Each user will set their own range.

  • Narrow Range: High APR, but if the price moves out of range, APR quickly drops to 0%.

  • Wide Range: Steady rewards with less concern about price fluctuations, but with lower APR.

Since it’s impossible for the protocol to predict the user’s preferred range, most DEXes make an assumption.

For example, they may assume users will deposit only within +/- 5% of the current price, and calculate APR based on that assumption.

This method has major drawbacks:

  • DEXes can intentionally inflate APR by basing the calculation on a narrow liquidity range.

  • If the price moves out of the range, users can earn no rewards.

  • Price ranges shift constantly, making static APR calculations unreliable.

  • Such calculations can’t reflect a true average APR for all users.

Solution

Tealswap strictly follows the industry standard set by Uniswap V3.

Our Multifarming feature is implemented through Uniswap V3 Staker.

As mentioned earlier, determining reward ranges is a complex task and can lead to protocols arbitrarily adjusting the calculation in their favor.

To avoid this, we’ve adopted an APR calculation that better represents an average APR for users.

Our formula is based on the total TVL of the pool and the total incentives that TVL can earn, providing a realistic and average APR, rather than an inflated one.

FarmAPR=IncentiveRewardsDepositedTVLFarm\,APR = \frac{Incentive\,Rewards}{Deposited\,TVL}

Of course, the actual APR will vary based on the user’s chosen range.

Happy Multifarming!

Last updated