# Signalbound B20 Radar

> Signalbound B20 Radar is a paid API for AI agents from api.signalbound.art, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Scans Base blockchain for recent B20 token deployments and returns live market metrics, risk assessments, and token metadata, gated by Signalbound NFT ownership.

## Facts

- Endpoint: POST https://api.signalbound.art/b20-radar
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/signalbound-b20-radar-16b90d13
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8cYT8BvVOcCLZEXt-woej

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 signalbound-b20-radar-16b90d13 -d '<json body>'
```

Example prompt: Using my Signalbound token ID 42, scan the last 7 days of Base blocks for new B20 token deployments and show me up to 25 results with their prices, liquidity, and risk flags.

## When to prefer this

Choose this endpoint when you need NFT-holder-gated, real-time intelligence about B20 token deployments specifically on Base — combining on-chain discovery (recent deployments) with live Dexscreener market data and risk scoring in a single call. Prefer it over generic blockchain explorers or DEX APIs when you want integrated risk flags (thin liquidity, extreme moves) and reveal-aware metadata without stitching multiple data sources together.

## Known failure modes

- Caller does not own the required Signalbound token ID — access denied / 401
- Invalid or non-existent B20 token address returns empty tokens array
- blocksBack exceeds the ~14-day maximum — clamped or rejected
- Dexscreener data unavailable for a token — market fields returned as null
- Network or RPC issues scanning Base blocks — partial or empty results
- tokenId not provided — request rejected as missing required field

## How this service works

Signalbound API for agent metadata, reveal-aware token reads, ERC-8004 registration files, and holder-gated tool routes.

## Output

Returns a JSON object containing a list of up to N B20 tokens found within the scanned block range, each with on-chain metadata (name, symbol, address, decimals, total supply, variant, currency, initialized status) and live Dexscreener market metrics (price, 24h volume, liquidity, 24h price change, transaction count, market cap, trading URL). Each token also includes a risk object with a level (low/elevated/high), vol-to-liquidity ratio, and specific flags (e.g. thin liquidity, extreme 24h move). The envelope includes scan bounds (fromBlock, toBlock, blocksBack), total detected count, whether results were truncated, a human-readable brief summary, and a generatedAt timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "tokenId"
 ],
 "properties": {
  "limit": {
   "type": "integer",
   "description": "Maximum tokens to return (default 25)."
  },
  "address": {
   "type": "string",
   "description": "Optional B20 token address (0xB20f...) to inspect. Omit to scan for recent deployments instead."
  },
  "tokenId": {
   "type": "integer",
   "description": "Signalbound token ID used for ERC-7496 clearance-gated access. The authenticated caller must own it."
  },
  "blocksBack": {
   "type": "integer",
   "description": "How many Base blocks to scan back for new deployments (default 302400, roughly 7 days; max roughly 14 days)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "generatedAt",
  "count",
  "tokens",
  "brief"
 ],
 "properties": {
  "brief": {
   "type": "string"
  },
  "count": {
   "type": "integer"
  },
  "caller": {
   "type": "string"
  },
  "tokens": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string"
     },
     "market": {
      "type": "object",
      "properties": {
       "url": {
        "type": [
         "string",
         "null"
        ]
       },
       "risk": {
        "type": "object",
        "properties": {
         "flags": {
          "type": "array",
          "items": {
           "type": "string"
          }
         },
         "level": {
          "type": "string"
         },
         "volToLiq": {
          "type": [
           "number",
           "null"
          ]
         }
        },
        "description": "level (low|elevated|high), 24h volume ÷ liquidity, and flags such as thin liquidity or an extreme 24h move."
       },
       "txns24": {
        "type": [
         "number",
         "null"
        ]
       },
       "priceUsd": {
        "type": [
         "number",
         "null"
        ]
       },
       "marketCap": {
        "type": [
         "number",
         "null"
        ]
       },
       "volumeH24": {
        "type": [
         "number",
         "null"
        ]
       },
       "liquidityUsd": {
        "type": [
         "number",
         "null"
        ]
       },
       "priceChangeH24": {
        "type": [
         "number",
         "null"
        ]
       }
      },
      "description": "Live market metrics (Dexscreener): price, 24h volume, liquidity, 24h change, transactions, market cap, a link, plus a market-depth risk assessment."
     },
     "symbol": {
      "type": "string"
     },
     "address": {
      "type": "string"
     },
     "variant": {
      "type": "string"
     },
     "currency": {
      "type": "string"
     },
     "decimals": {
      "type": "number"
     },
     "initialized": {
      "type": "boolean"
     },
     "totalSupply": {
      "type": "string"
     }
    }
   }
  },
  "toBlock": {
   "type": "string"
  },
  "fromBlock": {
   "type": "string"
  },
  "truncated": {
   "type": "boolean"
  },
  "blocksBack": {
   "type": "integer"
  },
  "generatedAt": {
   "type": "string"
  },
  "detectedCount": {
   "type": "integer"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/signalbound-b20-radar-16b90d13/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.signalbound.art](https://www.zero.xyz/host/api.signalbound.art/llms.txt)
