A rent-exempt Solana account is not an account that dodged a recurring bill. It is an account that holds the minimum SOL its size requires. That minimum is a refundable deposit for storage. When the account is closed, the lamports come back in full to the destination.
The Solana Foundation's reduced-rent page puts it directly: "rent" is a misleading name. It is not a fee. Every account must hold a minimum balance sized to its data, and closing the account returns those lamports in full. This guide is the practical version of that rule, including what the 2026 rent cut changed.
How the minimum balance is calculated
The deposit depends on the account's data size and a network constant, lamports_per_byte:
minimum balance = (128 + data size in bytes) × lamports per byte
The 128 bytes are overhead every account pays for. The data size is whatever that account stores. A classic SPL token account stores 165 bytes, so the formula uses 293 bytes. SIMD-0437 defines the constant. Chainstack's rent guide applies it to token accounts, mints, and stake accounts.
Before SIMD-0437, the constant was 6,960 lamports per byte. A 165-byte token account therefore needed 2,039,280 lamports, or 0.00203928 SOL.
As of October 8, 2026, mainnet is on step 2 of the cut, at 5,080 lamports per byte. The same token account now needs 1,488,440 lamports, or 0.00148844 SOL. That figure is (128 + 165) × 5,080. It is also what mainnet-beta returned on that date for a data length of 165, and what Chainstack records for solana rent 165 after step 2.
Do not memorize 0.00148844 SOL. Later steps are scheduled to lower the constant again, down to 696 lamports per byte, and they do not have a fixed date. The full step table, the September 2026 activation dates, and what to do with the SOL freed by the cut are in Solana rent reduction: SIMD-0437 and token account rent in 2026.
What "rent-exempt" means for an account you already have
Creating an account requires the current minimum at that moment. The lamports stay in the account. They are not spent each epoch.
If the network later lowers the minimum, the extra lamports just sit there. Solana does not refund them automatically. You either close the account, which returns the whole balance to the destination, or you withdraw only the excess and leave the account open. Withdrawing excess is a real instruction (WithdrawExcessLamports for token accounts and mints). It is a different action from closing.
Accounts created before September 3, 2026 still hold the pre-cut deposit. Close one and you get that full deposit back at the destination, not the new smaller minimum. Solana's close-account guide says the token balance must be zero before a normal token account can close. The close instruction then sends all of the account's lamports to a destination you choose. Wrapped SOL accounts are the exception: they are closed to recover the underlying SOL, and the excess-withdraw instruction does not support them.
An account opened after a step only locked the minimum in force at creation. Closing it returns that smaller amount.
How to check the minimum
Ask the cluster instead of pasting a constant into a script. The RPC method is getMinimumBalanceForRentExemption. Pass the account's data length. For a classic token account, that length is 165. The method adds the 128-byte overhead.
From the command line, Chainstack shows:
solana rent 165 --lamports --url YOUR_RPC_URL
After step 2, that command's rent-exempt minimum is 1,488,440 lamports. A local test validator can still report the old 6,960 rate, so check mainnet or devnet if you want the live figure. A short JavaScript example is in the SIMD-0437 post.
Two balances are easy to confuse:
| Balance | What it tells you |
|---|---|
| At least the current minimum | The account meets today's rent-exempt requirement |
| Above the current minimum | The extra is reclaimable, but only if you withdraw it or close the account |
| The original deposit on an old account | Still returned in full to the destination when you close. SolPurge keeps a 6% fee. New accounts deposit less |
Empty token accounts
An empty token account is often still rent-exempt. "Empty" means the token balance is zero. The SOL deposit is still inside the account. That is why closing unused token accounts returns SOL: you are unlocking a deposit, not collecting a reward.
SolPurge closes empty classic SPL token accounts and returns the lamports in them, minus its 6% fee. That includes the larger deposit on accounts opened before the rent cut.
SolPurge does not burn tokens. Apart from wrapped SOL accounts, which closing unwraps, SolPurge only closes token accounts with a zero balance. To remove any other token balance, burn or sell it elsewhere first, then close the empty account. It does not run WithdrawExcessLamports. Keeping the account open and skimming only the surplus is a separate step, and this app does not do it. SolPurge does not support Token-2022 yet.
If you only want the background on why those empty accounts exist, read why empty token accounts accumulate and how to reclaim SOL from closed token accounts. To put a number on one address, use the rent reclaim estimator. The wallet checker shows that address's token accounts and the SOL you would receive after fees from closable accounts (empty token accounts, and wrapped SOL that closing unwraps). The estimator and wallet checker are part of the tools, and the transparency page explains the fee kept when that deposit comes back.
What to do with the deposit
- If the token balance is zero and you do not need the account, close it. The chain returns the full SOL deposit to the destination. SolPurge closes empty classic SPL token accounts and returns the lamports in them, minus its 6% fee.
- Apart from wrapped SOL accounts, which closing unwraps, SolPurge only closes token accounts with a zero balance. To remove any other balance, burn or sell it elsewhere first. The surplus above today's minimum can be withdrawn with
WithdrawExcessLamports, but that is not something SolPurge does. - If the account is wrapped SOL, closing it unwraps the SOL.
WithdrawExcessLamportsdoes not support it. - If you are creating accounts in a program, read the minimum from
getMinimumBalanceForRentExemptionat runtime. The step-2 number will be stale after the next gate.
The phased cut, the amounts at each step, and the network-wide reclaim figures are covered in the SIMD-0437 rent-reduction guide. For a shorter overview of why the deposit exists, see how Solana's rent system works. More wallet guides are on the blog.