Staking
How Solana Staking Actually Works Under the Hood
What delegating SOL to a validator actually does on-chain, where staking rewards come from, and why activation and deactivation both take a few days instead of being instant.
Staking is usually explained as "lock up SOL, earn yield" — accurate, but it skips the part that actually explains the behavior you experience: why activation isn't instant, why unstaking takes days, and where the reward SOL comes from in the first place.
What a stake account actually is
Staking SOL doesn't move it into a validator's wallet. It creates a new, separate stake account — its own address on-chain, distinct from your regular wallet — funded with the SOL you're staking, and configured with two authorities: the stake authority (can delegate, deactivate, split) and the withdraw authority (can pull SOL back out once the stake account is empty of active stake). Both default to your own wallet unless you deliberately set them elsewhere, which is what keeps native staking non-custodial — the validator you delegate to never has signing power over your stake account.
Delegation is a separate instruction pointing that stake account at a specific validator's vote account — the on-chain record of that validator's participation in consensus. The SOL never leaves your stake account; delegation just tells the protocol which validator's voting activity your stake should be counted toward.
Where rewards actually come from
Solana pays inflation rewards — new SOL, minted by the protocol on a defined schedule, distributed to staked accounts roughly in proportion to their share of all staked SOL network-wide, adjusted by each validator's commission and uptime. This isn't yield paid by the validator out of their own pocket, and it isn't extracted from transaction fees primarily — it's protocol-level issuance, the same mechanism that funds validator operation economically across the whole network. Rewards are calculated and paid automatically at the end of each epoch (roughly 2–3 days) and compound directly into the stake account's balance — no claim transaction needed.
Why activation isn't instant
This is the detail people find counterintuitive: delegating doesn't make your stake immediately count toward consensus or immediately start earning. Stake activation happens at epoch boundaries — when you delegate mid-epoch, your stake sits in a "activating" state until the current epoch ends, then becomes fully active at the start of the next one. This exists because validator stake weights need to be stable and predictable within an epoch for consensus to function correctly; allowing stake to shift the calculation mid-epoch would create exactly the kind of instability the epoch boundary is designed to prevent.
Why unstaking takes a few days too
The same mechanism runs in reverse. Deactivating a stake doesn't return your SOL immediately — it schedules the stake to stop counting toward that validator at the next epoch boundary. Only once it's shown as fully "inactive" can you withdraw. In practice this means: deactivate today, wait until the current epoch ends (up to ~2–3 days depending on when in the epoch you deactivate), then withdraw. There's no way to skip this at the protocol level — it's the same stability guarantee working the other direction.
What choosing a validator actually affects
Your reward rate is a function of the validator's commission (the percentage of rewards they keep before the rest reaches you) and their uptime/skip rate (a validator that misses its slot to vote doesn't earn that reward for anyone delegated to it). A validator's vote account address is what you delegate to — picking one with reasonable commission and consistently strong uptime is the main lever you actually control in your reward rate.
Stake SOL handles the stake-account creation and delegation in one signed transaction, and lists your active stakes with deactivate/withdraw buttons for when you're ready to unwind them. Full mechanics of getting SOL back out are in How to unstake SOL and the Stake SOL docs.