How v3 APR is calculated
In V3 Liquidity and Farms, with the new non-fungible liquidity and customizable price range ability. Each LP position will have its own LP fee and SELF farming APR.
The total APR is combined by the LP fee APR and SELF reward APR
LP fee
Theoretically speaking, given a price range and liquidity user about to add, we can estimate the expected future 7 days fee as following
feeinβ : Fee amount accrued in the user specified price range in last 7 days
Linβ: Current liquidity in the user specified price range
ΞL: Liquidity user want to add to the price range
Fee in range
For feeinβ, we use the historical trading volume data, fee tier and historical price data to estimate the price in range
feeinβ=ftβV7dβT7dβTinββ
ftβ: Fee tier
V7dβ: Total trading volume of last 7 days
Tinβ: Duration, measured in seconds, of prices staying within the price range in the past 7 days
T7dβ: 7 days measured in seconds
SELF APR
Pool Allocation
The total reward SELF per second in MC v3 using upkeep and can be derived by latestPeriodSelfPerSecond
selfPerSecond = lastestPeriodSelfPerSecond / 1e12 / 1e18
In each pool, we can use poolInfo to get the poolWeight by dividing poolInfo.allocPoint / totalAllocPoint
Global SELF APR
Global APR calculated using the total amount of active & staked liquidity with the pool SELF reward emissions.
APR (global) = (selfPerSecond * 31536000) / (totalAllocPoint / pool.allocPoint) * 100 * selfUSD / totalStakedLiquidityUSD
totalStakedLiquidityUSD represents the current pool active staked liquidity in USD, composing by all the position ticks in range staked in MasterChef v3.
Position SELF APR
APRs for individual positions may vary depend on their price range settings.
USDrβ: SELF reward earn USD per year in pool
USDpβ: Total USD value in position
Lpβ: Position liquidity
Llmβ: Total staking liquidity which tracked by LMPool
Last updated