DOCS
Two tools for a Solana wallet. Before you connect anywhere: check the site. After you connected somewhere: find every permission you left behind and revoke them all at once.
WALLET SCAN
Paste any address or connect a wallet. We read the chain directly (SPL Token and Token-2022) and list every token account where someone other than you holds a power over your tokens:
| TAG | WHAT IT IS | REVOKE ALL |
|---|---|---|
| DLG | A delegate: an address you once approved (often a dApp) that can move up to the approved amount. "ALL" means unlimited or at least your whole balance. | Cleared |
| FRZ | A delegate on an account the issuer froze. The token program refuses a revoke while it is frozen. | Shown, skipped |
| CLS | A foreign close authority: someone else can close the account once it is empty and take the rent (about 0.002 SOL). Only the authority can change it. | Shown only |
| T22 | A Token-2022 permanent delegate set by the issuer. It can move these tokens no matter what you sign. | Shown only |
If any chain read fails, the scan says so and is never shown as clean.
Not seen by the scan: stake account authorities (staker / withdrawer); durable-nonce transactions you signed earlier (invisible in wallet state); token accounts whose owner was already changed away from you; NFT / compressed NFT delegates (Bubblegum, Metaplex); permissions inside other programs (DEX orders, lending, vaults).
REVOKE ALL
The transactions are built in your browser from the scan, then simulated. An account that would fail (frozen, not yours) is dropped with the reason, the rest is packed again.
- Each transaction holds only Revoke instructions of the token programs, up to 25 per transaction (1232 bytes is the Solana limit), plus at most one SOL transfer to the treasury in the first one.
- The listing you read before signing is decoded from the exact bytes your wallet gets. After the wallet signs, we decode again and stop if anything changed: other accounts, another fee, another instruction.
- Your wallet signs all transactions in one prompt. One signer: you. No approvals, no transfers of your tokens, no versioned transactions.
- Our RPC relay carries revoke transactions only. Anything else is refused before it reaches the chain.
SITE CHECK
We fetch the page from our server the way a browser would, follow up to 4 redirects, then read every script it loads (up to 40). Two answers only:
| ANSWER | WHEN |
|---|---|
| ?DON'T CONNECT | The page, a redirect, a script, a form or an API host is on a drainer list (ScamSniffer, MetaMask, Phantom, polkadot.js); drainer code is found (a Telegram bot token, a Discord webhook); the server shows a PHP version below the fix (8.5.12, 8.4.27, 8.3.36, 8.2.35) or 8.1 and older; a signing script changed since our last read and carries drainer patterns; or the page could not be loaded, so it was not checked. |
| SAFE | None of the above. Weak signs (eval, long encoded blobs, a new script origin, plain http) are listed as notes. |
Every answer ends with: Not a guarantee. A site can serve a scanner something else.
Not seen by the check: cloaking (a drainer that shows scanners a clean page), code loaded only after you connect, chunks loaded later by the app. The PHP version is hidden by almost every server. Drainer lists lag by up to 7 days. Lists loaded now: 475,818 hosts.
LIMITS AND FEE
| OTHERS | HOLDERS | |
|---|---|---|
| Wallet scans a day | 40 | 400 |
| Site checks a day | 20 | 200 |
| Revoke all | 0.001 SOL once, in the first transaction | free |
Treasury: Set at launch
Holder: about $50 of the token, read at sign-in. Sign-in is a message signature (no transaction, no cost). Before the token is live everybody is on the free tier. The fee is part of a transaction built in your browser and shown before you sign.
WHAT WE KEEP
Daily counters per IP (hashed) or per holder wallet, a short cache of check answers, the script hashes of checked sites (to notice changes), a 60 second cache of holder balances, aggregated counts. No accounts, no emails, no keys.