Read-only · keyless · no wallet connect

Hold any wallet up to the light.

Paste a public Solana address and Walletglass refracts it into its parts: SOL and every token valued in US dollars, an allocation rose window, and honest flags for frozen, unpriced and thin-liquidity holdings.

SOL / USD (live)
…
24 h change
…
Source
Jupiter price v3

I · The window

Look through a wallet

Everything below is fetched live from Jupiter in your browser. Nothing is stored, nothing is signed.

Public wallet addresses only. Never paste a private key or seed phrase anywhere — Walletglass will never ask for one.

Try:

II · How it works

Four panes of glass

  1. 1. You paste an address

    A public key is checked in your browser: base58 characters only, 32–44 long. It goes in the page hash so you can bookmark it — never in a query string.

  2. 2. Holdings are read

    Jupiter’s holdings endpoint returns the native SOL balance and every token account the wallet owns, including empty ones and their rent.

  3. 3. Tokens are identified & priced

    Non-zero mints are looked up in batches of 100 for name, icon, verification, liquidity and a USD price. Unknown mints stay labelled as unknown.

  4. 4. Light becomes a window

    Values are summed and leaded into a rose window: each pane is a share of priced value, with flags for anything you should look at twice.

III · What you can learn

Six things a glance reveals

Concentration

Is a wallet 90% one memecoin or spread across majors? The rose window makes over-concentration obvious at once.

Spam & airdrop clutter

Hundreds of unpriced, unverified mints usually mean unsolicited airdrops. Don’t interact with them — just know they’re there.

Reclaimable rent

Empty token accounts quietly hold ~0.002 SOL each. See how much is locked before you tidy up from your own wallet.

Liquidity reality check

A $50k “value” in a token with $3k of liquidity is not $50k you can sell. Thin-liquidity flags call this out.

Frozen balances

Some issuers can freeze token accounts. A frozen flag means that balance cannot move until the issuer thaws it.

Due diligence on public wallets

Look at a treasury, a project’s publicly stated wallet or your own cold wallet without connecting anything.

IV · Field guide

How a Solana wallet is really built

A wallet is an address, not a box

On Solana a “wallet” is a public key whose system account holds native SOL, measured in lamports (1 SOL = 1,000,000,000 lamports). Tokens do not sit inside that account. Each token you hold lives in a separate token account that records three things: which mint it belongs to, who owns it, and how many base units it holds. The wallet address is simply the owner written into those accounts.

Associated token accounts

To keep things predictable, wallets normally use the associated token account (ATA): an address derived deterministically from the owner, the token program and the mint. Anyone can compute it, which is why someone can send you a token you never asked for — they create your ATA and pay its rent. A wallet can also own extra, non-associated token accounts; Walletglass shows the count of both.

Why spam tokens appear

Because creating an ATA for someone else is cheap and permissionless, scammers airdrop worthless mints to thousands of wallets, often with names that look like a reward or a link. They rarely have liquidity or a verified listing, so here they show as unpriced or unverified. The safe move is to ignore them: interacting with a lure token’s website is how drainers get signatures.

Rent and empty accounts

Every account must hold enough lamports to be rent-exempt. A classic SPL token account is 165 bytes and needs about 0.00204 SOL; Token-2022 accounts with extensions can need more. When you sell a token to zero the account usually stays open with its deposit. Closing it with your own wallet returns that SOL.

Token-2022 and frozen accounts

Solana has two token programs. The original SPL Token program and Token-2022, which adds optional extensions such as transfer fees, transfer hooks, interest-bearing balances, metadata pointers and non-transferable tokens. A Token-2022 badge is not a warning on its own, but extensions can change what happens when you move a token, so it is worth checking the mint. Separately, any mint that kept a freeze authority can freeze individual token accounts. Regulated stablecoins use this for compliance; a random memecoin keeping it is a red flag.

Where the prices come from

There is no single on-chain “price” for a token. Aggregators such as Jupiter derive a USD price from recent swaps and pool reserves across many DEXes, and report the pooled liquidity behind it. A price backed by millions in liquidity is robust; a price backed by a few hundred dollars can be set by a single trade.

Why value is not sellable value

Value here is amount × current price. That is a mark, not a quote. Selling a large position pushes the price down as you walk through the pool (price impact), fees apply, and some tokens carry transfer taxes or cannot be sold at all. When a position is larger than a meaningful fraction of the token’s liquidity, Walletglass flags it as thin; treat that number as optimistic.

Quick reading key
FlagMeaning
VerifiedListed as verified by Jupiter’s token list
T-2022Owned by the Token-2022 program
FrozenThis token account is frozen by the mint’s freeze authority
UnpricedNo USD price was found — value counted as $0
ThinLiquidity under $10k, or position > 10% of liquidity

V · Questions

Frequently asked

Is it safe to paste a wallet address here?

Yes. A wallet address is public information already visible on every block explorer. Walletglass never asks you to connect a wallet, sign anything, or reveal a private key or seed phrase. If any site asks for those to “view” a wallet, leave.

Why is the total lower than my wallet app shows?

Tokens without a Jupiter price are counted as $0, and very large wallets are only valued for the first 400 non-zero mints. Your wallet app may also use a different price source or include staked SOL, which lives in separate stake accounts that this view does not read.

What does “unpriced” mean?

Jupiter returned no USD price for that mint, usually because it has no tradable pool. Most unpriced tokens in large wallets are unsolicited airdrops. You can open a lookup on DexScreener from the row to double-check.

Can I close empty token accounts here?

No. Walletglass is strictly read-only and sends no transactions. Most wallet apps offer a way to close empty token accounts and return the rent to you; do it there, and only for tokens you recognise.

Does it include staked SOL, NFTs or DeFi positions?

Only what appears as a native SOL balance or a token account is shown. Native stake accounts, LP positions held inside protocols, and compressed NFTs are not included. Standard NFTs may appear as unpriced tokens with an amount of 1.

How often is the data refreshed?

Each lookup fetches fresh data; nothing is cached on a server because there is no server. Press Illuminate again to refresh. Requests are kept small to stay polite to the free public APIs.

Why is a token I know marked unverified?

Verification reflects Jupiter’s list at the time of the request. New or niche tokens can be legitimate yet unverified, and impostors can copy a famous name. Always compare the mint address, not just the symbol.

Limits & honesty

  • Sources: holdings from Jupiter’s public holdings API, token metadata and prices from Jupiter’s token search, SOL price from Jupiter price v3. Optional DexScreener links open on click.
  • Coverage cap: to stay within free rate limits, only the first 400 non-zero mints are looked up (4 requests of 100). Very large wallets will show the rest as “not looked up”.
  • Not included: stake accounts, protocol positions, compressed NFTs, pending transactions, and anything off-chain.
  • Prices are marks: value = amount × price. It ignores price impact, fees, transfer taxes and whether a token can be sold.
  • No accounts, no tracking: no wallet connect, no signing, no cookies, no analytics. Your lookups go directly from your browser to the APIs.
  • Rate limits: if Jupiter throttles a request you’ll see a message and a retry button. Wait a few seconds and try again.