{"openapi":"3.1.0","info":{"title":"token-verdict","version":"0.1.0","description":"Rug-risk verdict for a Base ERC20 address: 0-100 score, A-F grade, one-line summary, graded checks (ERC20, honeypot selectors, liquidity, market) plus a separate ungraded adminPowers profile (proxy, owner, mint, blacklist, pause), each with raw evidence. No LLM.","x-guidance":"Token Verdict screens a Base (8453) ERC20 by contract address. `token_verdict` returns a 0-100 rug-risk score and A-F grade from ERC20 shape, honeypot-style fee/limit selectors, DEX liquidity, pair age and 24h market data. Admin powers (proxy, owner, mint, blacklist, pause) are reported separately with evidence and never graded. Known issuers (USDC, EURC, cbBTC, WETH) are labeled. Unknown never counts against the token. Deterministic, no LLM. Tools: `token_verdict`.","contact":{"email":"jeff@fosterinstruments.com"}},"servers":[{"url":"https://token-verdict.x402supply.com"}],"paths":{"/mcp":{"post":{"operationId":"token-verdict_call","summary":"Call token-verdict via MCP tools/call","tags":["token-verdict"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","id","method","params"],"properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number"]},"method":{"const":"tools/call"},"params":{"type":"object","required":["name","arguments"],"properties":{"name":{"const":"token_verdict"},"arguments":{"type":"object","properties":{"address":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"Base (chain 8453) ERC20 contract address, 0x plus 40 hex characters"}},"required":["address"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","description":"JSON-RPC 2.0 response envelope. `result.content[0].text` is a JSON-encoded string matching the schema in `x-mcp-result-schema`.","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number"]},"result":{"type":"object","properties":{"content":{"type":"array","items":{"type":"object","properties":{"type":{"const":"text"},"text":{"type":"string"}}}}}}},"x-mcp-result-schema":{"type":"object","required":["address","chainId","riskScore","grade","summary","coverage","checks","asOf","sources","adminPowers","issuer"],"properties":{"address":{"type":"string"},"chainId":{"type":"integer"},"summary":{"type":"string"},"checks":{"type":"array","items":{"type":"object","required":["id","name","status","detail","evidence","axis"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["pass","caution","fail","unknown"]},"detail":{"type":"string"},"evidence":{"type":"object"},"axis":{"type":"string","enum":["rugRisk","adminPowers"]}}}},"asOf":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"riskScore":{"type":["integer","null"]},"grade":{"type":["string","null"]},"coverage":{"type":"number"},"adminPowers":{"type":"object","required":["level","powers","note"],"properties":{"level":{"type":"string","enum":["none","moderate","high"]},"powers":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}}},"issuer":{"type":["object","null"],"properties":{"name":{"type":"string"},"symbol":{"type":"string"},"verifiedBy":{"type":"string"}}}}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array"}}}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/tools/token_verdict":{"post":{"operationId":"token-verdict_token_verdict_http","summary":"Rug-risk verdict for a Base ERC20 address: 0-100 score, A-F grade, one-line summary, graded checks (ERC20, honeypot selectors, liquidity, market) plus a separate ungraded adminPowers profile (proxy, owner, mint, blacklist, pause), each with raw evidence. No LLM.","tags":["token-verdict"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[0-9a-fA-F]{40}$","description":"Base (chain 8453) ERC20 contract address, 0x plus 40 hex characters"}},"required":["address"],"additionalProperties":false},"example":{"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}}},"responses":{"200":{"description":"Tool result (plain JSON, not MCP-wrapped)","content":{"application/json":{"schema":{"type":"object","required":["address","chainId","riskScore","grade","summary","coverage","checks","asOf","sources","adminPowers","issuer"],"properties":{"address":{"type":"string"},"chainId":{"type":"integer"},"summary":{"type":"string"},"checks":{"type":"array","items":{"type":"object","required":["id","name","status","detail","evidence","axis"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["pass","caution","fail","unknown"]},"detail":{"type":"string"},"evidence":{"type":"object"},"axis":{"type":"string","enum":["rugRisk","adminPowers"]}}}},"asOf":{"type":"string"},"sources":{"type":"array","items":{"type":"string"}},"riskScore":{"type":["integer","null"]},"grade":{"type":["string","null"]},"coverage":{"type":"number"},"adminPowers":{"type":"object","required":["level","powers","note"],"properties":{"level":{"type":"string","enum":["none","moderate","high"]},"powers":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}}},"issuer":{"type":["object","null"],"properties":{"name":{"type":"string"},"symbol":{"type":"string"},"verifiedBy":{"type":"string"}}}}},"example":{"address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","chainId":8453,"riskScore":0,"grade":"A","summary":"USDC (0x8335...2913) on Base: rug-risk grade A, 0/100. No rug-risk flags raised. Admin powers (not graded): high, upgradeable proxy, owner not renounced, mint, blacklist, pause. Issuer: Circle.","coverage":1,"checks":[{"id":"erc20","name":"ERC20 contract","status":"pass","detail":"USD Coin (USDC), 6 decimals, supply 4405234499.055562.","evidence":{"codeBytes":1852,"name":"USD Coin","symbol":"USDC","decimals":6,"totalSupply":"4405234499055562","totalSupplyFormatted":"4405234499.055562","issuer":"Circle"},"axis":"rugRisk"},{"id":"proxy","name":"Proxy / upgradeable","status":"caution","detail":"Upgradeable OpenZeppelin legacy (zos) proxy, implementation 0x2ce6311ddae708829bc0784c967b7d77d19fd779, admin 0x4fc7850364958d97b4d3f5a08f79db2493f8ca44. Logic can be swapped.","evidence":{"slotStandard":"OpenZeppelin legacy (zos)","implementation":"0x2ce6311ddae708829bc0784c967b7d77d19fd779","admin":"0x4fc7850364958d97b4d3f5a08f79db2493f8ca44","adminSlotRead":true,"upgradeable":true},"axis":"adminPowers"},{"id":"owner","name":"Owner privileges","status":"caution","detail":"Ownership not renounced, externally owned account (EOA) owner 0x3abd6f64a422225e61e435bae41db12096106df7.","evidence":{"owner":"0x3abd6f64a422225e61e435bae41db12096106df7","renounced":false,"ownerIsContract":false},"axis":"adminPowers"},{"id":"bytecode","name":"Admin functions in bytecode","status":"caution","detail":"Selectors found for: mint, blacklist/blocklist, pause.","evidence":{"scanned":[{"label":"token","address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","bytes":1852},{"label":"implementation","address":"0x2ce6311ddae708829bc0784c967b7d77d19fd779","bytes":23464}],"groupsFound":["mint","blacklist","pause"],"matches":{"mint":["mint(address,uint256)"],"blacklist":["blacklist(address)","isBlacklisted(address)"],"pause":["pause()","unpause()","paused()"]},"note":"Selector presence shows a function exists in the code, not who can call it or that it is abused."},"axis":"adminPowers"},{"id":"honeypot","name":"Honeypot-style signals","status":"pass","detail":"No fee/tax setter or max-tx/wallet limit selectors found.","evidence":{"scanned":[{"label":"token","address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","bytes":1852},{"label":"implementation","address":"0x2ce6311ddae708829bc0784c967b7d77d19fd779","bytes":23464}],"groupsFound":[],"matches":{},"note":"Selector presence shows a function exists in the code, not who can call it or that it is abused."},"axis":"rugRisk"},{"id":"liquidity","name":"DEX liquidity","status":"pass","detail":"$54,013,307 across 30 pair(s), top DEX aerodrome, oldest pair 1130.3 days old.","evidence":{"totalLiquidityUsd":54013306.92,"pairCount":30,"topDex":"aerodrome","topPairAddress":"0x6cDcb1C4A4D1C3C6d054b27AC5B77e89eAFb971d","topPairLiquidityUsd":43851825.6,"oldestPairCreatedAt":"2023-09-05T20:12:19.000Z","oldestPairAgeDays":1130.3},"axis":"rugRisk"},{"id":"market","name":"24h market","status":"pass","detail":"24h volume $193,436,586, 24h price change not reported.","evidence":{"volume24hUsd":193436586.41,"priceUsd":0.9998,"priceChange24hPct":null,"priceSourcePair":"0x98c7A2338336d2d354663246F64676009c7bDa97","priceChangeAvailable":false},"axis":"rugRisk"}],"adminPowers":{"level":"high","powers":["upgradeable proxy","owner not renounced","mint","blacklist","pause"],"note":"Informational centralization profile. Not counted in riskScore or grade. Regulated issuers and many legitimate tokens keep these powers."},"issuer":{"name":"Circle","symbol":"USDC","verifiedBy":"address listed in known-issuer table and on-chain symbol() matches"},"asOf":"2026-10-10T03:08:27.543Z","sources":["https://mainnet.base.org","https://api.dexscreener.com/latest/dex/tokens/0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"402":{"description":"Payment Required","content":{"application/json":{"schema":{"type":"object","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"accepts":{"type":"array"}}}}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}}}}