No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
SolanaWallets7 min read

Close empty token accounts on Solana and get the SOL back, but not your USDC account.

Closing an empty token account on Solana sends the SOL it holds as rent back to an address you choose, about 0.00149 SOL for a standard 165-byte account opened at today's rate (measured 15 October 2026). Only accounts with a zero token balance can be closed. Keep the USDC account you pay subscriptions from and the one your business gets paid into: with Fianto, a closed payer account fails the next renewal as a counted failure, and a merchant wallet without one cannot take a single new checkout.

On this page
How much SOL do you get back from closing a token account?Is closing a token account the same as reclaiming subscription rent?Which token accounts can you safely close?How to close an empty token accountWhat happens to a USDC subscription if you close your USDC account?Can a merchant close the USDC account of the wallet it gets paid into?SourcesQuestions
TL;DR
  • A token account must hold zero tokens to be closed; closing returns every lamport it holds to the address you name.
  • A 165-byte token account opened today holds 1,488,440 lamports of rent (15 October 2026); older ones hold more, and you get back what each one holds.
  • Never close a USDC account a subscription charges, or a merchant receiving account: the first fails renewals, the second blocks checkout with merchant_token_account_missing.

How much SOL do you get back from closing a token account?

You get back every lamport the account holds, which for a normal token account is its rent. Rent is the minimum SOL balance Solana makes an account keep while it exists. Solana's reduced-rent page says that "when that account is closed, the lamports are returned in full to whoever closes it."

A token account, the account that holds one token for one owner, is 165 bytes. On 15 October 2026 a public mainnet RPC put its rent at 1,488,440 lamports, about 0.00149 SOL, which is (128 + 165) * 5,080 lamports per byte. That rate is falling in steps under SIMD-0437, with three more expected in November 2026, so an account opened next year will hold less.

An account opened before the cuts holds what it was funded with, up to 2,039,280 lamports at the old 6,960 per byte, and closing it returns that whole balance. Ten old empty accounts come to about 0.02 SOL: worth a few minutes, not a weekend.

Is closing a token account the same as reclaiming subscription rent?

No: a token account and a subscription account are different accounts, closed by different instructions. A Fianto subscription opens its own 155-byte account in the Solana Foundation's Subscriptions program. As of 15 October 2026 its rent was 1,437,640 lamports, about 0.00144 SOL, and it comes back when you reclaim it in the portal at fianto.xyz/my after the subscription has ended and been cancelled on Solana. The one-time wallet setup account, 1,188,720 lamports or about 0.00119 SOL that day, is not returned. The checkout always shows the live amounts.

That flow, with its timing and the button to press, is in account rent and reclaim. The rest of this post is about plain token accounts.

Which token accounts can you safely close?

You can close a token account when its balance is zero and you sign as its close authority, which is the owner unless the owner handed that role to another address. The Token program documentation is direct: "Non-native Accounts must have a balance of zero to be closed." The only exception is wrapped SOL, which unwraps as it closes. Whether you should close it is a separate question:

AccountClose it?Why
Empty account for a token you no longer hold or wantYesIts rent comes back and nothing depends on it
Account holding a few leftover tokens (dust)Only after emptying itSend or burn the balance first; a non-zero account cannot close
Your USDC account, when a subscription charges this walletNoThe next renewal fails and counts against the subscription
The USDC account of a wallet you get paid intoNoPayments have nowhere to land, and Fianto refuses new checkouts
A Fianto subscription accountNot with a token toolReclaim its rent in the portal after the subscription ends

An empty USDC account is easy to mistake for clutter. If you spend your last USDC between two renewals, the account sits at zero and a clean-up tool will offer to close it. That is the case to stop and check.

How to close an empty token account

  1. List your token accounts. Your wallet shows balances by token; an explorer page for your wallet address, or the RPC method getTokenAccountsByOwner, shows every account including empty ones.
  2. For each empty account, read its mint, the address that says which token it holds. If the mint is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, it is USDC: skip it if any subscription charges this wallet or anyone pays you into it.
  3. Empty any account that still holds dust. Transfer the tokens to an account you keep, or burn them if they are worthless.
  4. Close the account with the Token program's CloseAccount instruction, signed by the owner (or by the close authority instead, if one was set), naming your wallet as the destination for the SOL. Your wallet may do this for you under a clean-up option; the command line has spl-token close for one account and spl-token gc, which the Token docs give as an example of tidying a wallet's extra accounts.
  5. Check your SOL balance. The account's lamports arrive in the same transaction, minus the fee you paid to send it.

