token-account residue finder · solana
Your wallet
keeps receipts.
Mainnet live · checking…
Status:
Ticker (placeholder, no token exists):
the working app
Take a core sample
Paste any public address. Residue lists every token account it owns on mainnet right now — the same list any explorer, airdrop hunter or analyst can pull in one call.
The strata
How this wallet's token accounts break down — counts, not value (Residue fetches no prices).
No sample yet.
—token accountsSPL + Token-2022
—mints revealedtokens you provably touched
—empty accountsbalance 0, still on chain
—SOL locked in emptiesreclaimable by closing
—SOL balancenative, for context
—need attentiondelegates · frozen · spam
Dig an address to see its token accounts.
Close-out plan
Tick accounts in the list (empty ones are pre-selected). Only empty accounts can be closed directly; tiny balances must be sent or burned first, in your wallet.
0selected to close
0SOL rent back
Run it yourself
Use your wallet's "close token account" / "burn" feature, or the official spl-token CLI on your own machine with this wallet as the signer. Residue never touches your keys.
# select accounts to generate commands
- Closing returns the rent (lamports) to the owner and deletes the account. It cannot be undone, but you can always open a new one.
- Closing removes the residue from today's state. It does not erase history — the transactions that created and used the account stay public forever.
how it works
From one call to a close-out plan
- Every account, one read each. Residue calls
getTokenAccountsByOwnertwice — once for the SPL Token program, once for Token-2022 — withjsonParsedencoding. That returns every token account owned by the address: mint, raw amount, decimals, state, delegate, close authority, Token-2022 extensions and the lamports it holds. - Name the mints. For each mint it derives the Metaplex metadata account (
["metadata", program, mint]) in the page and reads only the name/symbol/URI bytes withgetMultipleAccounts; Token-2022 mints without one are read for their on-chain metadata extension. - Sort the layers. Each account is classed as held, NFT (0 decimals, amount 1), tiny (below your threshold), empty (amount 0) or spam (name looks like airdrop bait). It also checks whether the account sits at the standard associated-token address derived from (owner, token program, mint) — a non-standard address hints at which app created it.
- Count what it costs. Rent in empty accounts is summed (about 0.002 SOL each for a plain SPL account; Token-2022 accounts with extensions hold more). Optionally Residue reads each empty account's latest signature to date when it was last touched.
- Hand you the plan. Select accounts and copy ready-made
spl-token close --address …lines, or use your wallet's own close/burn feature. Residue never signs anything.
privacy model
What leaks, what doesn't
What Residue keeps private
- Your lookups: no account, no history, no analytics — the proxy relays allowlisted read calls and keeps no query log
- The inventory and plan: built in your browser, kept in memory only, gone when you close the tab (unless you save the CSV)
- Your keys: never requested, never needed — closing happens in your own wallet
What still leaks
- The upstream RPC sees your IP and the address and mints that were read
- Everything Residue shows is already public: anyone can list any wallet's token accounts with the same call
- Closing an account removes it from today's state only — the creating and spending transactions remain in history, and the close transaction itself is public
- Closing many accounts in one go links them together in time; do it gradually if that matters to you
Residue reduces the information your wallet's current state exposes. It does not make you anonymous.
Known limitations — please read
- Counts, not prices. "Tiny" means fewer than your threshold in whole tokens. Residue doesn't know what anything is worth — check before you burn.
- Names are best-effort. Read for up to 250 mints from on-chain metadata; off-chain JSON is not fetched, and token names are set by whoever created the mint (they can impersonate real tokens).
- Spam detection is a heuristic. A name with a link or "claim / reward" wording is labelled spam; some real tokens may be labelled wrongly and some spam will slip through. Never open links from token names.
- Some accounts can't simply be closed: frozen accounts, Token-2022 accounts holding withheld transfer fees, and accounts whose close authority is someone else. They are flagged; closing them needs the issuer or authority.
- Spam can come back. Anyone can send you a token and create a new account for it. Closing doesn't block that.
- Wrapped SOL. Closing a wrapped-SOL account unwraps its balance back to native SOL.
- Public RPC. Reads go through a public mainnet endpoint by default and can be slow or rate-limited. Very large wallets may time out.
- Experimental and unaudited. Double-check any account before closing it, in your wallet or a block explorer.