x402-tokenverdict

TokenVerdict: paid x402 Base token safety check (honeypot / sell simulation with buy and sell tax, owner powers, proxy, liquidity and LP burn, holders, verified source, age; SAFE / CAUTION / DANGER) + MCP server + shareable cards

Browse source · x402-tokenverdict.tar.gz · x402-tokenverdict.bundle
commit 1de0ec0 · 1de0ec0583398f254e876739b9196e21b323c013
Clone: git clone https://agentgate-source.pages.dev/x402-tokenverdict/x402-tokenverdict.git (branch main, commit 1de0ec0583398f254e876739b9196e21b323c013) or curl -O https://agentgate-source.pages.dev/x402-tokenverdict/x402-tokenverdict.bundle && git clone x402-tokenverdict.bundle x402-tokenverdict
Home: this repo is hosted here (it was never on GitHub).

TokenVerdict: Base token safety check (honeypot, taxes, owner powers) for AI agents (x402 + MCP)

Safety check for a Base ERC-20 token before an agent or app interacts with it. SAFE is not a guarantee and not financial advice. TokenVerdict checks one ERC-20 token on Base mainnet and returns SAFE / CAUTION / DANGER with a 0-100 score, a confidence level, and the reasons behind it:

Built for agents, wallets, Telegram/Discord bots and apps that need a safety check on a token they found five minutes ago before interacting with it. SAFE is not a guarantee and not financial advice.

Honest limits

This is automated, informational risk screening, not financial advice, not an audit, no guarantee. A token that passes today can be changed tomorrow by whoever controls it (upgrades, tax changes, blacklists, liquidity pulls). Specifically:

MCP (Claude Desktop, Cursor, Windsurf, any MCP client)

Remote (free preview tier):

{ "mcpServers": { "tokenverdict": { "type": "http", "url": "https://api.youraitools.co/tokenverdict/mcp" } } }

Local stdio (this package):

{ "mcpServers": { "tokenverdict": { "command": "npx", "args": ["-y", "@agentgate-builder/tokenverdict"] } } }

Tool: check_token(token). Free by default (verdict, score, flag counts). For the full quick report on every call ($0.015), set TOKENVERDICT_X402_PRIVATE_KEY to a Base wallet key holding a little USDC, and add the optional peers:

{ "mcpServers": { "tokenverdict": { "command": "npx", "args": ["-y", "-p", "@agentgate-builder/tokenverdict", "-p", "@x402/fetch", "-p", "@x402/evm", "-p", "viem", "tokenverdict"], "env": { "TOKENVERDICT_X402_PRIVATE_KEY": "0x..." } } } }

The stdio server only pays the TokenVerdict pay-to address, on Base, at most $0.02 per call.

Docker: docker build -t tokenverdict-mcp . && docker run -i --rm tokenverdict-mcp

HTTP

# free preview
curl -s "https://api.youraitools.co/tokenverdict/v1/preview?token=0x532f27101965dd16442E59d40670FaF5eBB142E4"
# paid (any x402 client): GET ?token= or POST {"token": "0x..."}
curl -i "https://api.youraitools.co/tokenverdict/v1/quick?token=0x532f27101965dd16442E59d40670FaF5eBB142E4"   # 402 + PAYMENT-REQUIRED
import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
import { ExactEvmScheme } from '@x402/evm';
import { privateKeyToAccount } from 'viem/accounts';
const pay = wrapFetchWithPaymentFromConfig(fetch, { schemes: [{ network: 'eip155:8453', client: new ExactEvmScheme(privateKeyToAccount(process.env.BUYER_KEY)) }] });
const r = await (await pay('https://api.youraitools.co/tokenverdict/v1/quick?token=0x...')).json();
if (r.verdict !== 'SAFE') console.log(r.verdict, r.score, r.reasons.map((x) => x.text));

Library (free preview):

import { preview } from '@agentgate-builder/tokenverdict';
console.log(await preview('0x532f27101965dd16442e59d40670faf5ebb142e4'));

Response (quick, abridged)

{ "token": "0x826f…adeea", "symbol": "AYB", "verdict": "DANGER", "score": 0, "confidence": "high", "degraded": false,
  "reasons": [{ "severity": "danger", "code": "honeypot", "text": "HONEYPOT SIGNAL: a simulated buy worked but selling back failed (reverted: balance)." }, "…"],
  "checks": { "sellability": { "simulated": true, "buy_ok": true, "sell_ok": false, "buy_tax_pct": 0 }, "owner": {}, "powers": {}, "proxy": {}, "contract": {}, "liquidity": {}, "holders": {}, "age": {} },
  "limits": ["…"], "disclaimer": "Automated, informational risk signals … Not financial advice, not an audit, no guarantee …" }

Self-hosting

Cloudflare Workers (free plan works): npm install && npx wrangler deploy. Set PAY_TO, prices and FACILITATOR (payai default, or cdp with CDP_API_KEY_ID / CDP_API_KEY_SECRET secrets) in wrangler.toml. The simulator contract is in contracts/TVSim.sol (npm run build:sim regenerates src/simcode.js with solc 0.8.26). Tests: npm test (offline, replaying recorded Base mainnet reports).

MIT. Part of the AgentGate tools by YourAITools: https://youraitools.co/built-by-us


agentgate-source: code mirror on Cloudflare Pages. All repos