How the dog sniffs.
Every number comes from on-chain data and public APIs. The score is a fixed formula — this page is generated from the exact code that scores your token. The AI only words the reply; it never sees bios or websites and never writes a number.
- Any CRITICAL flag → at least HIGH (50)
- Impostor or live mint/freeze authority → EXTREME (75)
- Under 60 % data → PARTIAL DATA, never a guess
- 01Find the coin
CA, links, bio, website, pinned post, our reverse index.
- 02Collect
13 sources in parallel, each with its own timeout.
- 03Freeze
One immutable snapshot with a SHA-256 hash.
- 04Score
A fixed, published formula. Same input, same score.
- 05Reply
Card, bot reply and report — all from that snapshot.
Always the right coin
Tag the bot under any post — it works out which token the post is about, in this order, and stops at the first exact hit.
- 1CA in the post
A contract address — or a pump.fun, DexScreener, Birdeye, GMGN, Axiom, Photon or Solscan link — in the post that tagged us.
- 2Parent or quoted post
Same search in the post you replied to or quoted.
- 3The author's token
Cached verified link → bio → website → pinned post → our reverse index of token socials → DexScreener search → latest posts.
- 4$TICKER
Solana only, real liquidity. One clear match is used; otherwise the bot asks “A or B?”.
- 5Not found
We say so and ask for the CA. We never guess a coin.
Token metadata, DexScreener socials, the website and the X bio must point at each other.
- Official
Two independent sources agree — e.g. token metadata links the X account and the website shows the same CA.
- Unverified link
Only the account claims the CA. The token doesn't point back.
- Conflict
Website or bio lists a different CA than the token. Possible impostor.
A nose for every trick
Each source has its own timeout. A source that fails lowers completeness — and the signals that need it are skipped, never guessed.
Authorities, supply, Token-2022 extensions
Name, image, socials, update authority
Creator, create tx, bonding curve, graduation
Price, market cap, liquidity, volume, main pool
Paid profile, ads, community takeover
Top 20 owners — pools, burn, locks, CEX excluded
Dev balance, sells, transfers to other wallets
Every token the creator launched and how it ended
Bundles in the creation slot, snipers right after
Who funded the top holders — shared funders link wallets
Streamflow locks and the unlock schedule
Account age, handle changes, domain age, CA on site
Name, ticker and logo vs. verified tokens
Every token's socials, so a post without a CA still finds its coin
Re-measures every check at +1 h, +24 h and +7 d
One snapshot. One score.
All data is normalised into one immutable snapshot with a SHA-256 hash. The card, the bot reply and the report are rendered from that same object — the numbers can't disagree. Asking again within a few minutes returns the same snapshot.
We never say “safe”. The best possible verdict is LOW RISK. Below 60 % data completeness the level is PARTIAL DATA.
- Any CRITICAL red flag → at least HIGH (50+).
- IMPOSTOR · MINT_AUTHORITY_ACTIVE · FREEZE_AUTHORITY_ACTIVE → EXTREME (75+).
Every point, explained
Generated from the scoring config. Change a rule and the version number changes with it.
Red flags
Points added to the risk score.| Signal | Condition | Severity | Points |
|---|---|---|---|
| MINT_AUTHORITY_ACTIVEMint authority is not revoked — more supply can be printed. | Mint authority is not revoked — more supply can be printed. | critical | +30 |
| FREEZE_AUTHORITY_ACTIVEFreeze authority is not revoked — holders' tokens can be frozen. | Freeze authority is not revoked — holders' tokens can be frozen. | critical | +30 |
| TOKEN2022_DANGEROUS_EXTToken-2022 with a permanent delegate, a transfer hook or a non-zero transfer fee. | Token-2022 with a permanent delegate, a transfer hook or a non-zero transfer fee. | critical | +25 |
| IMPOSTORName, symbol or logo copies an older verified token with a different mint. | Name, symbol or logo copies an older verified token with a different mint. | critical | +45 |
| SOCIAL_CA_MISMATCHThe project's website or X bio lists a different contract address than this token. | The project's website or X bio lists a different contract address than this token. | critical | +30 |
| DEV_SERIAL_RUGGERDev created ≥ 3 earlier tokens and ≥ 70 % of them are rugged or dead. | Dev created ≥ 3 earlier tokens and ≥ 70 % of them are rugged or dead. | major | +20 |
| DEV_MASS_DEPLOYERDev created ≥ 10 tokens in the last 30 days. | Dev created ≥ 10 tokens in the last 30 days. | major | +12 |
| DEV_HOLDS_HIGHDev wallet holds an unlocked share of supply above 10 % (or above 5 %). | Dev wallet holds an unlocked share of supply above 10 % (or above 5 %). | major | +15 (> 10 %) · +8 (> 5 %) |
| DEV_HIDDEN_WALLETSDev sent ≥ 3 % of supply to other wallets (possible hidden dev wallets). | Dev sent ≥ 3 % of supply to other wallets (possible hidden dev wallets). | major | +12 |
| TOP10_CONCENTRATEDTop 10 holders (excluding pools, burn, locks, CEX) own more than 40 % (or 25 %). | Top 10 holders (excluding pools, burn, locks, CEX) own more than 40 % (or 25 %). | major | +15 (> 40 %) · +8 (> 25 %) |
| LINKED_CLUSTERSHolder groups funded by the same wallet (≥ 2 wallets each) together own more than 15 % (or 8 %). | Holder groups funded by the same wallet (≥ 2 wallets each) together own more than 15 % (or 8 %). | major | +15 (> 15 %) · +8 (> 8 %) |
| BUNDLED_LAUNCHWallets buying in the creation slot (bundle) took more than 10 % (or 3 %) of supply. | Wallets buying in the creation slot (bundle) took more than 10 % (or 3 %) of supply. | major | +15 (> 10 %) · +7 (> 3 %) |
| SNIPERS_HOLDINGSnipers (bought in the first launch slots) still hold more than 10 %. | Snipers (bought in the first launch slots) still hold more than 10 %. | major | +10 |
| LOW_LIQUIDITYGraduated to a DEX but liquidity is below $5,000. | Graduated to a DEX but liquidity is below $5,000. | major | +10 |
| LP_UNLOCKEDMain pool is a classic AMM with LP tokens and the LP is neither burned nor locked. | Main pool is a classic AMM with LP tokens and the LP is neither burned nor locked. | critical | +20 |
| X_ACCOUNT_NEWThe project's X account is younger than 7 days. | The project's X account is younger than 7 days. | minor | +8 |
| X_HANDLE_CHANGEDWe have seen this X account under a different username before. | We have seen this X account under a different username before. | minor | +8 |
| DOMAIN_NEWWebsite domain was registered less than 7 days ago. | Website domain was registered less than 7 days ago. | minor | +5 |
| WEBSITE_DOWNThe project website does not respond. | The project website does not respond. | minor | +5 |
| NO_SOCIALSNo X, website or Telegram anywhere in metadata or DexScreener. | No X, website or Telegram anywhere in metadata or DexScreener. | minor | +5 |
| UNLOCK_SOONMore than 5 % of supply unlocks within 72 hours. | More than 5 % of supply unlocks within 72 hours. | minor | +8 |
| UNVERIFIED_BINDINGAn X account claims this CA but the token does not link back to it. | An X account claims this CA but the token does not link back to it. | minor | +5 |
Green flags
Points subtracted — the score never goes below 0.| Signal | Condition | Severity | Points |
|---|---|---|---|
| AUTHORITIES_REVOKEDBoth mint and freeze authority are revoked. | Both mint and freeze authority are revoked. | minor | −5 |
| DEV_LOCKEDAt least 80 % of the dev allocation is locked on Streamflow. | At least 80 % of the dev allocation is locked on Streamflow. | major | −10 |
| DEV_CLEAN_HISTORYDev has ≥ 2 earlier tokens, none rugged, at least one success. | Dev has ≥ 2 earlier tokens, none rugged, at least one success. | major | −10 |
| DEV_SOLD_NOTHINGDev has not sold anything, has not moved tokens to other wallets, and holds less than 5 %. | Dev has not sold anything, has not moved tokens to other wallets, and holds less than 5 %. | minor | −3 |
| DEX_PAIDApproved DexScreener token profile (paid). | Approved DexScreener token profile (paid). | minor | −2 |
| VERIFIED_SOCIALSX account ↔ token link verified by ≥ 2 independent sources and the website is live. | X account ↔ token link verified by ≥ 2 independent sources and the website is live. | minor | −5 |
| HEALTHY_DISTRIBUTIONTop 10 hold less than 15 % and there are more than 500 holders. | Top 10 hold less than 15 % and there are more than 500 holders. | major | −8 |
| LIQUIDITY_OKLiquidity above $50,000. | Liquidity above $50,000. | minor | −5 |
Info
Context only, no points.| Signal | Condition | Severity | Points |
|---|---|---|---|
| DEX_ORDERSDexScreener paid orders (profile, ads, trending) — shown for context. | DexScreener paid orders (profile, ads, trending) — shown for context. | info | 0 |
| CTOCommunity takeover registered on DexScreener. | Community takeover registered on DexScreener. | info | 0 |
| AGE_UNDER_1HToken is less than 1 hour old — everything can change fast. | Token is less than 1 hour old — everything can change fast. | info | 0 |
| BONDING_CURVEStill on the pump.fun bonding curve. | Still on the pump.fun bonding curve. | info | 0 |
| GRADUATEDGraduated from the pump.fun bonding curve to a DEX pool. | Graduated from the pump.fun bonding curve to a DEX pool. | info | 0 |
| LAUNCHED_ONLaunched on a known launchpad (PUBLIC_LAUNCHPADS). | Launched on a known launchpad (PUBLIC_LAUNCHPADS). | info | 0 |
Not financial advice
SNIFFER is an automated research tool. Data can be delayed, incomplete or wrong, and a LOW RISK token can still go to zero. Projects can answer flags with evidence on their report page; responses are reviewed but never change the score — only data does.