Methodology

This page is the method behind the token checker and the exchange comparison. It is the page to read when a score looks wrong, or when you want to know what a row can and cannot mean.

What a check actually does

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 public data. It is still sent to the sources below, so those services see which contract you asked about.

The same address checked again within ten minutes can return the cached report. That is a load limit, not a new investigation. Each report prints the time it was assembled, in UTC, and the state of every source: answered, not checked / no data, unavailable, or not used on this chain.

GoPlus

GoPlus Token Security is asked for a contract record. On Ethereum-style chains the fields we read include honeypot, whether a sell of the full balance can be blocked, whether an owner can rewrite balances, hidden owner, self-destruct, airdrop-scam pattern, buy and sell tax, mint, proxy, reclaimable ownership, blacklist, pause, tax that can be changed later, verified source, holder list, and whether listed liquidity-pool holders are marked locked or burned. On Solana the fields are narrower: mint authority, freeze authority, close authority, non-transferable, and a balance authority.

Limits. GoPlus is a heuristic over a contract, not a court and not a guarantee that the next transaction will succeed. A proxy flag is common on legitimate upgradeable tokens, including major stablecoins. A missing record is not a clean result. If GoPlus returns no row, every question that depends on it says not checked / no data. If GoPlus is down, that outage is not itself a scam signal. Holder percentages ignore the zero address and addresses tagged as burn or lock, but a tag can be wrong, and a treasury wallet that is not tagged will look like concentration.

honeypot.is

On Ethereum-style chains the checker also asks honeypot.is to simulate a buy and a sell. A failed sell simulation, a very high tax, a proxy flag, and missing verified source are read from that response. honeypot.is does not cover Solana, and the report says so instead of inventing a result.

Limits. A simulation can fail because the pool is exotic, the router path is odd, or the service is rate-limiting the request. An HTTP 401 or 403 is recorded as a source outage, not as a honeypot. No record at all is not checked / no data. A successful simulation that is not a honeypot does not mean the token is safe tomorrow. The contract can be upgraded, the tax can be changed if that function exists, or the liquidity can leave after the simulation.

DexScreener

DexScreener is asked for indexed pools on the chain you picked. If pools come back, the report sums the USD liquidity those pools report and reads the oldest pool-creation time it was given. Liquidity under $1,000 is treated as a strong warning because one trade can move the price. Liquidity under $10,000 is a warning. A pool younger than two days is a warning. Age by itself is not a scam. New pools are simply where rushed rugs are common.

Limits. No indexed pool means DexScreener does not have a market for that address on that chain. The liquidity row says so. It does not mean every other row is clear. Token age is left as not checked / no data when there is no pool timestamp. DexScreener does not see every venue. A token can trade somewhere they do not index. Reported liquidity can be borrowed or pulled in the same block a buyer arrives. A large pool is not honesty.

RugCheck

RugCheck is asked only for Solana mints. The report reads a rugged flag, freeze and mint authorities, the risk list RugCheck returns, their normalised score, and top holders. Their own scale treats a normalised score above 40 as danger and 21 to 40 as a warning. Those bands are theirs. We surface them. We do not treat the number as a probability.

Limits. A 404 or an empty body is not checked / no data, not a pass. RugCheck does not run on Ethereum-style chains, and the source line says the report is not used there. A high RugCheck score on a canonical stablecoin is often the freeze authority the issuer published. That case is handled by the known-asset list below, not by ignoring RugCheck in general.

How a row is worded

The report has ten questions: 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 we never heard from agreed.

If no source covered the question, the row says not checked / no data. Silence used to be easy to misread as a pass, especially on a brand-new address with no DexScreener pool, where nine rows could say clear because the security APIs had simply never seen the contract. That reading is wrong. An empty reply is an empty reply.

A flag row quotes the source’s finding. Taxes are shown as a percent. A tax of 50% or more is treated as critical because a sell can be economically impossible. A tax of 10% or more is a serious warning. A smaller tax is noted and does not, by itself, raise the band.

How the band is chosen

