Rent Basics

What is Solana rent? The refundable deposit on every account

Cover image for What is Solana rent? The refundable deposit on every account

Solana rent is a one-time, refundable SOL deposit every account must hold to stay on chain. How the rent-exempt minimum is calculated and how to get it back.

By Updated 7 min read1550 words

Key takeaways

  • Solana rent is a one-time SOL deposit that every account must hold to stay stored on chain; it is refunded in full when the account is closed.
  • The Solana rent-exempt minimum is (128 + data bytes) x 3,480 lamports per byte-year x 2 years, which is 6,960 lamports per byte including a 128-byte overhead.
  • A standard 165-byte SPL token account holds exactly 2,039,280 lamports (0.00203928 SOL) of rent, and a token mint of 82 bytes holds 1,461,600 lamports.
  • Solana no longer deducts rent over time: every new account must be rent-exempt from the moment it is created, so the deposit never shrinks.
  • Closing an empty token account with the SPL Token program's CloseAccount instruction returns all of its lamports to the address the owner chooses.

The short answer#

Solana rent is a one-time SOL deposit that every account on Solana must hold in order to stay stored on chain. The amount depends only on how many bytes the account uses: a standard SPL token account holds 0.00203928 SOL. It is not a recurring fee, nothing is deducted over time, and the full deposit comes back when the account is closed.

What does "rent" mean on Solana?#

Rent on Solana is the price of on-chain storage, paid as a balance the account keeps rather than a fee the network takes. Everything on Solana lives in an account: your wallet's SOL, each token balance, each NFT's metadata, each deployed program. Validators keep all of that account data available for fast access, so every byte has a real hardware cost across the whole network.

Instead of charging for every write the way Ethereum charges gas for storage, Solana requires each account to hold a minimum number of lamports proportional to its size. A lamport is the smallest unit of SOL, one billionth of one SOL. An account that holds at least this minimum is called rent-exempt. Today every new account must be rent-exempt from the moment it is created, which makes the word "rent" a little misleading: nothing is billed monthly, nothing drains, and the balance is still yours.

Two consequences follow from that design:

  • Creating accounts costs money up front, which discourages filling the chain with junk.
  • Deleting accounts pays that money back, which rewards cleaning up.

Most users only ever see the first half.

How is the rent-exempt minimum calculated?#

The rent-exempt minimum is (128 + data bytes) x 3,480 lamports per byte-year x 2 years. The 128 bytes are a fixed overhead the runtime counts for every account's bookkeeping, and the two-year multiplier is the exemption threshold carried over from the original design. Combined, the rate is 6,960 lamports per byte, including the overhead bytes.

Worked through for the account types you are most likely to meet:

Account typeData sizeRent-exempt minimum (lamports)In SOL
System account (plain wallet)0 bytes890,8800.00089088
SPL token mint82 bytes1,461,6000.0014616
SPL token account165 bytes2,039,2800.00203928
Token-2022 associated token account (typical)170 bytes2,074,0800.00207408
Metaplex master edition282 bytes2,853,6000.0028536

Token-2022 accounts grow with the extensions the mint uses, so a token with transfer fees or other extensions holds a little more than the figures above. A Metaplex metadata account is larger still: creating one costs about 0.0151 SOL, but 0.01 SOL of that is a Metaplex creation fee rather than rent.

You do not have to do this arithmetic by hand. The free Solana rent calculator reads the current rate from the network and returns the deposit for any byte size, and the lamports converter next to it turns the raw numbers you see in explorers into SOL. Developers get the same value from the getMinimumBalanceForRentExemption RPC method, which is documented in the Solana docs.

Is Solana rent a recurring fee?#

No: Solana rent is paid once and never deducted again. The original protocol did collect rent each epoch from accounts that were not rent-exempt, and an account that ran dry was deleted. That mechanism has been retired for new accounts. The runtime now refuses any transaction that would leave an account with a non-zero balance below its minimum, so an account is either fully funded or gone.

This is also the reason a transfer can fail with an "insufficient funds for rent" error. If you try to send SOL to a brand-new address and the amount is below 0.00089088 SOL, the receiving account would exist without being rent-exempt, and Solana rejects the transaction. I cover errors like this one in why Solana transactions fail.

Rent is also separate from transaction fees. The base fee is 5,000 lamports per signature, plus an optional priority fee, and those are spent for good. Rent is roughly 400 times larger than a single base fee, but it is a deposit. The full breakdown is in Solana transaction fees explained.

Who pays Solana rent, and when?#

Whoever funds the transaction that creates an account pays its rent. For ordinary users that happens far more often than it appears, because apps create accounts on your behalf inside transactions you approve for another reason:

  • Buying a token you have never held. Your wallet needs an associated token account for that mint. An associated token account (ATA) is the token account at a deterministic address derived from your wallet and the mint. Jupiter, Raydium and every other swap interface add the create instruction automatically, and 0.00203928 SOL leaves your balance along with the swap.
  • Minting an NFT. A Metaplex NFT needs a mint, a token account, a metadata account and a master edition. The minter funds all of them.
  • Claiming an airdrop. Claim pages usually make the claimer pay for the new token account.
  • Receiving a transfer. If a friend sends you a token you have never held, their wallet normally pays to create your ATA.

The wallet popup shows the total SOL leaving, and few wallets label which part is a deposit. That is why so many traders believe Solana fees are around 0.002 SOL, when the actual fee was a small fraction of that. I wrote up where these accounts come from in the hidden cost of everyday Solana activity.

