# Token Verdict — Base ERC20 Rug Risk Scorer

> Token Verdict — Base ERC20 Rug Risk Scorer is a paid API for AI agents from token-verdict.x402supply.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-30).

Returns a 0-100 rug-risk score, A-F grade, one-line summary, graded on-chain checks (ERC20 validity, honeypot selectors, liquidity, market data), and an ungraded admin-powers profile (proxy, owner, mint, blacklist, pause) for any Base chain ERC20 contract address.

## Facts

- Endpoint: POST https://token-verdict.x402supply.com/tools/token_verdict?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/token-verdict-base-erc20-rug-risk-scorer-a7952408
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_X0XWzbRCFFu8Oh_OgUey0

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability token-verdict-base-erc20-rug-risk-scorer-a7952408 -d '<json body>'
```

Example prompt: Can you run a rug-risk check on the Base ERC20 token at 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed — give me the score, grade, and flag any dangerous admin powers like mint or blacklist?

## When to prefer this

Choose this endpoint when you need a fast, deterministic (no LLM), on-chain rug-risk assessment for a Base chain ERC20 contract. It is ideal for pre-trade safety gates, automated trading bots filtering token whitelists, investor due diligence workflows, or any agent that needs both a quantified risk score and a detailed admin-powers audit in a single call. Prefer this over generic contract scanners when you specifically need Base chain coverage with honeypot selector detection and structured admin power profiling at $0.01/call.

## Known failure modes

- Invalid address format (not 0x + 40 hex chars) returns validation error
- Address is not a deployed contract on Base chain 8453 — returns error or empty result
- Contract is not an ERC20 token — ERC20 check fails with low score
- RPC or on-chain data unavailability causes timeout or partial results
- Newly deployed contract with no liquidity or market data may result in incomplete graded checks
- Payment failure (insufficient USDC balance) prevents API access

## How this service works

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.

## Output

A structured JSON response containing: a numeric rug-risk score (0-100, higher = safer or riskier depending on convention), an A-F letter grade, a human-readable one-line summary, a set of graded checks covering ERC20 standard compliance, honeypot selector detection, liquidity depth, and market data signals — each with raw on-chain evidence — plus a separate ungraded adminPowers profile detailing whether the contract uses a proxy pattern, has an active owner, exposes mint/burn functions, includes a blacklist mechanism, or has a pause function.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "address": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{40}$",
   "maxLength": 42,
   "minLength": 42,
   "description": "Base (chain 8453) ERC20 contract address, 0x plus 40 hex characters"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "asOf": "2026-10-10T03:08:27.543Z",
  "grade": "A",
  "checks": [
   {
    "id": "erc20",
    "axis": "rugRisk",
    "name": "ERC20 contract",
    "detail": "USD Coin (USDC), 6 decimals, supply 4405234499.055562.",
    "status": "pass",
    "evidence": {
     "name": "USD Coin",
     "issuer": "Circle",
     "symbol": "USDC",
     "decimals": 6,
     "codeBytes": 1852,
     "totalSupply": "4405234499055562",
     "totalSupplyFormatted": "4405234499.055562"
    }
   },
   {
    "id": "proxy",
    "axis": "adminPowers",
    "name": "Proxy / upgradeable",
    "detail": "Upgradeable OpenZeppelin legacy (zos) proxy, implementation 0x2ce6311ddae708829bc0784c967b7d77d19fd779, admin 0x4fc7850364958d97b4d3f5a08f79db2493f8ca44. Logic can be swapped.",
    "status": "caution",
    "evidence": {
     "admin": "0x4fc7850364958d97b4d3f5a08f79db2493f8ca44",
     "upgradeable": true,
     "slotStandard": "OpenZeppelin legacy (zos)",
     "adminSlotRead": true,
     "implementation": "0x2ce6311ddae708829bc0784c967b7d77d19fd779"
    }
   },
   {
    "id": "owner",
    "axis": "adminPowers",
    "name": "Owner privileges",
    "detail": "Ownership not renounced, externally owned account (EOA) owner 0x3abd6f64a422225e61e435bae41db12096106df7.",
    "status": "caution",
    "evidence": {
     "owner": "0x3abd6f64a422225e61e435bae41db12096106df7",
     "renounced": false,
     "ownerIsContract": false
    }
   },
   {
    "id": "bytecode",
    "axis": "adminPowers",
    "name": "Admin functions in bytecode",
    "detail": "Selectors found for: mint, blacklist/blocklist, pause.",
    "status": "caution",
    "evidence": {
     "note": "Selector presence shows a function exists in the code, not who can call it or that it is abused.",
     "matches": {
      "mint": [
       "mint(address,uint256)"
      ],
      "pause": [
       "pause()",
       "unpause()",
       "paused()"
      ],
      "blacklist": [
       "blacklist(address)",
       "isBlacklisted(address)"
      ]
     },
     "scanned": [
      {
       "bytes": 1852,
       "label": "token",
       "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"
      },
      {
       "bytes": 23464,
       "label": "implementation",
       "address": "0x2ce6311ddae708829bc0784c967b7d77d19fd779"
      }
     ],
     "groupsFound": [
      "mint",
      "blacklist",
      "pause"
     ]
    }
   },
   {
    "id": "honeypot",
    "axis": "rugRisk",
    "name": "Honeypot-style signals",
    "d
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/token-verdict-base-erc20-rug-risk-scorer-a7952408/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from token-verdict.x402supply.com](https://www.zero.xyz/host/token-verdict.x402supply.com/llms.txt)
