What the issuer of a token can do to your balance

Reading a contract needs JavaScript. Your browser asks a public node directly, so the address you type never reaches us.

Data: your browser talks directly to public chain nodes. Your browser asks the chain for the deployed bytecode at the address you typed, plus a few values the contract answers about itself. The reading happens between you and the node - the address never reaches us, and nothing else you type ever leaves your browser.

A token is a contract somebody wrote, and the contract decides what your balance is. Most of the big ones keep the right to freeze an address, and some keep the right to empty it.

The powers are in the code, whether or not anyone mentions them

A published source file is written by whoever published it. The deployed bytecode is what actually runs, and a function the contract can reach is in there whether or not it appears in any documentation. This page reads that bytecode and looks for the functions that give somebody authority over your balance - the blacklist, the seizure, the pause, the mint, the fee switch, the replaceable code - and names the exact function it found each one by.

  • USDT has carried a blacklist and a seizure function since 2017.
  • A power being present does not mean it has ever been used.
  • A power being absent is not the same as a token being safe.

Half the big tokens are not the code you are reading

Many token addresses hold almost nothing: they delegate every call to a second contract, which is where the real behaviour lives and which the owner can swap out at will. This page follows that hop, reads both halves, and reports what it finds in either. When the second half cannot be read, the result is marked incomplete rather than shown as clean - a proxy shell on its own always looks harmless, and reporting that as "no powers found" would be the one wrong answer that matters.

  • Three standard storage slots and the pre-standard one USDC still uses.
  • Minimal clones are recognised from their exact deployed pattern.
  • The address that actually runs is printed and linked, so you can check it.

The ticker is the part that is free to fake

Anyone can deploy a contract that answers "USDT" when asked its symbol, and tens of thousands of people have. Your wallet shows the ticker, because that is what the contract told it. The address is the part nobody can fake, so this page checks the address against the real one for that ticker on that chain first, and says so plainly when they do not match. If you were sent a token address by someone, that line is the one to read.

What this cannot tell you

It reads what the contract can do, not what anyone intends to do with it, and not what happens off-chain. It also recognises functions by name: a token that implements a blacklist under a name nobody uses will not be flagged, which is why "nothing found" is written on this page as "none of the ones we looked for" rather than as a clean bill of health. Read it as evidence, not as a verdict.

Questions

Does a token having these powers mean it is a scam?
No. The largest stablecoins in the world hold most of them, and they are used to comply with court orders and to reverse thefts. The point is that you should know they exist before you hold a large balance, because they are exactly the difference between a token and cash in your pocket.
Do I need to connect a wallet?
No, and there is nothing here to connect one to. A contract address is public, and reading its code needs nothing but the address. The page never asks for a key, a seed phrase or a signature.
It says the contract can be replaced. How worried should I be?
It means whatever the code does today is not a promise about tomorrow: whoever holds the upgrade key can change every rule of the token without moving it. Most large tokens are built this way on purpose, so it is a fact to know rather than an alarm - but it belongs in the same thought as how much you keep in it.
Why does it say the reading is incomplete?
Because the address delegates to another contract and that contract could not be fetched, so only the outer shell was read. A shell holds almost no functions, so a short list from one would look reassuring and mean nothing. Try again, or read it on a different chain endpoint.