What happens to the rent when the tokens are gone?#

Nothing happens to it: the deposit stays in the account until someone closes the account. Selling or transferring out a token sets the balance to zero but leaves the token account in place, because the network cannot know whether you will want that token again. Solana never closes accounts on its own.

So an active wallet collects empty token accounts, each holding 0.00203928 SOL. Fifty of them is about 0.1 SOL. My own trading wallet had far more than that before I started cleaning it regularly, and that pile is the reason SOLTidy exists. If you want to put a number on your own wallet, how much SOL you can recover from token accounts walks through the estimate.

How do you get Solana rent back?#

You get Solana rent back by closing the account, which sends all of its lamports to an address the owner chooses. For token accounts the instruction is CloseAccount in the SPL Token program or in Token-2022, and the process looks like this:

  1. Make sure the token balance is zero. CloseAccount fails on a token account that still holds tokens, so leftover dust has to be sold, sent away or burned first.
  2. Send a CloseAccount instruction signed by the account's owner, naming your wallet as the destination.
  3. The program removes the account and transfers every lamport in it, the full rent deposit, to the destination within the same transaction.

Wrapped SOL is the one exception to step 1: closing a wSOL account returns the wrapped balance and the rent together, which is how unwrapping works. The free Wrap & Unwrap SOL tool does exactly that.

There are three realistic ways to close accounts:

  • Your wallet. Some wallets, Solflare and Phantom among them, offer a close or burn option in an individual token's menu. Fine for one or two accounts, slow for fifty.
  • The command line. spl-token close and spl-token gc from the SPL Token CLI cost nothing beyond network fees. If you are comfortable with a terminal and a keypair file, this is the cheapest route and I would not talk you out of it.
  • A bulk tool. The SOLTidy Token Account Closer scans both token programs, preselects only empty accounts and packs up to 8 closes into each transaction. It charges 5% of the rent recovered, taken inside the same transaction, and nothing if nothing is recovered. You can also paste any address for a read-only preview before connecting.

Closing is reversible in the sense that matters. If you later receive the same token, a new ATA is created at the same address and the deposit is paid again. The safety details are in is it safe to close Solana token accounts.

When is reclaiming rent not worth it?#

Reclaiming rent is not worth it for accounts you will reopen within days. If you trade the same handful of tokens every week, closing their accounts just means paying the deposit again on the next buy, plus a network fee each way. Leave those open and close the long tail of tokens you will never touch again.

It is also not worth burning a balance that has real value just to free 0.002 SOL. Check what the tokens are worth first. A balance that is small but sellable can be swapped to SOL and the account closed afterwards. And with only three or four empty accounts, the wallet's built-in close option does the job without any fee.

Bottom line#

Solana rent is a refundable storage deposit, not a fee. Its size follows a fixed formula, (128 + bytes) x 6,960 lamports, which puts 0.00203928 SOL in every standard token account. The deposit never decays, and it never returns on its own either: it comes back only when the account is closed. If you have traded on Solana for a while, part of your SOL is sitting in accounts you have forgotten about, and closing them is a routine, low-risk operation. I describe why I built the tools around this on the about page.

Questions & answers

Is Solana rent a recurring fee?

No. Solana rent is a one-time deposit, not a subscription. Every account must hold a minimum SOL balance based on its size, called the rent-exempt minimum. As long as the account holds that balance nothing is ever deducted from it. The older model, where under-funded accounts were charged rent each epoch, no longer applies to new accounts because Solana requires every account to be rent-exempt when it is created.

How much is rent for a Solana token account?

A standard SPL token account is 165 bytes, and its rent-exempt minimum is 2,039,280 lamports, which is 0.00203928 SOL. Token-2022 accounts are larger when the mint uses extensions, so they hold slightly more; a typical Token-2022 associated token account holds about 0.00207 SOL. The figure is set by the network's rent rate, not by wallets or apps, and it is the same for everyone.

Can I get Solana rent back?

Yes, by closing the account. When a Solana account is closed, all of its lamports, including the rent deposit, are sent to a destination address chosen by the account's owner. For token accounts the balance must be zero first, except for wrapped SOL accounts, which return everything they hold. Wallets can close single accounts, the spl-token command-line tool can do it for free, and bulk tools such as the SOLTidy Token Account Closer do many at once.

Who pays the rent when a new token account is created?

Whoever funds the transaction that creates the account. When you swap into a new token on Jupiter or mint an NFT, your wallet pays the deposit. When someone sends you a token you have never held, the sender usually pays to create your associated token account. Either way the deposit sits in the account you own, and you are the one who can reclaim it by closing the account.

What happens if a Solana account falls below the rent-exempt minimum?

In practice it cannot. The Solana runtime rejects any transaction that would leave an account with a balance above zero but below its rent-exempt minimum. An account either holds the full deposit or holds nothing and is removed. This is why wallets refuse to send your entire SOL balance minus a few lamports, and why a transaction can fail with an insufficient funds for rent error.

Why is Solana rent called rent if it is a deposit?

The name is historical. Solana's original design charged accounts a small amount every epoch for the storage they used, unless they held two years' worth of that charge up front, which made them rent-exempt. Rent collection was later dropped and the two-year exemption became mandatory for all new accounts. The word rent stuck, but the mechanism today is a refundable storage deposit.