A trading bot that buys a fresh pump.fun token has a few seconds to decide. Our rug-check gives it one number from 0 to 100 and a list of reasons. Here is exactly how that number is built.
Short version: we read the token's mint account and its largest holders straight from Solana, add fixed points per red flag (danger 40, warning 15, info 0), and cap the total at 100. No hidden weights.
1. What we read on-chain
- The mint account: supply, mint authority, freeze authority.
- The largest token accounts (
getTokenLargestAccounts). - The owner of each of the top 12 accounts, and which program owns it. That tells us whether it is a person, a pool or a lock.
2. Mint and freeze authority
| Finding | Severity | Why it matters |
|---|---|---|
MINT_AUTHORITY |
danger (+40) | More tokens can be created; holders get diluted |
FREEZE_AUTHORITY |
danger (+40) | Your account can be frozen: you can buy but never sell |
MINT_REVOKED |
info (0) | Fixed supply, standard on pump.fun |
3. Holder concentration, without the noise
On a fresh pump.fun token the biggest account is almost always the bonding curve, often 90%+ of supply. A naive top-10 check flags every new token. So we label accounts first:
-
pool: owned by the pump.fun bonding curve or PumpSwap. Not counted. -
mayhem_agent: pump.fun's Mayhem Mode agent (unsold tokens burn after 24h). Not counted, and removed from supply. -
excluded: accounts you pass in. Not counted. -
locked: held by a lock/vesting program like Streamflow. Still counted, because locked tokens unlock later.
Then: largest holder ≥20% is danger, ≥10% warn. Top 10 ≥50% is danger, ≥30% warn.
4. From findings to one number
Sum of weights, capped at 100. Below 15 is low, 15 to 39 medium, 40+ high. Additive on purpose: you can reproduce the score from the findings, or ignore it and build your own rule from the stable finding codes.
5. Name check
Some scams copy a famous name or use "official / guaranteed" wording. Jev by TypeSafe judges the name, symbol and description; at 0.8+ we add NAME_IMPERSONATION, NAME_CLONE or SCAM_WORDING. Raw scores are in the response.
6. What the score does not tell you
One person spread over many small wallets, a dev selling a minute after your check, thin liquidity, fake socials. A low score means "no red flags found", not "safe".
Try it
MCP (50 free calls/day, no key):
claude mcp add --transport http agentfuel https://api.agentfuel.eu/mcp
HTTP: GET https://api.agentfuel.eu/v1/rugcheck/<mint>, 0.002 USDC per call via x402.
Full version with examples: https://www.agentfuel.eu/blog/rug-score.html
Top comments (0)