Vote Accounts & Staking
Validators participate in consensus through on-chain vote accounts. Stakers delegate SOL to those vote accounts to earn inflation rewards and gain stake-weighted transaction scheduling (SWQoS).
Search across all documentation pages
Validators participate in consensus through on-chain vote accounts. Stakers delegate SOL to those vote accounts to earn inflation rewards and gain stake-weighted transaction scheduling (SWQoS).
Quick-reference recipe card - copy-paste ready.
solana-keygen new -o vote-account-keypair.json
solana create-vote-account vote-account-keypair.json ~/.config/solana/identity.json
solana vote-account <VOTE_ACCOUNT_PUBKEY># Delegate stake (staker wallet)
solana delegate-stake <STAKE_ACCOUNT> <VOTE_ACCOUNT_PUBKEY>When to reach for this:
IDENTITY=~/.config/solana/identity.json
VOTE_KEYPAIR=vote-account-keypair.json
VOTE_PUBKEY=$(solana-keygen pubkey "$VOTE_KEYPAIR")
# Create vote account (payer = identity)
solana create-vote-account "$VOTE_KEYPAIR" "$IDENTITY" \
--commission 5 \
--url devnet
# Fund vote account for ongoing vote tx fees
solana transfer "$VOTE_PUBKEY" 1 --url devnet
# Inspect
solana vote-account "$VOTE_PUBKEY" --url devnet
# Start validator with this vote account
agave-validator \
--identity "$IDENTITY" \
--vote-account "$VOTE_PUBKEY" \
--ledger /mnt/ledger \
--entrypoint entrypoint.devnet.solana.com:8001What this demonstrates:
| Key | Role |
|---|---|
| Identity | Pays fees, runs agave-validator |
| Vote account | On-chain vote state |
| Withdraw authority | Controls earned rewards |
| Stake accounts | Delegated SOL weight |
solana stakes <VOTE_PUBKEY> --url mainnet-beta
solana validators --url mainnet-beta | grep <VOTE_PUBKEY>| Alternative | Use When | Don't Use When |
|---|---|---|
| Stake pool operator | Aggregate delegators | Solo boutique validator brand |
| Non-voting RPC | No consensus ops | Earn inflation from validation |
| Liquid staking delegation | Boost stake quickly | Full control of delegator set |
Competitive mainnet ranges vary (0-10%) - balance revenue vs attracting stake.
Validator dashboards (Voters, Solana Beach), commission, uptime, MEV transparency.
No protocol minimum for vote account creation; practical SWQoS needs meaningful stake.
Rent-exempt lamports required - fund on creation.
Yes via vote account update instruction - delegators should monitor.
Jito stake pool delegates to operators in their program - separate from your vote setup (LSTs).
Create vote account on devnet, run validator, simulate delegation with test stake.
Fix validator uptime; credits recover over subsequent epochs - not instant.
Operators periodically withdraw to treasury per withdraw authority policy.
Stay on supported client release - vote tx format handled by agave-validator compatibility.
Stack versions: This page was written for Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, and LiteSVM 0.6.x.
Reviewed by Chris St. John·Last updated Jul 16, 2026