# Token Risk Check (Watchlist Batch)

> Token Risk Check (Watchlist Batch) is a paid API for AI agents from onchaincheck.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-29).

Batch-checks up to 5 tokens across Base, Ethereum, Arbitrum, Optimism, Polygon, or Solana for risk scores, price, liquidity, and delta alerts in a single call optimized for scheduled polling.

## Facts

- Endpoint: GET https://onchaincheck.dev/watchlist?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/token-risk-check-watchlist-batch-822f81ea
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_77F-FcmvVvFqvQkkPIde4

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-risk-check-watchlist-batch-822f81ea
```

Example prompt: Check the risk scores and prices for these five tokens I'm watching — eth:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, solana:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v — and flag anything that changed since my last fingerprints.

## When to prefer this

Choose this endpoint when you need to monitor or risk-check multiple tokens (up to 5) in a single low-cost call, especially for scheduled polling of a watchlist. The fingerprint/since delta mechanism makes it ideal for agents that need to detect changes since the last poll without reprocessing unchanged data. Prefer this over single-token endpoints when managing a portfolio or watchlist across multiple chains simultaneously.

## Known failure modes

- Invalid or malformed chain:address pair returns an error for that token slot
- More than 5 tokens in the tokens parameter results in a validation error
- Mismatched number of fingerprints vs tokens in the since parameter causes a mismatch error
- Unsupported chain identifier returns an error indicating valid chains
- Address not found on the specified chain returns a not-found result for that token
- Payment failure (x402) if the $0.01 USDC payment is not provided or rejected

## How this service works

Re-check up to 5 tokens you hold or watch in one call, on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana: each token's 0-100 risk score, level, reason codes, price, liquidity and a fingerprint. Send the fingerprints back as since to get what changed (new risks, owner or authority changes, liquidity or price moves of 10%+) and a short list of alerts. One price for the whole list, made for polling positions on a schedule. Rules-based, not advice.

## Output

Returns an array of per-token objects each containing: a 0-100 risk score, a risk level label, an array of reason codes explaining the risk, current price, liquidity, and a fingerprint string. Also returns a short list of alerts for any tokens where the fingerprint (since) indicates something changed — new risk codes, ownership or authority changes, or price/liquidity moves of 10% or more.

## 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"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "tokens"
     ],
     "properties": {
      "since": {
       "type": "string",
       "pattern": "^[A-Za-z0-9_,-]*$",
       "maxLength": 5100,
       "description": "Fingerprints from an earlier call, comma-separated in the same order as tokens (empty for a new token)"
      },
      "tokens": {
       "type": "string",
       "pattern": "^[A-Za-z0-9:,]{3,400}$",
       "description": "Up to 5 chain:address pairs, comma-separated (chains: base, eth, arbitrum, optimism, polygon, solana); a bare address defaults to solana for base58, otherwise base"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/token-risk-check-watchlist-batch-822f81ea/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from onchaincheck.dev](https://www.zero.xyz/host/onchaincheck.dev/llms.txt)
