Comment on page
Why use current APY calculation
All the LPs on Equilibria will benefit from the boosted PENDLE rewards powered by Equilibria’s vePENDLE holdings.
Pendle’s rewards disbursement contract will treat Equilibria’s vePENDLE holdings as one group and distribute rewards periodically.
There are 2 ways that can trigger the claim of the rewards:
- Rewards are claimed automatically whenever there is a deposit or withdrawal happened in the corresponding pool;
- Rewards are claimed periodically by calling harvest API.
After claiming the rewards to Equilibria, there are 2 methods to distribute the rewards:
Method 1. Distributed pro rata to LPs whenever Equilibria contract receives the reward
Method 2. Rewards are collected by a Streaming Payout Distributor that will distribute the rewards pro rata to LPs over a 7-day period.
Here is an example to illustrate how the rewards are distributed.
Assuming that we have $100,000 TVL contributed to Pendle and are entitled to receive $1,000 rewards. When the harvest API is triggered, the $1,000 rewards will be distributed pro rate to the $100,000 LPs. However, there is a deposit of $100,000 placed into the pool before the API is triggered and it increases the TVL to $200,000.
How are the $1,000 rewards distributed under the above 2 methods.
Now that our TVL reached $200,000, when the harvest API is triggered, the former $100,000 LPs will be entitled to receive only 50% of the pool rewards, which is $500. The remaining $500 will be “robbed” by the latter $100,000 LPs. This is similar to “sandwich attack” in a way that an LP back-runs other LPs to pocket the pool rewards.
Can we calculate the pool share by taking into consideration their deposit amounts & tenor then distribute the rewards before the deposit triggered the claims? To do this, we need to calculate the pool share every time the pool TVL changes, which will incur extra on-chain events in addition to the deposit or withdrawal, resulting in high gas cost.
In short words, Method 1 increases the risk of:
- LP sandwich attack
- Inconsistent APY
- High gas cost
Every time rewards are claimed from Pendle through either deposit/withdrawal function or through the harvest API, the rewards are added to the Streaming Payout Distributor which then distributes these rewards pro rata to LPs over 7 days at 1-second intervals.
When the rewards stored at the Distributor increase, the rewards distribution rate (as in “Current APY”) will change accordingly. That is why when a new LP makes a deposit to the pool, he will see the APY displayed (as shown in “Projected APY”) updated but his real APY will follow the rewards distribution rate. After a period of time, his real APY will eventually turn into the Projected APY.
With Method 2, we avoid calculating and distributing rewards for every deposit/withdrawal event. If a sandwich attacker makes a large deposit to the pool, he needs to keep the liquidity at the pool for 7 days in order to realize the Projected APY.
Equilibria currently implements Method 2 for rewards distribution.