Token contract safety scanner -- honeypot, tax, proxy, blacklist, ownership. Rug-pull protection for agents.
Two tools with identical names and schemas (token_check_safety and token_check_safety_post) suggest incomplete implementation or duplication. Descriptions are verbose (500+ chars) and include anti-patterns (example output values that LLMs may reuse literally). Parameter descriptions are minimal. No output schema documented. No error handling guidance. No tool annotations. Naming lacks clarity on POST vs GET distinction.
Use this when you need to check if a token is safe before buying or interacting with it. Returns a comprehensive safety report in JSON. 1. isHoneypot: whether the token traps buyers (cannot sell) 2. ownershipRenounced: whether the contract owner has renounced control 3. isProxy: whether the contract is upgradeable (proxy risk) 4. buyTax: percentage tax on buy transactions 5. sellTax: percentage tax on sell transactions 6. maxTxPercent: maximum transaction size as percent of supply 7. liquidityLocked: whether liquidity is locked 8. hasBlacklist: whether contract has a blacklist function 9. holderCount: total number of token holders 10. riskScore: overall risk score (0=safe, 100=dangerous) Example output: {"isHoneypot":false,"ownershipRenounced":true,"isProxy":false,"buyTax":0,"sellTax":0,"maxTxPercent":100,"liquidityLocked":true,"hasBlacklist":false,"holderCount":15420,"riskScore":12} Use this BEFORE buying any new or unknown token. Essential for rug-pull protection and due diligence. Do NOT use for token prices -- use dex_get_swap_quote instead. Do NOT use for wallet balance -- use wallet_get_portfolio instead. Do NOT use for holder distribution -- use token_get_holder_analysis instead.
Use this when you need to check if a token is safe before buying or interacting with it. Returns a comprehensive safety report in JSON. 1. isHoneypot: whether the token traps buyers (cannot sell) 2. ownershipRenounced: whether the contract owner has renounced control 3. isProxy: whether the contract is upgradeable (proxy risk) 4. buyTax: percentage tax on buy transactions 5. sellTax: percentage tax on sell transactions 6. maxTxPercent: maximum transaction size as percent of supply 7. liquidityLocked: whether liquidity is locked 8. hasBlacklist: whether contract has a blacklist function 9. holderCount: total number of token holders 10. riskScore: overall risk score (0=safe, 100=dangerous) Example output: {"isHoneypot":false,"ownershipRenounced":true,"isProxy":false,"buyTax":0,"sellTax":0,"maxTxPercent":100,"liquidityLocked":true,"hasBlacklist":false,"holderCount":15420,"riskScore":12} Use this BEFORE buying any new or unknown token. Essential for rug-pull protection and due diligence. Do NOT use for token prices -- use dex_get_swap_quote instead. Do NOT use for wallet balance -- use wallet_get_portfolio instead. Do NOT use for holder distribution -- use token_get_holder_analysis instead.
Duplicate tools with identical schemas. token_check_safety and token_check_safety_post both accept the same parameters and return the same output. This forces LLMs to reason about which to call, violating single-responsibility principle.
Descriptions include example output values (JSON object with specific numbers). LLMs frequently reuse example values literally in subsequent calls, causing hallucinated data to propagate.
No output schema documented. LLMs cannot plan downstream operations or extract fields without knowing the response structure. The description lists 10 fields but no formal schema is provided.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2025-06-18+ | v2 |
Parameter 'chain' has minimal description ('Chain to check on: ethereum or base'). No enum constraint visible in schema. LLMs may pass invalid chain names.
No error handling guidance. If an invalid token address is passed, the description does not explain what error to expect or how to recover.