The word on the report is one of five states. Critical means at least one strong scam signal: a honeypot or blocked sell, an owner who can rewrite balances, a hidden owner, a self-destruct, an airdrop-scam pattern, a freeze authority, a non-transferable mint, a balance authority, a RugCheck rugged flag, a RugCheck danger band, one unlocked holder with at least 80% of supply, or indexed liquidity under $1,000. 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 nothing above was raised. Unknown means no source returned a usable record. Unknown is not a low score. The summary says that in the report.

The number under the word is only a mark on a four-band bar: 12 for Low, 37 for Medium, 62 for High, and 88 for Critical. Unknown has no number. The number is not a probability, not a percent chance of a rug, and not a price target. Two different critical tokens can both show 88. The number does not rank them against each other. The homepage example is a fixed sample at 62, labelled as a sample, so the figure does not move between page loads.

Known assets and false positives

A short allowlist matches chain plus contract address for widely used stablecoins and wrapped assets: USDT, USDC, DAI, WETH, WBTC, and the canonical wrapped or bridged forms of those assets on the chains this checker supports, including Binance-Peg versions, native and bridged USDC where both exist, WBNB, BTCB, and wrapped SOL. 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. That set is a freeze, a blacklist, a pause, a proxy, a mint authority, a 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 a regulated stablecoin. It does not say do not buy. The same idea applies to wrapped assets for mint authority, a proxy, and holder concentration: a custodian mints the wrapper. That is the product. Freeze and blacklist stay live warnings on a wrapped asset, because WETH is not supposed to have a freeze function.

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 for these contracts and is exactly the case worth reading twice, including the chance that a source glitched. Use the report-a-wrong-score link. It opens an email with the chain and the address filled in.

Other false positives remain. A new but real token will look young. A governance token with an owner will look privileged. A thin pool on a long-tail pair will look illiquid because it is illiquid. An upgradeable contract will look like a proxy because it is one. The checker’s job is to show the property, not to bless the project. Read the row. Do not stop at the band.

What the checker cannot see

It cannot see a website that will ask you to sign a drainer tomorrow. It cannot see that the domain in your browser is a lookalike. It cannot see an exchange balance, a seed phrase (and it refuses one), or the person who sent you the link. 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, fake team pages, and social accounts are outside the sources.

How exchange comparisons are built

Exchange profiles copy a published fee from a public page and store the date that page was read. The current verified fee rows were read on 18 October 2026. The sort uses one number: the entry-tier taker fee, in basis points, when the venue publishes a maker/taker schedule. Uphold has no such table, so the high end of its published BTC/ETH spread is used instead. Robinhood’s default US route has no commission. The number in the sort is the exchange-routing entry taker fee from Robinhood’s US fee PDF, not that default route. Affiliate URLs are not an input to the sort, the “best for” line, or the score.

A fact that was not copied from a source is not treated as verified. Wallet profiles keep a row only when it was copied from the vendor’s site or a published repository, with the date that page was read. A price or a fee that was not on the page is omitted. Pair pages are generated for every same-kind combination so a direct URL still works. Only ten high-intent pairs are indexable. The rest are noindex. A profile whose fact rows are mostly unverified is noindex as well.

Updates, corrections, and affiliates

Checker output changes when you run a check, subject to the ten-minute cache. It is not a monthly editorial rating. Fee tables change when the venue changes them. This site does not promise a fixed refresh hour. If a schedule on a profile disagrees with the venue’s own page, the venue’s page wins, and the profile should be corrected.

Corrections go to hello@perchance.gg or through the contact page. A useful correction names the chain and address, or the fee page, and says which row is wrong. There is no support desk and no promised reply time. Factual corrections with a source are the messages that get a page updated. The same address is the “report a wrong score” link on a live report.

Some outbound links are affiliate links, marked with an Affiliate tag. NordVPN and NordPass on the security page are affiliate links through Nord Security. If you use one, this site may earn a commission. That payment does not change a score, a band, a fee sort, or a “best for” line. The checker does not read affiliate configuration at all. The editorial policy and the affiliate disclosure are the other two pages that cover money. The short score guide is a reader’s version of the band rules on this page.