# Token Verdict Base

> Token Verdict Base is a paid API for AI agents from ari001.tailb4ac3a.ts.net, paid per call via x402, $0.018/call, status unknown (last checked 2026-10-19).

Returns an AI-written grade and roast for a token contract on Base, evaluating on-chain structural facts like proxy slots and owner status.

## Facts

- Endpoint: GET https://ari001.tailb4ac3a.ts.net/v1/ventures/token_verdict_api/token_verdict_base?utm_source=zero.xyz
- Price: $0.018/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-19
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/token-verdict-base-fba12df6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_sREjPvwecRa6ALlIXZmX1

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-fba12df6
```

Example prompt: Can you get a token verdict on the Base contract 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 — I want to see its grade like BASED or COOKED, plus the roast and what proxy slots and owner it has?

## When to prefer this

Choose this endpoint when you need a fast, opinionated structural verdict on a Base ERC-20 token contract — specifically to detect proxy upgradeability and live ownership without relying on holder counts, liquidity, or price data. It is not a safety or scam detector but is ideal for quickly flagging contracts that are proxies with live owners (COOKED) or that don't conform to ERC-20 shape (RADIOACTIVE). Prefer this over generic RPC calls when you want a human-readable grade and roast alongside structured on-chain facts in a single call.

## Known failure modes

- Address is not a contract (returns RADIOACTIVE grade, is_contract: false)
- Address is a contract but not ERC-20 shaped — missing decimals or totalSupply (returns RADIOACTIVE)
- Invalid address format — must match ^0x[a-fA-F0-9]{40}$ (returns 400 or error)
- RPC or network error reading Base chain state (ok: false with error message)
- Payment failure via x402 protocol ($0.018 USDC required per call)

## How this service works

AI-written token verdict on one token contract on Base: grade (BASED/MID/COOKED/RADIOACTIVE), a one-liner and a… Returns: an AI-written token verdict on one token contract: grade (BASED/MID/COOKED/RADIOACTIVE, a stated rule over the contract's own state), a one-liner and a roast, and the facts read: code size, name, symbol, decimals, supply, owner(), proxy slots. It does not read holders, liquidity or price and makes no safety or legitimacy call. Query: token (token contract, 0x + 40 hex).

## Output

Returns a JSON object containing: a grade enum (BASED, MID, COOKED, or RADIOACTIVE), a short one-liner summary (max 60 chars), an AI-written roast (max 220 chars), a grade_rule string explaining the grading logic applied, and a facts object containing code_bytes, name, symbol, decimals, total_supply, owner address, owner_renounced flag, proxy_slot, proxy_implementation, proxy_slots_checked, and erc20_shaped flag. Also includes chain, cached, and service metadata fields.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "token"
     ],
     "properties": {
      "token": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$",
       "description": "token contract, 0x + 40 hex"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "ok",
      "service"
     ],
     "properties": {
      "ok": {
       "type": "boolean"
      },
      "chain": {
       "type": "string"
      },
      "error": {
       "type": "string",
       "description": "present when ok is false"
      },
      "cached": {
       "type": "boolean"
      },
      "method": {
       "const": "verdict"
      },
      "result": {
       "type": "object",
       "required": [
        "token",
        "grade",
        "one_liner",
        "roast",
        "written_by",
        "facts"
       ],
       "properties": {
        "facts": {
         "type": "object",
         "description": "the contract state read: is_contract, code_bytes, name, symbol, decimals, total_supply, owner, owner_renounced, proxy_slot, proxy_implementation, proxy_slots_checked, erc20_shaped"
        },
        "grade": {
         "enum": [
          "BASED",
          "MID",
          "COOKED",
          "RADIOACTIVE"
         ],
         "description": "RADIOACTIVE: not a contract, or not ERC-20 shaped (no decimals/totalSupply). COOKED: a proxy implementation slot is set (EIP-1967, its beacon, or ZeppelinOS) AND owner() names a live owner. MID: either one. BASED: neither found."
        },
        "roast": {
         "type": "string",
         "maxLength": 220
        },
        "token": {
         "type": "string",
         "pattern": "^0x[0-9a-fA-F]{40}$"
        },
        "one_liner": {
         "type": "string",
         "maxLength": 60
        },
        "disclaimer": {
         "type": "string"
        },
        "grade_rule": {
         "type": "stri
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/token-verdict-base-fba12df6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ari001.tailb4ac3a.ts.net](https://www.zero.xyz/host/ari001.tailb4ac3a.ts.net/llms.txt)
