Token checker

How the token score works

What Low, Medium, High, Critical, and Not enough data mean, which public sources fill a row, and which ordinary contracts trip a false do-not-buy.

The word is the result

The report leads with one of five words: Low, Medium, High, Critical, or Not enough data. The number under the word is only a mark on a bar, so a glance has a place to land. Low sits at 12, Medium at 37, High at 62, and Critical at 88. Not enough data has no number. Two Critical tokens both show 88. The number does not rank them. It is not a probability, not a percent chance of a rug, and not a price target.

Critical means at least one strong signal: a honeypot or a blocked sell, an owner who can rewrite balances, a hidden owner, a self-destruct, an airdrop-scam pattern, a freeze, a non-transferable mint, a balance authority, a RugCheck rugged flag, a RugCheck danger band, one unlocked holder with at least 80 percent of supply, or indexed liquidity under $1,000. The summary on a Critical report says not to buy until you can explain every flag. High means three or more warnings and no critical signal. Medium means at least one warning. Low means at least one source returned a usable record and none of those lines fired. Not enough data means no source returned a usable record. Silence is not a low score.

Who is asked

You paste a public contract address and pick a chain: Ethereum, BNB Chain, Base, Arbitrum, Polygon, or Solana. The server rejects a seed phrase, a private key, and anything with spaces. It does not ask you to connect a wallet. The address is still sent to the sources, so those services see which contract you asked about. A repeat within ten minutes can return the cached report. That is a load limit, not a new investigation. The page prints the time the report was assembled, in UTC, and the state of every source.

GoPlus is asked for a token-security record. On Ethereum-style chains that includes honeypot flags, taxes, mint, proxy, blacklist, pause, holder list, and whether listed liquidity holders are marked locked or burned. On Solana the GoPlus fields are narrower: mint, freeze, close, non-transferable, and a balance authority. honeypot.is is asked only on Ethereum-style chains, to simulate a buy and a sell. It is not asked on Solana, and the report says so. DexScreener is asked for indexed pools. RugCheck is asked only for Solana mints. A source that does not apply is marked unused. A source that fails is marked down. An HTTP 401 or 403 from honeypot.is is an outage, not a honeypot.

Clear, empty, and down

Each row is one question: honeypot and sell tax, mint authority, owner privileges, proxy and upgrades, blacklist, liquidity and lock, holder concentration, contract verification, token age, and known scam flags. A row is clear only when at least one source returned a record that covers that question and none of those records raised a flag. The detail says no flag in the sources that answered. Clear means those sources were quiet. It does not mean the question was proved safe, and it does not mean a source that never answered agreed.

If no source covered the question, the row says not checked / no data. An empty HTTP-ok body is that state. It used to be easy to misread silence as a pass, especially on a brand-new address with no pool, where several rows could look quiet because the security APIs had never seen the contract. That reading is wrong. An empty reply is an empty reply. A source that is down is also not a pass, and it is not, by itself, a scam signal. Read the source line before you read the band.

Illustrations, not live checks

These are applications of the rules. They are not reports this site generated, and they are not tokens you should look up from the story. Suppose the sources answer and the only flag is a sell tax of 12 percent. A tax of 10 percent or more is a warning. One warning and no critical signal is Medium, and the mark is 37. Suppose instead the sell tax is 60 percent. A tax of 50 percent or more is critical, because a sell can be economically impossible. The word is Critical and the mark is 88, even if every other row is quiet.

Suppose three separate warnings arrive and nothing critical: a pool under two days old, liquidity between $1,000 and $10,000, and a mint authority. Three warnings make High, mark 62. Two of those warnings would have been Medium. The third is what changes the word. Suppose GoPlus, honeypot.is, DexScreener, and RugCheck all return nothing usable. The word is Not enough data, and there is no mark. That outcome is not Low. The homepage example is a fixed sample at 62, labelled as a sample, so the figure does not move between page loads. It is not one of these illustrations, and it is not a live token.

Taxes, holders, and liquidity

