Staking
Stake your $ROKO on players you believe will be productive. When projects are completed, stakers of top-performing players earn rewards proportional to their stake size, commitment time, and the player's performance.
How Staking Works
Getting Started
Choose a player - Research which players are completing tasks efficiently
Stake your ROKO - Call the
stakeinstruction with the player's IDWait for project completions - Rewards are distributed when projects finish
Rewards compound - Your rewards are added directly to your stake position
Rules
One position per wallet
Each wallet can only stake on one player
Minimum stake
1,000 $ROKO
Top-ups allowed
Add more tokens to your existing position anytime
Staking multiple players
Use separate wallets for each player
Reward Distribution
When Rewards Are Distributed
Rewards are distributed when a project is completed:
Project completion
Council votes 3/4 to approve the project as complete
Reward pool
Equals the project budget (sum of all verified task payments)
Distribution
Rewards sent to eligible stakers using weighted formula
Example: If a project had 2,000,000 ROKO in total task payments, the reward pool is 2,000,000 ROKO.
Who Receives Rewards
Not everyone receives rewards. Only the top performers are eligible:
Top 5 players
Ranked by (tasks_approved × approval_rate) / hours_worked
Top 5 stakers per player
Ranked by stake weight
Maximum 25 recipients per distribution (5 players × 5 stakers each).
If you stake on a player ranked #6 or lower, you won't receive rewards from that project.
The Reward Formula
Your share of the reward pool depends on your combined weight:
What This Means
Stake more ROKO
Higher amount_staked → bigger stake_weight → bigger reward
Stake longer
More days_staked → bigger stake_weight → bigger reward
Pick better players
Higher player_score → bigger combined_weight → bigger reward
Example Calculation
Two stakers backing the same player:
Alice: 10,000 ROKO staked for 30 days → stake_weight = 300,000
Bob: 5,000 ROKO staked for 10 days → stake_weight = 50,000
If the player has score 1.0 and the total weight pool is 1,000,000:
Alice's combined_weight: 300,000 × 1.0 = 300,000
Bob's combined_weight: 50,000 × 1.0 = 50,000
On a 100,000 ROKO reward pool:
Alice receives: 100,000 × (300,000 / 1,000,000) = 30,000 ROKO
Bob receives: 100,000 × (50,000 / 1,000,000) = 5,000 ROKO
Compounding
Rewards are added directly to your stake position. Your amount_staked increases, which means:
Future rewards are calculated on your larger stake
Your stake_weight grows faster over time
Long-term stakers have compounding advantage
Player Rankings
Players are ranked by productivity score:
This rewards players who:
Complete more approved tasks
Higher tasks_approved → higher score
Have high approval rate
Higher approval_rate → higher score
Work efficiently
Lower hours_worked → higher score
Why Player Choice Matters
Staking on player ranked #1 earns more than the same stake on player #5:
The #1 player has a higher
player_scoreYour
combined_weightis multiplied by this scoreBetter players = bigger multiplier on your stake weight
Pro tip: Check player rankings before staking. A smaller stake on the #1 player can outperform a larger stake on #5.
Unstaking
Two-step process with a 24-hour cooldown:
Step 1: Request Unstake
Call request_unstake to begin the cooldown:
Your tokens remain staked during the cooldown
You continue earning rewards during cooldown
The 24h timer starts
Step 2: Complete Unstake
After 24 hours, call complete_unstake:
Your original stake + all compounded rewards return to your wallet
Your stake position is closed
You can stake again on the same or different player
Why the Cooldown?
The 24-hour cooldown prevents gaming:
No flash loans to capture rewards
No jumping between players right before distributions
Rewards go to committed stakers
Strategy Tips
For New Stakers
Research players first - Check task completion history and approval rates
Start small - Test with minimum stake before committing more
Stake early - Days staked multiplies your weight
Pick one great player - Better to concentrate than diversify poorly
For Maximizing Rewards
Stake on top-ranked players
Higher player_score multiplier
Stake early in a player's career
Accumulate more days_staked
Don't unstake frequently
You lose days_staked on re-stake
Top up rather than new stakes
Keeps your original stake_at timestamp
Warning Signs
Avoid players who:
Have low approval rates (many rejected tasks)
Take long hours per task (inefficient)
Have been inactive recently
Just joined (no track record)
On-Chain Operations
All staking operations are recorded on the Solana blockchain:
stake
Create or top-up a stake position
request_unstake
Start the 24h cooldown
complete_unstake
Withdraw tokens after cooldown
distribute_staking_rewards
Council triggers on project completion
Your Stake Position
Your on-chain account stores:
owner- Your wallet addressplayer_id- The player you're backingamount- Current stake (includes compounded rewards)staked_at- When you first staked (never changes)unstake_requested_at- Cooldown start (0 if not requested)
FAQ
Q: Can I change which player I'm staking on? A: You must unstake first (24h cooldown), then stake on the new player. You lose your accumulated days_staked.
Q: What if my player drops out of top 5? A: You won't receive rewards until they return to top 5. Consider unstaking and switching.
Q: Do rewards compound automatically? A: Yes. When you receive rewards, they're added to your stake amount automatically.
Q: What's the minimum to receive rewards? A: There's no minimum reward amount, but you must be in the top 5 stakers for a top 5 player.
Q: Can I stake on multiple players? A: Not from one wallet. Use separate wallets if you want to stake on multiple players.
Q: What happens during emergency pause? A: Staking and unstaking are blocked, but your position is safe. Resume when pause lifts.
Last updated