Skip to content
SNIFFER
Methodology · scoring v1.0.2

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.

No magic
The whole formula
score = clamp(10 + Σred − Σgreen, 0, 100)
  • Any CRITICAL flag → at least HIGH (50)
  • Impostor or live mint/freeze authority → EXTREME (75)
  • Under 60 % data → PARTIAL DATA, never a guess
  1. 01
    Find the coin

    CA, links, bio, website, pinned post, our reverse index.

  2. 02
    Collect

    13 sources in parallel, each with its own timeout.

  3. 03
    Freeze

    One immutable snapshot with a SHA-256 hash.

  4. 04
    Score

    A fixed, published formula. Same input, same score.

  5. 05
    Reply

    Card, bot reply and report — all from that snapshot.

Step 1

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.

  1. 1
    CA in the post

    A contract address — or a pump.fun, DexScreener, Birdeye, GMGN, Axiom, Photon or Solscan link — in the post that tagged us.

  2. 2
    Parent or quoted post

    Same search in the post you replied to or quoted.

  3. 3
    The author's token

    Cached verified link → bio → website → pinned post → our reverse index of token socials → DexScreener search → latest posts.

  4. 4
    $TICKER

    Solana only, real liquidity. One clear match is used; otherwise the bot asks “A or B?”.

  5. 5
    Not found

    We say so and ask for the CA. We never guess a coin.

Then we check the link both ways

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.

Step 2

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.

MintHelius RPC

Authorities, supply, Token-2022 extensions

MetadataHelius DAS

Name, image, socials, update authority

pump.funon-chain

Creator, create tx, bonding curve, graduation

MarketDexScreener · Birdeye

Price, market cap, liquidity, volume, main pool

DEX paidDexScreener

Paid profile, ads, community takeover

HoldersHelius DAS

Top 20 owners — pools, burn, locks, CEX excluded

DevHelius

Dev balance, sells, transfers to other wallets

Dev historyHelius · pump.fun

Every token the creator launched and how it ended

Launchon-chain

Bundles in the creation slot, snipers right after

ClustersHelius

Who funded the top holders — shared funders link wallets

LocksStreamflow

Streamflow locks and the unlock schedule

X & websiteX · RDAP

Account age, handle changes, domain age, CA on site

Impostorour index

Name, ticker and logo vs. verified tokens

Reverse indexours

Every token's socials, so a post without a CA still finds its coin

Outcome trackerours

Re-measures every check at +1 h, +24 h and +7 d

Step 3 & 4

One snapshot. One score.

Freeze, then render everything from it

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.

Image card
Bot reply
Web report
same sha256 everywhere · scoring v1.0.2
Levels

We never say “safe”. The best possible verdict is LOW RISK. Below 60 % data completeness the level is PARTIAL DATA.

LOW
0–24
MODERATE
25–49
HIGH
50–74
EXTREME
75–100
  • Any CRITICAL red flag → at least HIGH (50+).
  • IMPOSTOR · MINT_AUTHORITY_ACTIVE · FREEZE_AUTHORITY_ACTIVE → EXTREME (75+).
Every signal · 36 rules

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.
SignalSeverityPoints
MINT_AUTHORITY_ACTIVEMint authority is not revoked — more supply can be printed.critical+30
FREEZE_AUTHORITY_ACTIVEFreeze 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.critical+25
IMPOSTORName, 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.critical+30
DEV_SERIAL_RUGGERDev 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.major+12
DEV_HOLDS_HIGHDev 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).major+12
TOP10_CONCENTRATEDTop 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 %).major+15 (> 15 %) · +8 (> 8 %)
BUNDLED_LAUNCHWallets 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 %.major+10
LOW_LIQUIDITYGraduated 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.critical+20
X_ACCOUNT_NEWThe project's X account is younger than 7 days.minor+8
X_HANDLE_CHANGEDWe have seen this X account under a different username before.minor+8
DOMAIN_NEWWebsite domain was registered less than 7 days ago.minor+5
WEBSITE_DOWNThe project website does not respond.minor+5
NO_SOCIALSNo X, website or Telegram anywhere in metadata or DexScreener.minor+5
UNLOCK_SOONMore 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.minor+5

Green flags

Points subtracted — the score never goes below 0.
SignalSeverityPoints
AUTHORITIES_REVOKEDBoth mint and freeze authority are revoked.minor−5
DEV_LOCKEDAt 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.major−10
DEV_SOLD_NOTHINGDev has not sold anything, has not moved tokens to other wallets, and holds less than 5 %.minor−3
DEX_PAIDApproved DexScreener token profile (paid).minor−2
VERIFIED_SOCIALSX 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.major−8
LIQUIDITY_OKLiquidity above $50,000.minor−5

Info

Context only, no points.
SignalSeverityPoints
DEX_ORDERSDexScreener paid orders (profile, ads, trending) — shown for context.info0
CTOCommunity takeover registered on DexScreener.info0
AGE_UNDER_1HToken is less than 1 hour old — everything can change fast.info0
BONDING_CURVEStill on the pump.fun bonding curve.info0
GRADUATEDGraduated from the pump.fun bonding curve to a DEX pool.info0
LAUNCHED_ONLaunched on a known launchpad (PUBLIC_LAUNCHPADS).info0

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.