Dynamic staking pools are designed to offer users a variable APY that changes based on their share of the total tokens staked. Unlike traditional staking pools with a fixed APY, dynamic pools distribute a predetermined number of tokens daily, ensuring that users who stake more or stake earlier can earn higher rewards relative to others.
This guide explains how dynamic pools work, including best practices and real-life scenarios to help users and pool managers understand the mechanics and advantages of this flexible staking model.
Key Takeaways
1. Staking and Lock Period
- Users can stake tokens in a dynamic pool with customizable parameters such as total daily rewards, lock period, and hard cap (maximum total stake allowed).
- Rewards are calculated daily based on the user's share of the total staked amount.
- As long as the pool remains active and unexpired, users continue earning rewards even after their lock period ends.
2. Reward Distribution
- Rewards are distributed proportionally, meaning each participant receives a share of the total daily rewards relative to the amount they have staked.
- The reward rate is fixed in terms of a total number of tokens distributed per day, ensuring predictability for pool managers and fair competition among participants.
3. Ongoing Rewards Beyond Lock Period and Pool Expiration
- If the lock period ends but the pool is still active, users will continue earning rewards until they withdraw or until the pool expires.
- If the pool expires but users are still within their lock period, they will continue earning rewards until their lock period ends.
- Once both the lock period and pool expiration have passed, no further rewards will be distributed, and users can withdraw their staked tokens and any unclaimed rewards.
4. Fair Share Allocation
- Rewards are allocated proportionally based on the percentage of the total staked amount each participant contributes.
- This ensures that participants are rewarded fairly, without granting unfair advantages to early stakers or large holders.
Scenario 1: Pool with a Long Staking Period
In this scenario, the pool manager sets up a dynamic pool where users can stake for a long period (up to 1 year). The pool distributes 10 tokens per day as rewards, has a 10-day lock period, and a hard cap of 1000 tokens.
User A stakes 100 tokens at the beginning of the pool.
User B stakes 200 tokens at the beginning of the pool.
Total reward during the staking period:
Reward rate × Staking period
Total reward = 10 tokens/day × 10 days = 100 tokens
User A’s reward for the staking period:
- User A’s staked amount = 100 tokens
- User A’s share of the total staked amount = 100 / (100 + 200) = 1/3
- User A’s reward = 100 tokens × 1/3 = 33.33 tokens
User B’s reward for the staking period:
- User B’s staked amount = 200 tokens
- User B’s share of the total staked amount = 200 / (100 + 200) = 2/3
- User B’s reward = 100 tokens × 2/3 = 66.67 tokens
After 10 days, User A decides to withdraw a portion of their stake and claim their rewards. Since the lock period has ended, User A can withdraw and claim rewards without restrictions.
- User A withdraws 50 tokens.
- User A’s reward for the staked amount = 33.33 tokens
- User A receives 50 tokens (unstaked amount) + 33.33 tokens (reward) = 83.33 tokens in total.
After the lock period ends, User B decides to claim their rewards without withdrawing their stake:
- User B’s reward for the staked amount = 66.67 tokens
- User B receives 66.67 tokens as their reward.
Scenario 2: Pool with a Limited Staking Window
In this scenario, the pool manager wants to set up a staking window of 30 days, after which no new stakes will be allowed. All users will have a 30-day lock period, meaning even users who stake on the last day of the window will still complete a full lock period before the pool expires.
To ensure that all stakers complete their lock period while earning rewards, the pool expiration date is set to 60 days—30 days for staking and an additional 30 days for users to complete their lock period.
Pool Parameters:
- Staking window: 30 days (users can stake from day 0 to day 30).
- Lock period: 30 days.
- Pool expiration date: 60 days.
- Total daily reward: 1000 tokens per day.
- Hard cap: 100,000 tokens.
Example:
- User A stakes 20,000 tokens on day 5, and their lock period ends on day 35.
- User B stakes 10,000 tokens on day 30, and their lock period ends on day 60.
On day 31, staking will be disabled since the staking window has closed, but both User A and User B will continue earning rewards until their lock periods end.
This setup ensures:
- No new stakes can be added after day 30, ensuring a fair staking window for all participants.
- Users who stake on the last day of the staking window still complete a full 30-day lock period before the pool expires.
- The pool remains active until day 60, allowing all users to earn rewards until their lock periods end and ensuring they can withdraw their tokens without the pool expiring prematurely.
Additional Notes on Dynamic Pools
-
Managing Pool Expiration:
- Once a pool reaches its expiration date, no further rewards are generated unless users are still within their lock periods. Users can withdraw their stake and any unclaimed rewards without being subject to additional lock periods.
-
Hard Cap Enforcement:
- Pool managers can set a hard cap to limit the total amount of tokens that can be staked. Once the hard cap is reached, no additional stakes will be allowed.
-
Creating Flexible Pools:
- Dynamic pools offer flexibility by allowing pool managers to design pools with varying durations and staking windows, catering to different user preferences.
- Short-term pools with quick lock periods can attract users seeking fast returns, while long-term pools are more appealing to those committed to long-term staking.