Tealswap
  • Introduction
    • Welcome to Tealswap
      • Brand Kit
    • How Tealswap works?
    • Fee Information
  • How to use Tealswap?
    • Approve
    • Swap
    • Create Liquidity Pool
    • Add/Remove Liquidity
    • Multifarming
      • APR calculation and display method
    • Bridge (Hub Layer <-> External Chain)
    • Bridge (Hub Layer <-> Verse)
  • Contract Information
    • Core Contract
  • Audit Report
    • Smart Contract
  • Social Channel
    • Twitter
    • Medium
  • Service Links
    • Tealswap Landing Page
    • Tealswap Testnet
    • Tealswap V3 User Docs
Powered by GitBook
On this page
  • Reward Calculation Formula
  • Characteristics of V3 Liquidity
  • How V3 DEXes Calculate Farming APR
  • Solution
  1. How to use Tealswap?
  2. Multifarming

APR calculation and display method

PreviousMultifarmingNextBridge (Hub Layer <-> External Chain)

Last updated 7 months ago

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

Farm APR=Incentive RewardsDeposited TVL×Conversion FactorFarm\,APR = \frac{Incentive\,Rewards}{Deposited\,TVL}\times{Conversion\ Factor}FarmAPR=DepositedTVLIncentiveRewards​×Conversion Factor

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.

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.

Abstract

Farm APR=Incentive RewardsDeposited TVL×Conversion FactorFarm\,APR = \frac{Incentive\,Rewards}{Deposited\,TVL}\times{Conversion\ Factor}FarmAPR=DepositedTVLIncentiveRewards​×Conversion Factor

Detailed Explanation

Farm APR=∑Individual Incentive Reward×Conversion Factor for 365 daysDeposited TVLFarm\,APR = \frac { \sum_{}^{}{{Individual\ Incentive\ Reward}\times{Conversion\ Factor\ for\ 365\ days}} }{ Deposited\,TVL }FarmAPR=DepositedTVL∑​Individual Incentive Reward×Conversion Factor for 365 days​

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

Happy Multifarming!

Our Multifarming feature is implemented through .

Uniswap V3 Staker