Token Staking (WIP)
Token Flows
(1) Forward Token Flow:
- Stake
- Allocate
- Start Receiving Rewards
- Claim Rewards
(2) Backwards Token Flow:
- Deallocate
- Unstake
- Wait for unstaking cooldown to finish d. Claim unstaked $sOOGA (in OOGA)
1. Forward Token Flow
- Users can stake their OOGA into $sOOGA, $sOOGA gives you the right to allocate it to certain modules. E.g. the Rewards Module (right now there is only the Rewards Module).
- Users can allocate their $sOOGA into the Rewards Module
- Users will start receiving rewards as soon as they allocate their $sOOGA into the Rewards Module in real time.
- Users can claim their rewards in OOGA as soon as they receive their rewards in real time.
2. Backwards Token Flow
- Users can deallocate their $sOOGA from the Rewards Module for no fee.
- Users can unstake their $sOOGA into $sOOGA through a cooldown process.
- Users need to wait for their selected cooldown to finish before being able to claim their OOGA
- Users can claim their OOGA.
Cooldown Process
On bArtio, the minimum lock and the maximum lock is set to 3 days and 7 days respectively. On mainnet, these minimum and maximums will be different. If the lock is set to the minimum, then only 50% of the $sOOGA will be unstaked into OOGA. If the lock is set to the maximum, then 100% of the $sOOGA will be unstaked into OOGA. Anything in between is scaled linearly and adjusted proportionally to the lock set.
APY
The rewards module is configured to distribute a percentage of its pending rewards in each cycle. On the bArtio network it is set at 1% each cycle. This means that the APY of a user's investment can greatly fluctuate based on certain factors such as: additional rewards being added to the pending amount, how much a user's allocation weighs in the total allocation and rewards distribution percentage changes. In order to understand it better lets look at a simulation
OogaRewards Distribution Scenario: Cycle-by-Cycle Breakdown
Initial Setup
- Total Pending Rewards: 1,000,000 $OOGA
- Cycle Duration: 7 days
- Initial Cycle Rewards Percent: 1% (10,000 $OOGA distributed per cycle initially)
- Total Initial Allocation: 400 $sOOGA
- Users: A, B, C, D (each with 100 $sOOGA initially)
Cycle 1: Initial State
User | Allocation | Share | Cycle Rewards | Total Unclaimed |
---|---|---|---|---|
A | 100 $sOOGA | 25% | 2,500 | 2,500 |
B | 100 $sOOGA | 25% | 2,500 | 2,500 |
C | 100 $sOOGA | 25% | 2,500 | 2,500 |
D | 100 $sOOGA | 25% | 2,500 | 2,500 |
- Total Distributed: 10,000
- Remaining Pending: 990,000
Cycle 2: User A increases allocation to 200 $sOOGA
User | Allocation | Share | Cycle Rewards | Total Unclaimed |
---|---|---|---|---|
A | 200 $sOOGA | 40% | 3,960 | 6,460 |
B | 100 $sOOGA | 20% | 1,980 | 4,480 |
C | 100 $sOOGA | 20% | 1,980 | 4,480 |
D | 100 $sOOGA | 20% | 1,980 | 4,480 |
- Total Distributed: 19,900
- Remaining Pending: 980,100
- New Total Allocation: 500 $sOOGA
Cycle 3: User B decreases allocation to 50 $sOOGA
User | Allocation | Share | Cycle Rewards | Total Unclaimed |
---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 4,356 | 10,816 |
B | 50 $sOOGA | 11.1% | 1,089 | 5,569 |
C | 100 $sOOGA | 22.2% | 2,178 | 6,658 |
D | 100 $sOOGA | 22.2% | 2,178 | 6,658 |
- Total Distributed: 29,701
- Remaining Pending: 970,299
- New Total Allocation: 450 $sOOGA
Cycle 4: 500,000 $OOGA added to pending rewards
User | Allocation | Share | Cycle Rewards | Total Unclaimed |
---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 6,524 | 17,340 |
B | 50 $sOOGA | 11.1% | 1,631 | 7,200 |
C | 100 $sOOGA | 22.2% | 3,262 | 9,920 |
D | 100 $sOOGA | 22.2% | 3,262 | 9,920 |
- Total Distributed: 44,380
- Remaining Pending: 1,455,619
Cycle 5: User C harvests their rewards
User | Allocation | Share | Cycle Rewards | Total Unclaimed | Notes |
---|---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 6,458 | 23,798 | |
B | 50 $sOOGA | 11.1% | 1,615 | 8,815 | |
C | 100 $sOOGA | 22.2% | 3,229 | 0 | Harvested 13,149 |
D | 100 $sOOGA | 22.2% | 3,229 | 13,149 |
- Total Distributed: 58,911
- Remaining Pending: 1,441,089
Cycle 6: No changes in allocation
User | Allocation | Share | Cycle Rewards | Total Unclaimed | Notes |
---|---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 6,394 | 30,192 | |
B | 50 $sOOGA | 11.1% | 1,598 | 10,413 | |
C | 100 $sOOGA | 22.2% | 3,197 | 3,197 | New accumulation |
D | 100 $sOOGA | 22.2% | 3,197 | 16,346 |
- Total Distributed: 73,297
- Remaining Pending: 1,426,703
Cycle 7: 1,000,000 $OOGA added to pending rewards, Rewards Percent changes from 1% to 10%
New Total Pending Rewards: 1,426,703 + 1,000,000 = 2,426,703 Distributed this cycle: 242,670 (10% of 2,426,703)
User | Allocation | Share | Cycle Rewards | Total Unclaimed | Notes |
---|---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 107,742 | 137,934 | |
B | 50 $sOOGA | 11.1% | 26,936 | 37,349 | |
C | 100 $sOOGA | 22.2% | 53,871 | 57,068 | |
D | 100 $sOOGA | 22.2% | 53,871 | 70,217 |
- Total Distributed: 315,967
- Remaining Pending: 2,184,033
Cycle 8: No changes
Distributed this cycle: 218,403 (10% of 2,184,033)
User | Allocation | Share | Cycle Rewards | Total Unclaimed | Notes |
---|---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 96,957 | 234,891 | |
B | 50 $sOOGA | 11.1% | 24,239 | 61,588 | |
C | 100 $sOOGA | 22.2% | 48,478 | 105,546 | |
D | 100 $sOOGA | 22.2% | 48,478 | 118,695 |
- Total Distributed: 534,370
- Remaining Pending: 1,965,630
Cycle 9: No changes
Distributed this cycle: 196,563 (10% of 1,965,630)
User | Allocation | Share | Cycle Rewards | Total Unclaimed | Notes |
---|---|---|---|---|---|
A | 200 $sOOGA | 44.4% | 87,250 | 322,141 | |
B | 50 $sOOGA | 11.1% | 21,813 | 83,401 | |
C | 100 $sOOGA | 22.2% | 43,625 | 149,171 | |
D | 100 $sOOGA | 22.2% | 43,625 | 162,320 |
- Total Distributed: 730,933
- Remaining Pending: 1,769,067
Observations
Fairness: Rewards are always distributed proportionally to each user's share of the total allocation, regardless of when users join, leave or change their allocations.
There is not particular strategy that works better than the other: The best strategy a user can implement is try to stake as much $sOOGA as possible in order to increase their distributed rewards share
Summary: These scenarios illustrate various situations in the OogaRewards staking program, demonstrating
- How user APY can fluctuate due to allocation changes, reward additions, and distribution rate adjustments
- The contract's adaptability to changing conditions and parameters
- Fair and proportional reward distribution regardless of user actions or timing
While these examples use a small scale for clarity, in real-world implementations with thousands of users, individual APY volatility would likely be less pronounced. These scenarios provide insights into the system's behavior and potential outcomes for staking participants.