Overview
Pool Party is an initiative to incentivize liquidity provision, where PERP liquidity mining rewards are boosted with OP tokens. A total of 5.2 million OP from Perp's allocation will be dedicated to the Pool Party initiative, as outlined in our phase 0 proposal on Optimism's governance forum.
Rewards are distributed on a weekly basis (on Mondays, usually around 10am UTC), where the amount of PERP earned is proportional to the liquidity you provide to a certain pool. OP tokens are distributed amongst the LPs according to the following updated calculation method.
Update: To ensure the long-term sustainability of our reward programs and to pave the way for forthcoming major updates, we will be implementing changes starting October 2nd, 2023. As part of this transition, we will be discontinuing PERP rewards, and making adjustments to the OP rewards for each market. For a detailed breakdown of the revised rewards structure for each market, please refer to the image below:
Calculation Method
Rewards calculation is subject to weekly review and adjustment to defend against farming and exploitation.
Basic Pool Party rewards are calculated based on:
- the amount of time the price is within the LP's range (only active liquidity will get rewards), and
- the concentration of liquidity (where concentrated liquidity will get more rewards).
The amount of time inside the range is based on active tick liquidity. For example, in one second, if you have 30% liquidity in active tick, then your time amount is 0.3 seconds. The more total liquidity amount you provide, the more liquidity amount will be in active tick, and you get more time. The more concentrated range you set, the more liquidity amount in active tick, and you get more time. This is the same logic as maker fee. The calculation method is done in similar manner to the Uniswap v3 Staker contract.
For liquidity, its time amount is calculated by a Uniswap v3 contract. We can get secondsInsidePriceRange of a liquidity position during one week by querying the Uniswap v3 contract.
Formula
\[weeklyRewardProrate = secondsInsidePriceRange / secondsInOneWeek\]
\[weeklyReward = marketWeeklyReward * weeklyRewardProrate\]
Example
- Alice provides 100 liquidity with a price range of [80, 100] for one week
- Bob provides 100 liquidity with a price range of [85, 95] for one week
- The price goes to 90 for one day and then stays at 70 for the rest of the time
For Alice:
- secondsInsidePriceRange = 30,240
- weeklyRewardProrate = 30,240 / (60 * 60 * 24 * 7) = 5%
- weeklyReward = 5,000 * 5% = 250
For Bob:
- secondsInsidePriceRange = 54,432
- weeklyRewardProrate = 54,432 / (60 * 60 * 24 * 7) = 9%
- weeklyReward = 5,000 * 9% = 450
Although Alice and Bob provide the same amount of liquidity and have the same duration in which the price is within their ranges, Bob provides liquidity in a more narrow range and has a larger value for secondsInsidePriceRange for his rewards calculation.
If instead the price goes to 90 for one day, then to 80 for another day, and then stays at 70 for the rest of the time, Bob's reward calculation will not change but Alice's will. In this case, the secondsInsidePriceRange becomes 60,480 for Alice, the weeklyRewardProrate increases to 10% and the weeklyReward increases to 500.
The Rewards APR shown on each pool page for an asset estimates the return in OP and PERP tokens for providing liquidity. The lower end estimate indicates the return for providing liquidity across the full price range, while the upper end estimate indicates the return for providing liquidity across a very narrow price range.
How to Claim Pool Party Rewards
LPs can claim their OP tokens and view their estimated rewards through the UI: https://rewards.perp.com/liquidity-mining.
To claim the Pool Part rewards, click on "Rewards" from the sidebar:
Connect your wallet to the rewards dashboard and then click on "Claim Now" button underneath Perp v2 Pool Party:
The markets that you have facilitated volume for will be shown on this page, along with your estimated rewards.
Click on a particular market to see the available rewards and claim the OP and PERP tokens:
The estimated rewards shown on the UI may differ slightly from the actual claimable rewards.
Once you've clicked on a market, you'll see the following page where you can claim your OP and PERP rewards. Note that you have to claim OP and PERP separately.
Click "Claim OP" to receive your Pool Party rewards and confirm the transaction in your wallet.
Contract Addresses for Claiming Rewards
- PERP reward contract: https://optimistic.etherscan.io/address/0x3230Cbb08C64d0804BE5b7f4cE43834291490a91#readProxyContract
- OP reward contract:
https://optimistic.etherscan.io/address/0x9F6B09Fc2EA2ef9F4454Ac6875829a7A89c9Cd92#readProxyContract
Calculating Rewards
Rewards are calculated weekly, with amounts stored in a merkle tree.
Note that _begin
and _end
values can be taken from the snapshot above, and correspond to weekOrdinal
or opWeekOrdinal
.
Rewards per user for each week can be found in the reward maps, linked to in the weekly snapshot file.
Further Reading
Providing Liquidity - Pool Party