Taxes are shown as a percent. Under 10 percent is noted and does not, by itself, raise the band. From 10 percent up to 50 percent is a warning. Fifty percent or more is critical. Holder concentration ignores the zero address and addresses a source tags as burn or lock. A tag can be wrong, and a treasury that is not tagged will look like concentration. One unlocked holder with at least 80 percent is critical. At least 50 percent is a warning. Those cuts are this site's, chosen so a single majority wallet is visible. They are not a law of markets.

DexScreener sums the USD liquidity of the pools it indexes and reads the oldest pool-creation time it was given. Under $1,000 is critical, because one trade can move the price. Under $10,000 is a warning. Younger than two days is a warning. Age by itself is not a scam. No indexed pool means the liquidity row says so, and token age stays not checked, because there is no timestamp. DexScreener does not see every venue. Reported liquidity can be borrowed and pulled in the same block a buyer arrives. A large pool is not honesty.

Known assets and the false do-not-buy

A short allowlist matches chain plus contract address for widely used stablecoins and wrapped assets, including USDT, USDC, DAI, WETH, and WBTC on the chains this checker supports. The match is the address. The ticker is not enough. A token named USDT at any other address is scored like any other token. On a matched stablecoin, flags that are normal for a centrally issued dollar token are rewritten as context: freeze, blacklist, pause, proxy, mint, close authority, a RugCheck band driven by those authorities, and a large holder share that is usually the issuer's treasury. The row says, in substance, that the issuer can freeze, and that this is normal for that product. It does not say do not buy.

Wrapped assets get the same treatment for mint authority, a proxy, and holder concentration, because a custodian mints the wrapper. Freeze and blacklist stay live warnings on a wrapped asset. WETH is not supposed to freeze. Context does not pardon a honeypot, a function that rewrites balances, a hidden owner, a self-destruct, an airdrop-scam flag, or a RugCheck rugged flag. If one of those is present on a known address, the band can still be Critical. That would be unusual and is the case to read twice, including the chance that a source glitched.

False positives that are still true descriptions

A new but real token looks young. A governance token with an owner looks privileged. A thin pool looks illiquid because it is illiquid. An upgradeable contract looks like a proxy because it is one. A simulation can fail because the pool is exotic or the router path is odd, which is why a honeypot.is outage is not recorded as a honeypot, and why a failed simulation still deserves a human reading of the row rather than a reflex. The checker's job is to show the property. It does not bless the project, and it does not hide the property to keep a famous ticker comfortable, except for the context rewrite on the allowlist above.

Other misses run the other way. The checker cannot see a website that will ask you to sign tomorrow. It cannot see that the domain in the bar is a lookalike. It cannot see an exchange balance, and it refuses a seed phrase. It cannot promise that liquidity locked today stays locked after the lock expires. It cannot detect a rug that has not been written into the contract yet. Off-chain promises and social accounts are outside the sources. A Low score is the sources being quiet. It is not a guarantee.

If the score looks wrong

Read the row that produced the word before you argue with the word. If the row is context on a canonical stablecoin, the band was not supposed to scream. If the row is a real freeze on a mint that only borrowed the ticker, the scream is the point. If a source is marked down or empty, the band was computed without that source, and the page says so. Checking again inside ten minutes repeats the cache. Checking the same address on the wrong chain asks a different question.

A wrong score can be reported from the mailto on a live report. It opens an email with the chain and the address filled in. A useful note says which row is wrong and what you saw on a block explorer. There is no promised reply time. The methodology page is the longer version of these rules, including how exchange fees are sorted, which is a separate system and does not touch the token band. Affiliate configuration is not an input to either one.

Questions

Why do two very different tokens share 88? Because 88 means Critical, and Critical is a bucket. The rows underneath are the difference. Read them. The mark will not.

Is a Medium score a pass? It is one or two warnings. The summary calls it a reason to slow down. It is not a clean result, and it is not a do-not-buy by itself.

Can I paste a pair address or a website? Paste the token contract. A pool address and a homepage are different objects. The checker does not score a URL.

Who writes the score, a person or the rules? The rules in code, from the source responses, with the context rewrite for allowlisted addresses. Nobody adjusts a band because a project asked. A correction is a change to a row that was wrong, with a source.

Related