What is a Stake Account
A stake account is a specific on-chain account that contains your SOL that you have delegated to a validator. It is isolated from the rest of your SOL balance. Each stake account has two keys of authority: a "staker" which manages what SOL gets delegated, and a "withdrawer" which manages the actual SOL. Both keys are typically your wallet, but they could belong to different parties allowing for delegated staking in custodial arrangements and DAOs.
The most counterintuitive aspect to Ethereum users is the timing of when staked SOL begins and stops earning. Think of it like a hotel: if you "check in" anytime you want, you can't actually stay in the hotel until 3pm and you can't check out before 11am. Epoch boundaries (~2 days) are Solana's 3pm and 11am.
Deactivation and Activation
Delegating stake does not immediately start yielding rewards. Any new stake goes through an "activating" state called "warmup" until an epoch boundary at which point the stake is "activated" and begins earning rewards. The withdrawal flow is the same. Any existing staked SOL will stop yielding rewards, but can keep earning up until an epoch boundary. Then it goes through a "cooldown" and can then be withdrawn. So on average, stake activation and cooldown take anywhere from 2-4 days depending on when in the epoch it occurs.
Warmup and cooldown were implemented to protect consensus. There are limits on how much of the total stake of the network can be activated or deactivated each epoch to prevent any single event from removing a lot of security from the network very quickly. In practice, that means the cooldown time could extend past 1 epoch if many people are exiting at once.
Stake accounts are also composable. Stake accounts can be split and merged (e.g., you can split off 20 SOL worth of stake (~$1600 on the date of writing) from a 100 SOL stake into two separate accounts to try a new validator). Stake accounts can be redelegated to other validators.
Stake Accounts vs. Ethereum
Ethereum has no staking concept on the base protocol. Staking means running a validator with 32 ETH (~120k+ as of this writing). In both Ethereum and Solana, both entry and exit involve waiting periods in a queue from hours to days when in high demand. The warmup and cooldown on Solana fulfill a similar purpose, but with the additional benefit of allowing users to stake with any amount from 1 SOL and up, and split and merge stake accounts.
Liquid staking protocols like Lido on Ethereum and Marinade and JitoSOL on Solana solve the waiting periods on both chains by "wrapping" the waiting periods with a liquid token you can trade on the spot market.
Why this matters
If you have staked SOL, you have done so through a stake account. Most likely, you have never seen the account itself, but Phantom, for instance, creates a stake account internally when you stake 50 SOL (~4k), but it is hidden from view, so you can just see your yield.
Understanding when your stake activates and when you can exit allows you to use your stake in a more sophisticated way. It is good to understand that exiting takes days, and do not expect it to be part of "dry powder" to use when the market suddenly dips.
It is good practice to look at validator stats through Solana Compass and split stake across 2-3 different validators in order to reduce your exposure. If one validator has a significant problem, you will lose some SOL, but nothing to worry about. This would only be an issue in Ethereum staking, where there is slashing (loss of ETH) if a validator has downtime. In Solana, downtime just means that you don't earn any rewards for the downtime. It only costs one transaction to split your stake into two or three stake accounts.
The biggest drawback of stake accounts is liquidity. Staked SOL earns no yield while warming up or cooling down and cannot be withdrawn. As of a fairly recent change, there is also now a 1 SOL minimum for new stake accounts so you can no longer dabble with micro-amounts. If you think instant liquidity is important, a liquid staking token is your better choice.
How long is it in cooldown?
Deactivating stake account means deactivating it until the next epoch boundary plus cooldown which is a few days. However if everyone on the network is withdrawing stake at the same time, it can take longer.