What happens to a USDC subscription if you close your USDC account?

Opening the account again does not fix it on its own. A new token account carries no delegate, so the approval the Subscriptions program uses to collect is gone with the old one; Solana token delegation explained covers why. The portal offers Renew approval when the subscription is past due, the latest counted failure was the approval or the closed USDC account, and no cancel is scheduled. The failed renewals guide for payers walks through it: the wallet needs a USDC account again first.

If you meant to stop paying, cancel in the portal instead. A cancel runs to the end of the period you already paid for, and the subscription account's rent can be reclaimed once it has ended. For a renewal that failed for another reason, see why a USDC subscription didn't renew.

Can a merchant close the USDC account of the wallet it gets paid into?

A merchant should never close the USDC account of its receiving wallet, because every Fianto payment lands there and Fianto does not create it for you. Without it, creating a checkout session or building its payment fails with 422 merchant_token_account_missing, and the message tells the merchant to send any amount of USDC to the wallet once to create it again. Shop sales and payment links stop the same way, because they open checkout sessions too.

Subscriptions are bound on chain to that exact wallet when the customer signs, so they have nowhere else to pay. Keeping a little USDC in the receiving wallet is the simplest guard: an account with a balance cannot be closed by accident. Setting the wallet up is covered in accept USDC on Solana.

See how Fianto collects renewals on Solana and what the customer approves.

Solana subscriptions
Sources
Questions

Questions about closing token accounts.

Can I close a token account that still has tokens in it?

No. The Token program closes an account only when its balance is zero, except wrapped SOL. Send or burn the tokens first.

Where does the SOL go when I close a token account?

To the destination you name in the CloseAccount instruction, usually your own wallet. Every lamport the account held moves in that transaction.

Will closing my empty USDC account cancel my subscription?

No. With Fianto it makes the next renewal fail, the subscription goes past due, and it ends after the fourth counted failure. Cancel in the portal at fianto.xyz/my instead.

Can I still receive USDC after closing my USDC account?

Yes, if the sender's wallet opens the account again and pays its rent. A Fianto merchant wallet is the exception: it must have the account before any checkout opens.

Is closing a token account the same as reclaiming subscription rent?

No. Subscription rent sits in a separate account of the Subscriptions program and is reclaimed in the Fianto portal after the subscription ends.

Read next.

Solana8 min read

What is a Solana address? Public keys, PDAs and token accounts in one payment

A Solana address is a 32-byte account identifier written as a base58 string, and it is one of two kinds: the public key of a keypair, which someone can sign for, or a program derived address, which nobody holds a key for. Your wallet address is a public key; your USDC sits in a token account at a program derived address calculated from that wallet. To get paid you give the wallet address, never the token account, and a Fianto merchant proves that wallet by signing with it.

Wallets8 min read

Can a merchant take more than I approved? Crypto subscription approval limits

No. A USDC subscription paid through Fianto runs on the Solana Foundation's Subscriptions program, which lets a collection through only if it stays within the cap for the period, the price plus the fees, and goes to a wallet the plan names. Your wallet may still list the approval as unlimited, because one approval is shared by every subscription your wallet pays through the program; the limits sit in each subscription's on-chain terms, not in that approval.

Solana8 min read

What is an associated token account? Why your USDC has its own address

An associated token account is the default account that holds one token for one wallet on Solana, at an address calculated from the wallet's address, the token program and the token's mint. Your wallet address never holds USDC itself: the USDC sits in that second account, which must exist before anything can land in it. With Fianto, a merchant's receiving wallet needs one before its first sale and a customer's wallet needs one to pay, and Fianto never creates either.

Close the clutter, keep the USDC.

Check the mint of every empty account before you sign.

New posts are announced on X and Discord.