Staking Overview
Staking is how holders plug into the flywheel. You stake $IONS (the TOKEN) to earn badges, optionally lock for a multiplier, and become eligible for variable PYUSD rewards harvested from the protocol-owned reserve.
"Stake TOKEN to unlock badges and become eligible for variable PYUSD rewards from the protocol reserve."
The mental model
Your share of rewards is driven by your weight, and weight has three inputs:
weight = staked × badgeMultiplier × lockMultiplier
- staked — how much $IONS you've staked.
- badgeMultiplier — your badge tier (1× → 8×), set by staked amount.
- lockMultiplier — your lock duration (1× → 10×).
Maximum boost = Diamond (8×) × 5-year lock (10×) = 80×. See Weights & Rewards for the exact reward math.
Key properties
- You never deposit PYUSD. You stake $IONS; rewards (PYUSD) come from realized reserve yield. The reserve is protocol-owned.
- Only realized yield is distributed. Principal stays in Kamino; stakers receive the harvested yield delta, pro-rata by weight.
- Pull-based rewards. You sign and pay gas to
claim_reward; the payout is a real SPL transfer of PYUSD from the pool. - Locks only go up. A lock can be extended, never shortened, and locked stake cannot be unstaked before expiry.
- No retroactive rewards. An entry checkpoint means a position only earns on index growth after its weight is established.
On-chain home
Staking is implemented by the staking_vault program (weights, badges, locks) feeding
the reward_distributor program (a MasterChef-style accumulator). Both are deployed to
devnet and exercised by the test suite. See Programs.
What staking is — and isn't
Staking provides reward weight, badges, and protocol utility. It is not ownership, equity, debt, a dividend, or a fixed-yield product. Rewards are variable and can go to zero. Read the Disclaimer.