FieldValueSlugrug-checkerVersion0.1.3AuthorAnvil AICategoryDeFi / SecurityChainSolanaRisk LevelRead-only (no wallet interactions)
Activate this skill when the user's message matches any of these patterns:
PatternExampleRug check / rug pull check"Do a rug check on BONK"Token safety"Is this token safe?"Scam check"Is this a scam?"Token risk analysis"What's the risk on this token?"Honeypot check"Is this a honeypot?"Token audit"Audit this token"LP locked"Is the LP locked on this?"Mint authority"Can they mint more tokens?"Token lookup + Solana address"What is DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263?"
Note: If the user asks "Should I buy [token]?", redirect: "I can't advise on whether to buy — but I can check the on-chain risk factors for you." Then run the analysis.
Address detection: If the user provides a base58 string of 32-44 characters, treat it as a Solana token address. If they provide a name/symbol, resolve it first.
Parse the user's message for either:
[1-9A-HJ-NP-Za-km-z]{32,44})If unclear, ask: "Which token would you like me to check? Give me the contract address or token name."
bash
bash scripts/detect-token.sh <address_or_name>
Output varies by input type:
If given a Solana address: JSON with found: true/false, address, name, symbol, market data.
If given a name/symbol: JSON with ambiguous: true and a candidates array containing up to 5 matches with address, name, symbol, liquidity, and age. If detect-token returns candidates, you MUST present them to the user and ask which one they mean. NEVER auto-pick a candidate. Checking the wrong token is worse than not checking at all.
Example candidate response:
json
{
"query": "bonk",
"ambiguous": true,
"candidates": [
{"address": "DezXAZ8z...", "name": "Bonk", "symbol": "BONK", "liquidity_usd": 5000000, "age": "400d"},
{"address": "56Lc5...", "name": "BonkFork", "symbol": "BONK", "liquidity_usd": 12000, "age": "3d"}
]
}
Present candidates as a numbered list:
I found multiple tokens matching "bonk". Which one did you mean?
- BONK (Bonk) —
DezXAZ8z...— $5.0M liquidity, 400d old- BONK (BonkFork) —
56Lc5...— $12K liquidity, 3d old
Then re-run with the confirmed mint address.
If found: false (and not ambiguous), tell the user the token couldn't be found and ask them to double-check the address.
bash
bash scripts/analyze-risk.sh <token_address>
Output: JSON with 10 risk checks, composite score (0-100), tier (SAFE/CAUTION/WARNING/DANGER/CRITICAL).
bash
bash scripts/analyze-risk.sh <address> | bash scripts/format-report.sh
Or pipe the saved JSON:
bash
bash scripts/format-report.sh < analysis.json
Output: Formatted Markdown report card with visual risk bars, market overview, and links.
Display the formatted report. Add brief commentary based on the tier:
TierCommentary Template🟢 SAFE (0-15)"Low on-chain risk indicators detected. Note: this only covers on-chain factors — team, legal, and market risks are not assessed."🟡 CAUTION (16-35)"Some yellow flags here. Not necessarily a scam, but proceed with caution and do your own research."🟠 WARNING (36-55)"Several risk factors detected. Be careful with this one."🔴 DANGER (56-75)"Significant red flags. This has multiple indicators of a potential rug pull."⛔ CRITICAL (76-100)"Extreme risk. This token has critical safety issues. Strongly avoid."
Always end with the disclaimer (it's built into format-report.sh). Never use language that implies a buy/sell recommendation (e.g., "looks solid", "good investment", "safe bet").
When running in a Discord channel:
Show Full Risk BreakdownShow Data SourcesRe-Run CheckErrorCauseAgent ResponseExit code 2 from detect-tokenToken not found"I couldn't find that token. Please check the address — it should be a Solana SPL token mint address (32-44 base58 characters)."Exit code 1 from detect-tokenAPI failure"I'm having trouble reaching the token APIs right now. Try again in a minute."composite_score: -1All data sources failed"All three data sources are down right now. I can't safely analyze this token without data."rugcheck unavailableRugcheck API downAnalysis proceeds with DexScreener + Solana RPC (degraded but functional). Note this in your response.found: true but name "Unknown"Token exists on-chain but has no DEX listings"This token exists on Solana but doesn't appear to be listed on any DEX. It may be too new or a non-tradeable token."
SourceWhat It ProvidesRequired?Rugcheck.xyzMint/freeze authority, top holders, LP locks, risk flags, insider detection, verification statusPrimary (most checks degrade without it)DexScreenerPrice, volume, liquidity, FDV, market cap, token age, name resolutionSecondary (market context)Solana RPCOn-chain mint/freeze authority verificationTertiary (fallback verification)
#CheckWeightWhat It Detects1Mint Authority2.0Can creator mint unlimited tokens?2Freeze Authority1.5Can creator freeze holder wallets?3Holder Concentration1.5Are tokens concentrated in few wallets?4LP Lock Status2.0Can liquidity be pulled? (classic rug)5Token Age1.0How old is the token?6Liquidity Depth1.0Is there enough liquidity to trade?7Rugcheck Flags1.0Rugcheck.xyz automated risk flags8Insider Activity1.5Coordinated wallet networks detected?9Transfer Fee1.0Hidden tax on transfers?10Verification0.5Listed on Jupiter?
This skill provides informational risk signals only. The agent MUST NOT:
A low risk score means low on-chain risk indicators were detected — it does NOT mean the token is a good investment or free from risk.
This skill:
All data sources are free, public APIs. No API keys are stored or transmitted.
text
"Rug check DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
"Is BONK safe?"
"Check this token for me: 5smiafTeV4ATT6naUWTwzcsvix4VU9nQ7ReyzKiqpump"
"Is this a rug pull? [address]"
"Analyze the risk on this Solana token"
"Do a safety check on $WIF"
bash 4+curljqbc (for floating-point comparisons)api.rugcheck.xyz, api.dexscreener.com, api.mainnet-beta.solana.com