A Solana stake account is a separate on-chain account that holds SOL delegated to a validator. It is created from the wallet's own SOL, controlled by the wallet through its stake and withdraw authorities, and it is the account in which staking rewards are credited. A wallet can hold any number of stake accounts, each delegated to one validator.
Staking on Solana does not happen inside the wallet. SOL is moved out of the wallet into a new stake account, a separate on-chain account with its own address, and that account is then delegated to a validator's vote account. The wallet keeps control through two authorities, one that manages the stake and one that can withdraw, so the SOL is yours throughout. This is the delegated staking model: the validator does the work, the delegator holds the stake, and there is no minimum beyond the rent-exempt amount of the account.
Stake changes state only at epoch boundaries, and an epoch lasts around two days. A newly delegated account is activating until the next boundary and earns nothing before then. Deactivating it stops rewards at the following boundary, after which the SOL can be withdrawn back to the wallet. Rewards are paid at each boundary directly into the stake account, where they add to the delegated balance and compound, so nothing arrives in the wallet until a withdrawal. Stake accounts can be split, merged and re-delegated, and a wallet can hold many of them at once.
Running a validator yourself is validator staking, a different arrangement. Staking through a liquid staking pool, which takes SOL and issues a token in exchange, is different again and is covered under liquid staking tokens.
Moving SOL from your wallet into your own stake account is not a disposal. The asset, the owner and the control are the same before and after, so there is no realisation under section 1001, no gain or loss, and the basis and holding period of the SOL carry into the stake account unchanged. Delegating, deactivating and withdrawing the original SOL back to the wallet are the same: transfers between accounts you control, not sales and not income.
The rewards are income. Under Revenue Ruling 2023-14, staking rewards are included in gross income at fair market value when the taxpayer gains dominion and control over them. Rewards land in a stake account the wallet controls and can deactivate and withdraw at will, subject to the epoch cooldown, which supports recognising them when they are credited at each epoch boundary rather than only on withdrawal. Whichever recognition point is applied, the amount recognised becomes the basis of the reward SOL, and its holding period starts then.
The accounting has to split a withdrawal into its parts. The SOL that comes back is the original stake plus every reward credited since delegation, in one amount, from an address the wallet's transaction history may not associate with the wallet. The original units return with their original lots. The reward units are new lots at the income value. If the stake account was split or merged along the way, those lots have to follow the units through each account.
The lump withdrawal is where reports fail. A wallet imports 10 SOL leaving for a stake account and, a year later, 10.6 SOL arriving from it. Software either matches the two as a transfer and leaves 0.6 SOL as an unexplained acquisition with no basis, or reads the whole 10.6 SOL as a receipt from an unknown address. In both cases the rewards never appear as income in the year they were credited, and the 0.6 SOL later sells as a gain on a zero basis, so the reward is taxed in the wrong year and the wrong character, and the income line is missing from the return.
Read our Pros and Cons of Solana: The Future of Blockchain or a Temporary Trend? 2026 Update
CountDeFi specializes in complex DeFi tax accounting, including Solana staking, stake account reconciliation and multi-chain activity. See pricing.