Overview
Proof of Stake in Solana provides:- Sybil resistance - Economic cost to create validators
- Consensus weighting - Votes weighted by stake
- Incentive alignment - Validators earn rewards for honest participation
- Economic security - Attacking the network requires controlling significant stake
docs/src/consensus/stake-delegation-and-rewards.md:1
Stake Accounts and Vote Accounts
The staking system uses two types of accounts:Vote Accounts
Each validator has a vote account that:- Tracks validator votes on blocks
- Counts vote credits earned
- Stores validator commission rate
- Records validator identity
- Accumulates commission from rewards
docs/src/consensus/stake-delegation-and-rewards.md:16
docs/src/consensus/stake-delegation-and-rewards.md:46
Stake Accounts
Stakers create stake accounts that:- Hold lamports (SOL) to be staked
- Name a vote account to delegate to
- Track rewards earned
- Enforce warmup/cooldown periods
- Support lock-up for long-term commitments
docs/src/consensus/stake-delegation-and-rewards.md:22
docs/src/consensus/stake-delegation-and-rewards.md:108
Passive Delegation
Staking is passive - validators don’t need to approve delegations:- Stakers create stake accounts and delegate freely
- No interactive action from validator required
- Total stake is computed by summing all delegating stake accounts
- Validators only need to vote; stake weights are handled automatically
docs/src/consensus/stake-delegation-and-rewards.md:28
This design allows unlimited stakers to delegate to a single validator without increasing the validator’s operational overhead.
Epochs and Slots
Slots
A slot is the basic time unit:- Duration: ~400 milliseconds
- One designated leader per slot
- Leader can produce one block per slot
- Sequential numbering from genesis
Epochs
An epoch is a longer period for stake recalculation:- Duration: 432,000 slots (~2 days on mainnet)
- Stake weights are recalculated at epoch boundaries
- Leader schedule is regenerated each epoch
- Rewards are distributed at epoch end
- Warmup/cooldown progresses at epoch boundaries
docs/src/implemented-proposals/tower-bft.md:15
Epoch boundaries are critical synchronization points where the cluster recalculates stake distribution and leader schedules.
Stake Warmup and Cooldown
Stake doesn’t become effective immediately:Warmup Process
When stake is delegated:- Initial state - Stake is “activating” but not “effective”
- Gradual activation - Each epoch, some portion becomes effective
- Rate limiting - Network-wide warmup rate limits activation speed
- Full activation - Eventually all stake becomes effective
docs/src/consensus/stake-delegation-and-rewards.md:268
Warmup Example
Consider 1,000 SOL stake activating with 20% network warmup rate:| Epoch | Effective | Activating | Total Network Effective | Total Activating |
|---|---|---|---|---|
| N-1 | 0 | 0 | 2,000 | 0 |
| N | 0 | 1,000 | 2,000 | 1,000 |
| N+1 | 400 | 600 | 2,400 | 600 |
| N+2 | 880 | 120 | 2,880 | 120 |
| N+3 | 1,000 | 0 | 3,000 | 0 |
docs/src/consensus/stake-delegation-and-rewards.md:292
Cooldown Process
When stake is deactivated:- Deactivation initiated - Stake marked for deactivation
- Gradual cooldown - Each epoch, some portion cools down
- Rate limiting - Same rate as warmup (25% per epoch)
- Full cooldown - Eventually all stake is withdrawable
- Stake continues to earn rewards
- Stake remains subject to potential slashing
- Cooled down stake can be withdrawn
docs/src/consensus/stake-delegation-and-rewards.md:283
Earning Rewards
Vote Credits
Validators earn vote credits for voting correctly:- 1 credit per vote that exceeds maximum lockout
- Credits earned when a vote becomes a root (finalized)
- Recorded in the vote account’s state
- Used to calculate rewards at epoch end
docs/src/consensus/stake-delegation-and-rewards.md:259
Points System
Rewards are distributed based on points:- Each validator’s stake earns points proportional to vote credits
- More stake = more points per credit
- More credits = more points per stake
- Points determine share of epoch inflation
docs/src/consensus/stake-delegation-and-rewards.md:231
Reward Calculation
At epoch end:- Sum points - Total all points earned across the network
- Calculate point value - Divide epoch inflation by total points
- Distribute rewards - Each stake earns
points × point_value - Apply commission - Validator takes commission, rest to staker
docs/src/consensus/stake-delegation-and-rewards.md:240
Commission
Validators set a commission rate (0-100%):- Commission goes to the vote account
- Remaining rewards go to the stake account
- Validators earn commission on all delegated stake
docs/src/consensus/stake-delegation-and-rewards.md:67
Inflation and Rewards
Solana has a disinflationary token emission schedule:- Initial inflation rate - 8% annually
- Disinflation rate - Decreases 15% per year
- Long-term rate - Approaches 1.5% annually
- Reward distribution - Portion of inflation goes to stakers and validators
docs/src/consensus/stake-delegation-and-rewards.md:253
The rewards system incentivizes validators to maintain high uptime and vote accurately, as missing votes means missing credits and rewards.
Delegation Lifecycle
Creating a Stake Account
- Create account with System Program
- Transfer SOL to the account
- Initialize stake state
- Optionally set lock-up parameters
Delegating Stake
- Select validator - Choose vote account to delegate to
- Delegate - Create delegation in stake account
- Wait for warmup - Stake activates over epochs
- Earn rewards - Receive proportional rewards
docs/src/consensus/stake-delegation-and-rewards.md:148
Changing Delegation
To switch validators:- Deactivate - Initiate cooldown period
- Wait for cooldown - Stake deactivates over epochs
- Redelegate - Delegate to new validator
- Wait for warmup - Stake reactivates over epochs
Withdrawing Stake
To withdraw:- Deactivate stake
- Wait for full cooldown
- Withdraw inactive stake plus rewards
- Only inactive lamports can be withdrawn
docs/src/consensus/stake-delegation-and-rewards.md:198
Lock-up
Stake accounts support lock-up for long-term commitments:- Withdrawing lamports before expiration
- Changing authorized staker/withdrawer
- Deactivating stake
docs/src/consensus/stake-delegation-and-rewards.md:330
Stake Distribution
Network security depends on stake distribution:- Decentralization - Stake should spread across many validators
- Nakamoto coefficient - Minimum validators needed for 1/3 stake
- Superminority - Validators controlling >1/3 stake
- Anti-concentration - Mechanisms to prevent stake centralization
Slashing (Planned)
While not yet fully implemented, slashing is designed to punish:- Equivocation - Voting for conflicting blocks
- Downtime - Excessive missed votes
- Other misbehavior - Protocol violations
docs/src/proposals/slashing.md:1
Slashing is not currently active on mainnet but is planned for future implementation to strengthen economic security.
Stake-Weighted Operations
Stake weights affect many cluster operations:- Voting - Consensus votes weighted by stake
- Leader schedule - More stake = more leader slots
- Turbine fanout - Stake affects propagation tree
- QUIC QoS - Higher stake gets better bandwidth
- Gossip weights - Stake influences peer selection
Next Steps
- Learn about consensus voting
- Understand cluster participation
- Explore validator operations