SolstackBlog
← All guides

Staking

How Solana Staking Actually Works Under the Hood

What delegating SOL to a validator does on-chain, where staking rewards come from, and why activating and deactivating stake takes up to a day, not seconds.

2026-10-02·6 min read·Verified against mainnet-beta
How Solana Staking Actually Works Under the Hood

Staking usually gets summed up as "lock up SOL, earn yield". That's accurate as far as it goes, but it doesn't explain the things people notice when they stake: activation isn't instant, unstaking can take up to a day, and the reward SOL has to come from somewhere.

What a stake account is

Staking doesn't move your SOL into a validator's wallet. It creates a separate stake account with its own address, funded with the SOL you're staking. The account has two authorities. The stake authority can delegate, deactivate and split the stake. The withdraw authority can take SOL out once none of it is active. Both are your own wallet unless you choose otherwise. The validator never gets signing power over your stake account, which is why native staking leaves custody with you.

Delegation is a separate instruction. It points the stake account at a validator's vote account, the on-chain record of that validator's voting in consensus. The SOL stays in your stake account. Delegation only tells the protocol whose voting your stake counts toward.

Where rewards come from

Solana pays inflation rewards. The protocol mints new SOL on a set schedule and distributes it to staked accounts, roughly in proportion to their share of all staked SOL, after each validator's commission and adjusted for its uptime. The validator doesn't pay this out of its own funds, and most of it doesn't come from transaction fees. It is protocol-level issuance, and it's also what pays for running validators across the network. Rewards are calculated and paid automatically at the end of each epoch, which lasts about a day, and they're added straight to the stake account's balance. You don't need to claim them.

Why activation isn't instant

Many people expect delegated stake to start earning right away. It doesn't. Stake activation happens at epoch boundaries. If you delegate partway through an epoch, your stake shows as "activating" until that epoch ends, and it becomes active when the next one starts. Consensus needs each validator's stake weight to stay fixed for the whole epoch. If stake could move in and out mid-epoch, those weights would keep changing.

Why unstaking waits too

Unstaking works the same way in reverse. Deactivating a stake doesn't hand your SOL back straight away. It schedules the stake to stop counting toward the validator at the next epoch boundary, and you can withdraw once it shows as "inactive". So you deactivate today, wait for the current epoch to end (up to about a day, depending on when you deactivated), and then withdraw. The protocol has no way to skip the wait.

What your choice of validator changes

Two things about the validator set your reward rate. Commission is the percentage of rewards the validator keeps before the rest reaches you. Uptime, or skip rate, matters because a validator that misses votes doesn't earn those rewards for anyone delegated to it. Picking a validator with a reasonable commission and steady uptime is the main thing you control.

Most wallets and staking dashboards create the stake account and delegate it in one signed transaction, then list your stakes with deactivate and withdraw buttons for later. How to unstake SOL covers getting SOL back out in detail.