# Crypto Bot Audit + Market Data (x402 paid) (remote · labored-safari-islamic.ngrok-free.dev)

x402 pay-per-call: 146 MCP tools, no account or key. USDC on Base + Solana, $0.001-$0.01/call.

- Trust score: 33/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-24

## Components

- remote · `labored-safari-islamic.ngrok-free.dev`: 33/100 (this document), [markdown](https://verifymcp.io/servers/kaminariouji-x402-audit-agent/labored-safari-islamic.md), [page](https://verifymcp.io/servers/kaminariouji-x402-audit-agent/labored-safari-islamic)

## Channel facts

- Endpoint: `https://labored-safari-islamic.ngrok-free.dev/mcp`
- Transports: `streamable-http`
- Auth: `required (not validated)`
- Version: `1.5.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-24.

- **Endpoint Security**: 83/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - The endpoint enforces authorisation, but returns a challenge with no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http.
- **Schema Quality & AI Usability**: 0/100
  - Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Tool Safety**: 0/100
  - Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Capabilities**: 0/100
  - Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.

**Unverified: 6 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the Crypto Bot Audit + Market Data (x402 paid) MCP server?

Crypto Bot Audit + Market Data (x402 paid) is a hosted endpoint at https://labored-safari-islamic.ngrok-free.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http kaminariouji-x402-audit-agent 'https://labored-safari-islamic.ngrok-free.dev/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "kaminariouji-x402-audit-agent": {
      "url": "https://labored-safari-islamic.ngrok-free.dev/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "kaminariouji-x402-audit-agent": {
      "type": "http",
      "url": "https://labored-safari-islamic.ngrok-free.dev/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.kaminariouji-x402-audit-agent]
url = "https://labored-safari-islamic.ngrok-free.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kaminariouji-x402-audit-agent": {
      "type": "remote",
      "url": "https://labored-safari-islamic.ngrok-free.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add kaminariouji-x402-audit-agent --url 'https://labored-safari-islamic.ngrok-free.dev/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  kaminariouji-x402-audit-agent:
    url: "https://labored-safari-islamic.ngrok-free.dev/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "kaminariouji-x402-audit-agent": {
      "Transport": "http",
      "Url": "https://labored-safari-islamic.ngrok-free.dev/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add kaminariouji-x402-audit-agent -t streamable-http -u 'https://labored-safari-islamic.ngrok-free.dev/mcp'
```

### Other

```json
{
  "mcpServers": {
    "kaminariouji-x402-audit-agent": {
      "type": "http",
      "url": "https://labored-safari-islamic.ngrok-free.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-19 (score 33, +10)

- [security regression] Endpoint reachability: not serving MCP → behind authorisation
- [security regression] Authorization: unverified → fail
- [security regression] Transport: fail → unverified
- [security] Tool safety: Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- [functional] Tool coverage: Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- [functional] Schema quality: Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- [functional] Capabilities: Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.

### 2026-10-18 (score 23, −10)

- [security regression] Endpoint reachability: behind authorisation → not serving MCP
- [security regression] Transport: unverified → fail
- [security regression] Authorization: fail → unverified
- [security] Tool safety: Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- [functional] Tool coverage: Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- [functional] Capabilities: Capabilities not yet verified: we couldn't read the endpoint's capabilities.
- [functional] Schema quality: Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.

### 2026-10-17 (score 33, +10)

- [security regression] Endpoint reachability: not serving MCP → behind authorisation
- [security regression] Authorization: unverified → fail
- [security regression] Transport: fail → unverified
- [security] Tool safety: Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- [functional] Tool coverage: Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- [functional] Schema quality: Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- [functional] Capabilities: Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.

### 2026-10-16 (score 23, −10)

- [security regression] Endpoint reachability: behind authorisation → not serving MCP
- [security regression] Transport: unverified → fail
- [security regression] Authorization: fail → unverified
- [security] Tool safety: Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- [functional] Tool coverage: Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- [functional] Capabilities: Capabilities not yet verified: we couldn't read the endpoint's capabilities.
- [functional] Schema quality: Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.

### 2026-10-14 (score 33, −48)

- [security regression] Endpoint reachability: reachable → behind authorisation
- [security regression] Stability: 0.77 → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] Transport: pass → unverified
- [security regression] Authorization: partial → fail
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Schema quality: Schema blocked by authentication: the endpoint requires auth we don't have to read it.

### 2026-10-12 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 73. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-10 (score 80, +2)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 67. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-07 (score 78, +55)

- [security improvement] Authorization: unverified → partial
- [security improvement] Injection markers: unverified → pass
- [security improvement] Transport: fail → pass
- [functional improvement] Endpoint reachability: not serving MCP → reachable
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.57
- [functional improvement] MCP protocol: unverified → pass

## MCP tools (146)

### `audit_bot_code` (~77 tokens)

Audit crypto-bot source for fake-earnings bugs

Input one JS/TS source file (string). Returns findings for: testnet-as-USD, silent-zero balance, cooldown key mismatch, fake faucet endpoint, speculative earnings text. Costs $0.01 USDC per call via x402.

Input parameters:

- `code` (string, required): one JS/TS file
- `filename` (string)

### `demo_audit` (~33 tokens)

Free demo of the audit (fixed sample, no payment)

Runs the scanner on a small built-in bad-bot sample and returns the findings. Free; no x402 payment.

Output parameters:

- `demo` (boolean)
- `findings` (array)
- `signalCount` (integer)

### `x402_rail_heartbeat` (~118 tokens)

Free liveness sample of the x402 demand map (aggregates only)

Free, no payment: proves this origin's x402 rail-intelligence routes are live by returning only the headline totals of our measured 30-day demand map (hosts, resources, calls, summed payers, median calls per host). WHICH hosts are earning, per-host calls/payers/rank and the per-token risk verdict stay paid — GET /market/x402-overview, /market/x402-top-sellers, /market/x402-host-demand, /market/x402-payer-bands, /market/token-verdict.

Output parameters:

- `ageDays` (number|null)
- `asOf` (string|null)
- `calls30d` (integer)
- `demo` (boolean)
- `hosts` (integer)
- `medianCallsPerHost` (integer)
- `paid` (object)
- `payerSlots30d` (integer)
- `resources` (integer)
- `snapshot` (boolean)
- `top6HostSharePct` (number)

### `get_token_price` (~96 tokens)

Token spot price + liquidity (paid, Base or Solana)

Live DEX spot price, liquidity, FDV, market cap and 24h volume for any token by contract address — EVM (Base/etc.) or Solana mint. Highest-liquidity pair. Costs $0.001 USDC per call via x402.

Input parameters:

- `address` (string, required): Token contract address: EVM (0x…, 42 hex) or Solana base58 mint (32-44 chars)

### `search_tokens` (~82 tokens)

Search tokens by name/symbol across DEXs (paid)

Search crypto tokens by name or symbol; returns the highest-liquidity matched pairs with price, liquidity, FDV and 24h volume across chains. Costs $0.001 USDC per call via x402.

Input parameters:

- `limit` (integer)
- `query` (string, required): token name or symbol, e.g. "pepe" or "coinbase"

### `top_markets` (~71 tokens)

Top coins by market cap (paid)

Market-cap table with price, market cap, 24h volume and 1h/24h/7d change. Public aggregator snapshot, not an oracle. Costs $0.001 USDC per call via x402.

Input parameters:

- `limit` (integer)
- `vs` (string): quote currency

### `chain_tvl` (~52 tokens)

DeFi TVL ranked per chain (paid)

Value locked in USD per chain, ranked. TVL is a protocol-reported metric, not a risk measure. Costs $0.001 USDC per call via x402.

Input parameters:

- `limit` (integer)

### `stablecoin_supply` (~44 tokens)

USD-pegged stablecoin supply by asset (paid)

Circulating USD-pegged supply with peg mechanism and chain count. Costs $0.001 USDC per call via x402.

Input parameters:

- `limit` (integer)

### `trending_tokens` (~78 tokens)

Promoted DEX tokens with live quotes (paid)

Tokens currently bought into by projects for DEX exposure, enriched with price, liquidity and 24h volume. Boosts are paid promotions, not an endorsement. Costs $0.001 USDC per call via x402.

Input parameters:

- `chain` (string): chainId filter, e.g. base or solana
- `limit` (integer)

### `gas_prices` (~55 tokens)

Live gas and base fee in gwei (paid)

Gas price, base fee and block height for Base and Arbitrum from public RPC — what a transaction costs before you send it. Costs $0.001 USDC per call via x402.

Input parameters:

- `chains` (array)

### `chain_block_number` (~105 tokens)

Current block height

Latest block number for one chain straight from a public node — the cheapest possible 'is the chain alive and where is it' check. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-number?chain=base.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `blockNumber` (integer): latest block height
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_balance` (~157 tokens)

Native balance for one address

Native coin balance (wei plus a decimal string) at the latest block, with the chain's symbol so the number cannot be misread as USD. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/balance?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `balance` (string): decimal-formatted native amount
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `nativeSymbol` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `wei` (string): balance in wei

### `chain_balances` (~172 tokens)

Batch native balances

Up to 25 addresses in one paid call — the shape a portfolio or risk bot actually needs, cheaper than 25 single lookups. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/balances?chain=base&addresses=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006.

Input parameters:

- `addresses` (string, required): comma list of up to 25 addresses [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `nativeSymbol` (string)
- `note` (string|null)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_nonce` (~188 tokens)

Transaction count (nonce)

eth_getTransactionCount at any block tag — what an agent needs before it builds a transaction, and how a bot detects a stuck or reused nonce. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nonce?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&blockTag=latest.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `blockTag` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `nonce` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_code` (~161 tokens)

Is this address a contract?

eth_getCode size check: bytecode length plus whether the address is a contract at all — the two-second answer to 'did I just send funds to an EOA'. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/code?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `bytecodeSize` (integer): bytes of deployed code
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `codePrefix` (string)
- `isContract` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_block` (~138 tokens)

Block by number or tag

One block header decoded: height, time, author, gas used vs limit, base fee in gwei and transaction count. Readable numbers, not raw hex. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block?chain=base&block=latest.

Input parameters:

- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `block` (object): decoded header
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_block_txids` (~138 tokens)

Transaction hashes in a block

Every transaction hash in one block plus the count — the step between 'which block' and 'which transfers happened', without pulling full receipts. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-txids?chain=base&block=latest.

Input parameters:

- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `blockNumber` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `transactionHashes` (array)
- `truncated` (boolean)
- `ts` (string)

### `chain_tx` (~180 tokens)

Transaction by hash

eth_getTransactionByHash decoded to the fields a caller branches on: from, to, value, nonce, gas, calldata length and inclusion block. Reports found:false rather than inventing a zero. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/tx?chain=base&hash=0x55bd09129b86846556030b6036d48c75865b1f8e73ee6f7df60a22a56f3cd0d4.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `hash` (string, required): transaction hash, 0x + 64 hex [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `found` (boolean)
- `note` (string|null)
- `pending` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `transaction` (object)
- `ts` (string)

### `chain_receipt` (~172 tokens)

Receipt, gas used and confirmations

Status, gasUsed, effective gas price, contract created, log count and live confirmations for one hash — whether a transaction actually landed and what it cost. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/receipt?chain=base&hash=0x55bd09129b86846556030b6036d48c75865b1f8e73ee6f7df60a22a56f3cd0d4.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `hash` (string, required): transaction hash, 0x + 64 hex [required]

Output parameters:

- `blockNumber` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `confirmations` (integer)
- `contractAddress` (string|null)
- `costWei` (string)
- `cumulativeGasUsed` (string)
- `effectiveGasPriceGwei` (integer)
- `found` (boolean)
- `from` (string)
- `gasUsed` (string)
- `logCount` (integer)
- `logsBloomPresent` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `status` (integer): 1 = success
- `to` (string)
- `transactionHash` (string)
- `ts` (string)

### `chain_logs` (~306 tokens)

Event logs for an address or topic

eth_getLogs over a bounded window (max 1000 blocks) with an address and/or first topic — transfers and events without running an indexer. Refuses an unfiltered scan. Walks the window in chunks because a free node refuses a big one on response size, and reports any range no node would serve instead of failing a settled call. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/logs?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&topic0=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef&fromBlock=5000&toBlock=5999.

Input parameters:

- `address` (string): contract that emitted the events
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `fromBlock` (string, required): first block number to scan (inclusive) [required]
- `toBlock` (string): last block number (default: current head); range capped at 1000 blocks
- `topic0` (string): first event topic, 0x + 64 hex

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `chunks` (object)
- `count` (integer)
- `nodeCalls` (integer)
- `note` (string|null)
- `range` (object)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `truncated` (boolean)
- `ts` (string)

### `chain_call` (~216 tokens)

Read-only contract call

eth_call with your own calldata against one pinned public node: raw return data plus its decoded uint/address forms. The escape hatch for any view function we did not wrap. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/call?chain=base&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&data=0x95d89b41&blockTag=latest.

Input parameters:

- `blockTag` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `data` (string, required): hex calldata, even digits, max 4096 bytes [required]
- `to` (string, required): contract address to call [required]

Output parameters:

- `asAddress` (string|null)
- `asString` (string)
- `asUint` (string)
- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `reason` (string|null)
- `returnData` (string)
- `returnSize` (integer)
- `returnedNoData` (boolean)
- `reverted` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `to` (string)
- `ts` (string)

### `chain_storage` (~214 tokens)

Raw storage slot

eth_getStorageAt for one slot of one account — verify a contract's own bookkeeping (owner slot, mapping entry) instead of trusting a view function. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/storage?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&slot=0x0&blockTag=latest.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `blockTag` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `slot` (string, required): storage slot (hex, up to 32 bytes) [required]

Output parameters:

- `address` (string)
- `asAddress` (string)
- `asUint` (string)
- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `reason` (string|null)
- `slot` (string)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `value` (string): 32-byte word

### `chain_fee_data` (~117 tokens)

Full EIP-1559 fee quote

gasPrice, base fee, priority fee and the all-in cost of a 21000-gwei native transfer in wei and native units — what sending costs right now, on one chain. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/fee-data?chain=base.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `baseFeeGwei` (number)
- `blockNumber` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `gasPriceGwei` (number)
- `maxPriorityFeeGwei` (number)
- `nativeSymbol` (string)
- `nativeTransferCost` (object)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_gas_estimate` (~240 tokens)

Estimate gas for a call

eth_estimateGas for a transfer or contract call you describe — the exact simulation a wallet runs before signing, without needing a wallet. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/gas-estimate?chain=base&to=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&from=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&data=0x95d89b41&value=0.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `data` (string): hex calldata (default "0x")
- `from` (string): simulation caller address
- `to` (string, required): contract address to call [required]
- `value` (string): native value in wei (decimal) (default 0)

Output parameters:

- `atSenderGas` (object)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `estimable` (boolean)
- `gasEstimate` (string)
- `gasPriceGwei` (number)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `to` (string)
- `ts` (string)

### `chain_token_balance` (~197 tokens)

ERC-20 balance with decimals

balanceOf plus the token's own decimals, formatted — a human-readable USDC/token balance, not a raw 18-digit integer that needs a calculator. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/token-balance?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): holder address [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `decimals` (integer)
- `decimalsAssumed` (boolean)
- `formatted` (string)
- `note` (string|null)
- `owner` (string)
- `raw` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `token` (string)
- `ts` (string)

### `chain_token_meta` (~150 tokens)

Token name, symbol, decimals, supply

The four ERC-20 view calls a listing needs, in one paid call, each tolerant of a token that does not implement it. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/token-meta?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `decimals` (integer)
- `isContract` (boolean)
- `name` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `token` (string)
- `totalSupply` (string)
- `totalSupplyFormatted` (string)
- `ts` (string)

### `chain_allowance` (~228 tokens)

ERC-20 allowance

allowance(owner, spender) in raw and decimal form — how much a approval still lets a third party move, which is the number behind most drain headlines. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/allowance?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&spender=0x0000000000000000000000000000000000000000.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): holder address [required]
- `spender` (string, required): allowance spender address [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `decimals` (integer)
- `formatted` (string)
- `note` (string|null)
- `owner` (string)
- `raw` (string)
- `reason` (string|null)
- `source` (string)
- `spender` (string)
- `stale` (boolean|null)
- `token` (string)
- `ts` (string)
- `unlimitedApproval` (boolean)

### `chain_nft_owner` (~168 tokens)

ERC-721 owner of a token id

ownerOf(tokenId) resolved for one NFT — proof of who holds a specific id right now, from the contract itself. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-owner?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): NFT contract address [required]
- `tokenId` (string, required): token id (decimal) [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `found` (boolean)
- `note` (string|null)
- `owner` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `tokenId` (string)
- `ts` (string)

### `chain_nft_balance` (~187 tokens)

ERC-721 tokens held by an address

balanceOf(owner) on an NFT contract — how many ids one wallet holds, without indexing every transfer. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-balance?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): holder address [required]
- `token` (string, required): NFT contract address [required]

Output parameters:

- `balance` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `overflow` (boolean)
- `owner` (string)
- `raw` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `ts` (string)

### `chain_nft_meta` (~157 tokens)

NFT collection name and standards

name/symbol plus which token standards the contract actually claims (ERC-165, ERC-721, ERC-721Metadata, ERC-1155) via supportsInterface. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-meta?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `name` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `supports` (object)
- `symbol` (string)
- `token` (string)
- `ts` (string)

### `chain_contract_check` (~158 tokens)

Contract fingerprint before you interact

Bytecode size plus every supported-interface answer in one call — the pre-flight that tells an agent whether a 'token' address is a contract at all and which standards it claims. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/contract-check?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): contract to fingerprint [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `bytecodeSize` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `codePrefix` (string)
- `isContract` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `supports` (object)
- `ts` (string)

### `chain_wallet_state` (~175 tokens)

Wallet snapshot across chains

Balance, nonce and contract/EOA flag for one address on up to 4 chains in a single paid call — the one-shot 'what does this wallet actually hold' check. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/wallet-state?chains=base,ethereum&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chains` (string): comma list, up to 4: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche (default ["base"])

Output parameters:

- `address` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `chains` (array)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_heads` (~126 tokens)

Live head across chains

Latest block, its age in seconds, base fee and block fullness for up to 4 chains in one paid call — the fastest answer to 'which of these chains is actually caught up right now'. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/heads?chains=base,ethereum.

Input parameters:

- `chains` (string): comma list, up to 4: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche (default ["base"])

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `chains` (array)
- `note` (string|null)
- `observedAt` (string)
- `reason` (string|null)
- `rows` (array): one entry per chain
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_block_stats` (~139 tokens)

Measured block cadence

Seconds per block and blocks per hour, taken from the timestamps of two real headers at the edges of a window — one stalled block shows as a wider span instead of being smoothed away. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-stats?chain=base&blocks=20.

Input parameters:

- `blocks` (string): window size in blocks (bounded) (default 20)
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `blocksPerHour` (number)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId` (integer)
- `chainLabel` (string|null)
- `edges` (object)
- `fromBlock` (integer)
- `head` (integer)
- `label` (string)
- `note` (string|null)
- `reason` (string|null)
- `secondsPerBlock` (number)
- `source` (string)
- `spanSeconds` (integer)
- `stale` (boolean|null)
- `toBlock` (integer)
- `ts` (string)
- `windowBlocks` (integer)

### `chain_block_receipts` (~148 tokens)

Every receipt in one block

eth_getBlockReceipts in a single paid call: per-transaction gas, status and log count, plus where the block's total fees went — instead of one receipt read per transaction. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-receipts?chain=base&block=latest.

Input parameters:

- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `aggregatedOver` (integer)
- `blockNumber` (integer)
- `cap` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `failedCount` (integer)
- `feesPaidNative` (string)
- `feesPaidWei` (string)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `successCount` (integer)
- `totalGasUsed` (string)
- `truncated` (boolean)
- `ts` (string)
- `uniqueSenders` (integer)

### `chain_fee_history` (~152 tokens)

Base-fee and priority-fee trend

eth_feeHistory over a bounded window: base fee at every block plus the 25/50/75 priority-fee percentiles. Whether gas is RISING is not answerable from one instantaneous quote, which is what /chain/fee-data gives. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/fee-history?chain=base&blocks=20.

Input parameters:

- `blocks` (string): window size in blocks (bounded) (default 20)
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `baseFeeGwei` (object)
- `blocksCovered` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `gasUsedRatio` (array)
- `head` (integer)
- `label` (string)
- `note` (string|null)
- `oldestBlock` (integer)
- `perBlockBaseFeeGwei` (array)
- `priorityFeeGwei` (object)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `trendPct` (integer)
- `ts` (string)

### `chain_storage_range` (~243 tokens)

A run of storage slots

Up to 16 consecutive 32-byte words from any starting slot — walk a struct or the array behind a mapping instead of trusting one view function to explain itself. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/storage-range?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&fromSlot=0x0&count=8&blockTag=latest.

Input parameters:

- `address` (string, required): contract whose storage is read [required]
- `blockTag` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `count` (string): how many items to read (bounded) (default 8)
- `fromSlot` (string): first storage slot (hex, up to 32 bytes) (default "0x0")

Output parameters:

- `address` (string)
- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `fromSlot` (string)
- `note` (string|null)
- `populated` (integer)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_multicall` (~256 tokens)

Up to 10 contract reads, one payment

Batched eth_call: ten (target, calldata) pairs settled once, each answered independently so one reverting view cannot fail the rest. A tenth of the per-call cost of doing them one at a time. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/multicall?chain=base&calls=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913:0x95d89b41,0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913:0x18160ddd&blockTag=latest.

Input parameters:

- `blockTag` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `calls` (string, required): up to 10 pairs, formatted 0xTo:0xCalldata,comma separated [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `answered` (integer)
- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_token_balances` (~244 tokens)

One token, many holders

balanceOf for up to 20 wallets on the same ERC-20, with decimals and symbol resolved once — the holder snapshot a distribution or listing check needs, in one settlement. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/token-balances?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owners=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0xa0b86991C6218A36cDD3b2C3d5E0F5b8D2f0A11C.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owners` (string, required): comma list of up to 20 holder addresses [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `decimals` (integer)
- `decimalsAssumed` (boolean)
- `note` (string|null)
- `readableCount` (integer)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `sumFormatted` (string)
- `sumRaw` (string)
- `symbol` (string)
- `token` (string)
- `ts` (string)

### `chain_nft_token_uri` (~183 tokens)

ERC-721 tokenURI for one id

The metadata pointer a wallet will follow for a specific id, plus whether it is on-chain JSON or an off-host scheme. The string is returned as text — this endpoint never resolves it. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-token-uri?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): NFT contract address [required]
- `tokenId` (string, required): token id (decimal) [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `fetchedByUs` (boolean)
- `found` (boolean)
- `host` (string|null)
- `isOnChainJson` (boolean)
- `length` (integer)
- `note` (string|null)
- `reason` (string|null)
- `scheme` (string)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `tokenId` (string)
- `tokenUri` (string)
- `ts` (string)

### `chain_nft_approved` (~176 tokens)

Who may move this one NFT

getApproved(tokenId) — the single-operator approval on one id. Non-zero means someone other than the owner can transfer that exact token without owning it. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-approved?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): NFT contract address [required]
- `tokenId` (string, required): token id (decimal) [required]

Output parameters:

- `approved` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `hasApproval` (boolean)
- `note` (string|null)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `tokenId` (string)
- `ts` (string)

### `chain_nft_approved_for_all` (~232 tokens)

Can this operator move a whole wallet?

isApprovedForAll(owner, operator) — the setApprovalForAll permission behind most NFT drain headlines, answered per pair in one paid call. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-approved-for-all?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&operator=0x0000000000000000000000000000000000000000.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `operator` (string, required): delegate/operator address being tested [required]
- `owner` (string, required): holder address [required]
- `token` (string, required): NFT contract address [required]

Output parameters:

- `approved` (boolean)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `operator` (string)
- `owner` (string)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `ts` (string)

### `chain_code_at` (~200 tokens)

Was this a contract at that block?

eth_getCode at a historical block, compared against today: bytecode present then, size at both points, and whether the code changed since. The check for 'what did this address look like when I traded'. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/code-at?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&block=latest.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `block` (string)
- `blockNumber` (integer)
- `bytecodeSize` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `changedSince` (boolean)
- `codePrefix` (string)
- `existedAtBlock` (boolean)
- `isContractNow` (boolean)
- `latestBytecodeSize` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_supply_at` (~189 tokens)

Token supply at a past block

totalSupply read at any block and diffed against now, formatted with the token's own decimals — how much of a supply was minted since a date, without an indexer. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/supply-at?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&block=latest.

Input parameters:

- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `atBlockFormatted` (string)
- `atBlockRaw` (string)
- `block` (string)
- `blockNumber` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `changePct` (number)
- `decimals` (integer)
- `decimalsAssumed` (boolean)
- `deltaFormatted` (string)
- `deltaRaw` (string)
- `direction` (string)
- `latestFormatted` (string)
- `latestRaw` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `token` (string)
- `ts` (string)

### `chain_approvals_scan` (~184 tokens)

Recent ERC-20 approvals

Approval events for one token over a short, bounded window, decoded to owner/spender/amount — the ledger of who just gave someone leave to move their USDC. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/approvals-scan?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&blocks=20.

Input parameters:

- `blocks` (string): window size in blocks (bounded) (default 10)
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `decimals` (integer)
- `note` (string|null)
- `range` (object)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `truncated` (boolean)
- `ts` (string)

### `chain_transfers_scan` (~186 tokens)

Recent ERC-20 transfers

Transfer events for one token over a short window, decoded from/to/amount with the token's decimals applied — the outflow check a monitoring bot wants first, without running an indexer. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/transfers-scan?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&blocks=20.

Input parameters:

- `blocks` (string): window size in blocks (bounded) (default 10)
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `decimals` (integer)
- `decimalsAssumed` (boolean)
- `note` (string|null)
- `range` (object)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `sumFormatted` (string)
- `sumRaw` (string)
- `token` (string)
- `truncated` (boolean)
- `ts` (string)

### `chain_client_version` (~113 tokens)

Which client answers this chain

web3_clientVersion for the node that served the call — the build string is how you tell reth from erigon from a proxy that is silently serving a different chain. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/client-version?chain=base.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `answeredBy` (string): host that replied
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `clientVersion` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_network_id` (~115 tokens)

Chain ID and network ID agree?

eth_chainId versus net_version for one chain. A mismatch is how a wallet ends up signing Base transactions for Mainnet, so this is a two-call safety check, not trivia. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/network-id?chain=base.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `agree` (boolean)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId` (integer)
- `chainLabel` (string|null)
- `expectedChainId` (integer)
- `matchesOurConfig` (boolean)
- `netVersion` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_sync_status` (~114 tokens)

Is this node caught up?

eth_syncing plus the head: a public node that is quietly 300 blocks behind answers every other question with stale data, and nothing else in a response tells you that. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/sync-status?chain=base.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `currentBlock` (integer)
- `finalizedBlock`
- `head` (integer)
- `highestBlock` (integer)
- `lagBlocks` (integer)
- `note` (string|null)
- `reason` (string|null)
- `safeBlock`
- `source` (string)
- `stale` (boolean|null)
- `syncing` (boolean)
- `ts` (string)

### `chain_tx_count` (~145 tokens)

How many transactions in a block

eth_getBlockTransactionCountByNumber for one block tag or height — the cheapest load/throughput reading of a chain that never has to move a full block header over the wire. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/tx-count?chain=base&block=latest.

Input parameters:

- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_block_by_hash` (~146 tokens)

Block header by hash

The same decoded header /chain/block gives, addressed by hash instead of height — which is what a receipt, a log or a reorg report actually hands you. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-by-hash?chain=base&blockHash=0x1c2e3a….

Input parameters:

- `blockHash` (string, required): block hash, 0x + 64 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `block` (object)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `requestedHash` (string)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_tx_at_index` (~166 tokens)

One transaction by block and index

eth_getTransactionByBlockNumberAndIndex — pick the Nth transaction of a block without transferring the whole block, which is how you sample a block instead of downloading it. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/tx-at-index?chain=base&block=latest&index=0.

Input parameters:

- `block` (string): block number or latest|safe|finalized|earliest|pending (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `index` (string, required): transaction index inside the block (decimal) [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `found` (boolean)
- `index` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `transaction` (object)
- `ts` (string)

### `chain_block_series` (~146 tokens)

A short run of block headers

Height, timestamp, transaction count, gas used and base fee for up to 25 consecutive blocks — the series itself, so a caller can plot throughput or fee pressure instead of taking our word for the average. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-series?chain=base&blocks=20.

Input parameters:

- `blocks` (string): how many blocks, newest first (max 25) (default 10)
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `secondsPerBlock` (integer)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `window` (object)

### `chain_block_by_timestamp` (~147 tokens)

Which block was mined at a time

Binary-searches the header timestamps for the first block at or after a unix time — every 'what was the supply / who held what on that date' question starts here, and no public node offers the lookup. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/block-by-timestamp?chain=base&timestamp=1758000000.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `timestamp` (string, required): unix seconds to locate a block at [required]

Output parameters:

- `blockNumber` (integer)
- `blockTimestamp` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `found` (boolean)
- `hash` (string)
- `head` (integer)
- `isoTime` (string)
- `note` (string|null)
- `probes` (integer)
- `reason` (string|null)
- `requestedTimestamp` (integer)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_contract_owner` (~167 tokens)

Who controls this contract

owner() decoded, plus whether the same address answers owner() as a storage read — the single field that decides who can pause, mint or upgrade the thing you are about to interact with. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/contract-owner?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `bytecodeSize` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `hasCode` (boolean)
- `note` (string|null)
- `owner` (string)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_proxy_check` (~170 tokens)

Is it a proxy, and what is behind it

The three EIP-1967 slots (implementation, admin, beacon) read next to implementation(): a proxy hides the real code, so bytecode-size checks alone understate what an upgrade can change. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/proxy-check?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `beacon` (string|null)
- `bytecodeSize` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `eip1967Slots` (object)
- `hasCode` (boolean)
- `implementationFromCall` (string)
- `implementationFromSlot` (string)
- `isProxy` (boolean)
- `note` (string|null)
- `proxyAdmin` (string)
- `reason` (string|null)
- `slotMatchesCall` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_paused_check` (~168 tokens)

Is this contract paused right now

paused() with the revert and no-data cases kept apart from a false — 'this token has no pause switch' and 'this token is not paused' are different facts to trade on. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/paused-check?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `paused` (boolean)
- `raw` (string)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_permit_ready` (~209 tokens)

Does this token support gasless permit()

DOMAIN_SEPARATOR() plus the owner's current nonce and whether permit() is in the code — the three inputs a signed-approval relayer needs before it can move funds without the holder paying gas. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/permit-ready?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): address whose permit nonce to read [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `domainSeparator` (string)
- `hasPermitSelector` (boolean)
- `implementation` (string)
- `nonce` (string)
- `note` (string|null)
- `owner` (string)
- `permitReady` (boolean)
- `permitSelectorIn` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `ts` (string)

### `chain_1155_balance` (~237 tokens)

ERC-1155 balance of one id

balanceOf(account, id) for a multi-token contract, formatted with whatever supply unit the contract uses — the read a Zora/Sudoswap-style position tracker needs, which an ERC-20 or ERC-721 lookup cannot answer. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/1155-balance?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&account=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1.

Input parameters:

- `account` (string, required): holder address [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]
- `tokenId` (string, required): token id (decimal) [required]

Output parameters:

- `account` (string)
- `balanceRaw` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `supported` (boolean)
- `token` (string)
- `tokenId` (string)
- `ts` (string)

### `chain_1155_uri` (~185 tokens)

ERC-1155 metadata pointer for an id

uri(id) decoded from the ABI string, with the {id} substitution left visible instead of followed — the metadata URL a wallet will fetch, returned as text and never requested by us. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/1155-uri?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]
- `tokenId` (string, required): token id (decimal) [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `raw` (string)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `template` (boolean)
- `token` (string)
- `tokenId` (string)
- `ts` (string)
- `uri` (string)

### `chain_1155_batch` (~246 tokens)

Many ERC-1155 positions, one payment

balanceOfBatch over up to 10 (account, id) pairs in a single settled call — the position snapshot of a portfolio, which is otherwise one paid read per line. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/1155-batch?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&accounts=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenIds=1,2.

Input parameters:

- `accounts` (string, required): up to 10 holder addresses, positionally matched to tokenIds [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]
- `tokenIds` (string, required): up to 10 ids (decimal), same order as accounts [required]

Output parameters:

- `answered` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `readable` (boolean)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `ts` (string)

### `chain_1155_check` (~191 tokens)

Is this really an ERC-1155

supportsInterface for the multi-token ids plus contractURI and a probe of one id — the pre-flight before a client assumes a contract is a 721 and sends the wrong call. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/1155-check?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]
- `tokenId` (string): id to probe uri() with (default 0) (default 0)

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `contractURI` (string)
- `note` (string|null)
- `probedTokenId` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `standards` (object)
- `supported` (boolean)
- `token` (string)
- `ts` (string)

### `chain_storage_diff` (~245 tokens)

Did one storage slot change?

The same slot read at two blocks: previous, current, and whether they differ — the primitive behind 'what did this contract's state actually move between those two dates'. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/storage-diff?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&slot=0x0&blockA=latest&blockB=latest.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `blockA` (string): older block (number or latest|safe|finalized|earliest) (default "safe")
- `blockB` (string): newer block (number or tag) (default "latest")
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `slot` (string, required): storage slot (hex, up to 32 bytes) [required]

Output parameters:

- `address` (string)
- `asUintA` (string)
- `asUintB` (string)
- `blocks` (object)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `changed` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `slot` (string)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `valueA` (string)
- `valueB` (string)

### `chain_token_meta_at` (~186 tokens)

Token name, symbol, supply at a block

The ERC-20 listing fields read at a past block tag or height, formatted with the decimals the contract itself reported — how a supply looked on a date, not how it looks now. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/token-meta-at?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&block=latest.

Input parameters:

- `block` (string, required): block number or tag to read the listing fields at [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]

Output parameters:

- `blockTag` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `decimals`
- `name` (string|null)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string|null)
- `token` (string)
- `totalSupply` (string|null)
- `totalSupplyRaw` (string|null)
- `ts` (string)

### `chain_nft_owner_at` (~211 tokens)

Who owned an NFT at a block

ownerOf(id) read at a chosen block and again at the head: previous holder, current holder, and whether it moved — the ownership history a sale-attribution or stolen-collection check needs. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/nft-owner-at?chain=base&token=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokenId=1&block=latest.

Input parameters:

- `block` (string, required): older block number or tag to compare the current owner against [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `token` (string, required): token / NFT contract address [required]
- `tokenId` (string, required): token id (decimal) [required]

Output parameters:

- `blockThen` (string)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `moved` (boolean)
- `note` (string|null)
- `ownerNow` (string)
- `ownerThen` (string)
- `readable` (boolean)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `token` (string)
- `tokenId` (string)
- `ts` (string)

### `chain_bytecode_fingerprint` (~176 tokens)

Fingerprint a contract's code

SHA-256 of the deployed bytecode plus its size and edges — two addresses with the same fingerprint are the same compiled contract, which is how a clone of a known scam shows up before you interact with it. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/bytecode-fingerprint?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]

Output parameters:

- `address` (string)
- `bytecodeSize` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `hasCode` (boolean)
- `note` (string|null)
- `prefix` (string)
- `reason` (string|null)
- `sha256` (string)
- `source` (string)
- `stale` (boolean|null)
- `suffix` (string)
- `ts` (string)

### `chain_bytecode_capabilities` (~197 tokens)

Which functions this code carries

Scans deployed bytecode for 4-byte selectors we can name from a derived table: what this contract can be asked to do, read off the code rather than trusted from a README. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/bytecode-capabilities?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&count=8.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `count` (string): how many named selectors to list (max 60) (default 40)

Output parameters:

- `address` (string)
- `bytecodeSize` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `hasCode` (boolean)
- `named` (array)
- `namedCount` (integer)
- `note` (string|null)
- `push4Candidates` (integer)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `unnamedSelectorCount` (integer)

### `chain_contract_diff` (~215 tokens)

Same contract, two addresses?

Bytecode fingerprints of two addresses compared: size, SHA-256 and prefix/suffix equality — the question behind 'is this new token a redeploy of the one that ruggened last week'. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/contract-diff?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&other=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `other` (string, required): second address to compare against [required]

Output parameters:

- `a` (object)
- `b` (object)
- `bothHaveCode` (boolean)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `identicalBytecode` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `sameSize` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `chain_wallet_tokens` (~233 tokens)

One wallet, many ERC-20s

balanceOf for one address across up to 10 tokens on one chain, each formatted with its own decimals and symbol — the holding snapshot a portfolio bot wants in a single settlement instead of ten. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/wallet-tokens?chain=base&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokens=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): holder address [required]
- `tokens` (string, required): comma list of up to 10 ERC-20/ERC-721 contract addresses [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `owner` (string)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `tokensReadable` (integer)
- `totalRowsWithBalance` (integer)
- `ts` (string)

### `chain_wallet_nfts` (~229 tokens)

One wallet, many collections

ERC-721 balanceOf for one address across up to 10 collections with each collection's name and symbol resolved once — the 'what NFTs does this wallet actually hold' check without an indexer. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/wallet-nfts?chain=base&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&tokens=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): holder address [required]
- `tokens` (string, required): up to 10 ERC-721 contract addresses [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `collectionsWithHoldings` (integer)
- `note` (string|null)
- `owner` (string)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `totalHeld` (string)
- `ts` (string)

### `chain_wallet_approvals` (~262 tokens)

What one spender can still move

allowance(owner, spender) across up to 10 tokens for one wallet — the standing-approval audit that answers 'if this address gets phished tonight, what leaves'. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/wallet-approvals?chain=base&owner=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&spender=0x0000000000000000000000000000000000000000&tokens=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,0x4200000000000000000000000000000000000006.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `owner` (string, required): holder address [required]
- `spender` (string, required): allowance spender address [required]
- `tokens` (string, required): comma list of up to 10 ERC-20/ERC-721 contract addresses [required]

Output parameters:

- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `note` (string|null)
- `openApprovals` (integer)
- `owner` (string)
- `reason` (string|null)
- `requested` (integer)
- `rows` (array)
- `source` (string)
- `spender` (string)
- `stale` (boolean|null)
- `ts` (string)
- `unrestrictedApprovals` (integer)

### `chain_tx_status` (~182 tokens)

Did this transaction land

One call for the pair every bot needs after sending: the transaction plus its receipt, with confirmations, block, status, gas used and revert reason together — instead of two paid reads and a race. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/tx-status?chain=base&hash=0x55bd09129b86846556030b6036d48c75865b1f8e73ee6f7df60a22a56f3cd0d4.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `hash` (string, required): transaction hash, 0x + 64 hex [required]

Output parameters:

- `blockNumber` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `confirmations` (integer)
- `contractAddress` (string|null)
- `effectiveGasPriceGwei` (integer)
- `failed` (boolean)
- `found` (boolean)
- `from` (string)
- `gasUsed` (string)
- `hash` (string)
- `logCount` (integer)
- `note` (string|null)
- `pending` (boolean)
- `reason` (string|null)
- `revertReason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `status` (integer)
- `to` (string)
- `ts` (string)
- `valueWei` (string)

### `chain_tx_events` (~186 tokens)

Every event one transaction emitted

The receipt's logs decoded to address, topic0, indexed values and data size — what a transaction actually did, straight from the node, which is the only honest answer when eth_getLogs by transaction hash is refused. Costs $0.001 USDC per call. Chains: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche. Byte-identical to GET /chain/tx-events?chain=base&hash=0x55bd09129b86846556030b6036d48c75865b1f8e73ee6f7df60a22a56f3cd0d4.

Input parameters:

- `chain` (string, required): chain key: base, ethereum, arbitrum, bsc, polygon, optimism, avalanche [required]
- `hash` (string, required): transaction hash, 0x + 64 hex [required]

Output parameters:

- `blockNumber` (integer)
- `caveat` (string|null)
- `chain` (string|null)
- `chainId`
- `chainLabel` (string|null)
- `count` (integer)
- `found` (boolean)
- `hash` (string)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `status` (integer)
- `truncated` (boolean)
- `ts` (string)

### `market_kraken_ticker` (~104 tokens)

Kraken spot ticker

Last trade, best bid and ask with size, 24h volume, VWAP and 24h high/low for one Kraken spot pair, straight from the venue's own tape. Costs $0.001 USDC per call. Byte-identical to GET /market/kraken-ticker?pair=XBTUSD.

Input parameters:

- `pair` (string, required): Kraken pair as the venue spells it: XBTUSD, ETHUSD, SOLUSD [required]

Output parameters:

- `ask` (string)
- `askSize` (string)
- `bid` (string)
- `bidSize` (string)
- `caveat` (string|null)
- `found` (boolean)
- `high24h` (string)
- `last` (string)
- `low24h` (string)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `trades24h` (integer)
- `ts` (string)
- `volume24h` (string)
- `vwap24h` (string)

### `market_kraken_ohlc` (~168 tokens)

Kraken OHLC candles

OHLCV candles for one Kraken pair: open, high, low, close, volume and trade count per bucket, oldest first. Only the intervals the venue actually serves are offered. Costs $0.001 USDC per call. Byte-identical to GET /market/kraken-ohlc?pair=XBTUSD&interval=15&limit=20.

Input parameters:

- `interval` (string): candle width in minutes (360 is rejected by Kraken; 30 and 720 are unmeasured and therefore not offered) (default "15")
- `limit` (string): how many candles (max 720) (default 48)
- `pair` (string, required): Kraken pair as the venue spells it: XBTUSD, ETHUSD, SOLUSD [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `interval` (integer)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_kraken_depth` (~114 tokens)

Kraken order book

Top of the Kraken book for one pair: resting bid and ask levels with size and price-count, plus the derived spread and mid. Costs $0.001 USDC per call. Byte-identical to GET /market/kraken-depth?pair=XBTUSD&count=20.

Input parameters:

- `count` (string): levels per side (max 50) (default 10)
- `pair` (string, required): Kraken pair as the venue spells it: XBTUSD, ETHUSD, SOLUSD [required]

Output parameters:

- `asks` (array)
- `bestAsk` (string)
- `bestBid` (string)
- `bids` (array)
- `caveat` (string|null)
- `found` (boolean)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `source` (string)
- `spreadPct` (number)
- `stale` (boolean|null)
- `ts` (string)

### `market_kraken_trades` (~116 tokens)

Kraken recent trades

The last trades printed on a Kraken pair, each with price, size, side and exchange timestamp — tape activity, not a summary. Costs $0.001 USDC per call. Byte-identical to GET /market/kraken-trades?pair=XBTUSD&limit=20.

Input parameters:

- `limit` (string): trades to return (max 200) (default 25)
- `pair` (string, required): Kraken pair as the venue spells it: XBTUSD, ETHUSD, SOLUSD [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `trades` (array)
- `ts` (string)

### `market_kraken_spread` (~115 tokens)

Kraken bid/ask spread history

Quoted spread samples for a Kraken pair with the mean spread in basis points — how expensive it is to cross that venue right now. Costs $0.001 USDC per call. Byte-identical to GET /market/kraken-spread?pair=XBTUSD&limit=20.

Input parameters:

- `limit` (string): spread samples (max 500) (default 60)
- `pair` (string, required): Kraken pair as the venue spells it: XBTUSD, ETHUSD, SOLUSD [required]

Output parameters:

- `caveat` (string|null)
- `found` (boolean)
- `meanSpreadBps` (number)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `samples` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_kraken_pair_spec` (~95 tokens)

Kraken pair specification

How Kraken itself defines a pair: base and quote, decimal precision, order size limits, the public leverage ladder and the first two fee tiers. Costs $0.001 USDC per call. Byte-identical to GET /market/kraken-pair-spec?pair=XXBTZUSD.

Input parameters:

- `pair` (string, required): Kraken pair key as stored by the venue (XXBTZUSD) [required]

Output parameters:

- `altname` (string)
- `base` (string)
- `baseClass` (string)
- `caveat` (string|null)
- `costDecimals` (integer)
- `costMin` (string)
- `found` (boolean)
- `leverageBuy` (array)
- `leverageSell` (array)
- `longPositionLimit` (integer)
- `lot` (string)
- `lotDecimals` (integer)
- `lotMultiplier` (integer)
- `marginCall` (integer)
- `marginStop` (integer)
- `note` (string|null)
- `orderMin` (string)
- `pair` (string)
- `pairDecimals` (integer)
- `quote` (string)
- `quoteClass` (string)
- `reason` (string|null)
- `shortPositionLimit` (integer)
- `source` (string)
- `stale` (boolean|null)
- `status` (string)
- `tickSize` (string)
- `ts` (string)
- `wsname` (string)

### `market_cbex_ticker` (~92 tokens)

Coinbase Exchange ticker

Last trade, top of book, 24h volume and the exchange's own clock for one Coinbase product. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-ticker?product=BTC-USD.

Input parameters:

- `product` (string, required): Coinbase Exchange product id, BASE-QUOTE (BTC-USD, ETH-USD, SOL-USD) [required]

Output parameters:

- `ask` (string)
- `bid` (string)
- `caveat` (string|null)
- `found` (boolean)
- `note` (string|null)
- `price` (string)
- `product` (string)
- `reason` (string|null)
- `size` (string)
- `source` (string)
- `stale` (boolean|null)
- `time` (string)
- `tradeId` (integer)
- `ts` (string)
- `volume` (string)

### `market_cbex_stats` (~101 tokens)

Coinbase 24h and 30d stats

Open, high, low, last and both the 24h and 30-day traded volume for a Coinbase product — what a session actually cost and moved. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-stats?product=BTC-USD.

Input parameters:

- `product` (string, required): Coinbase Exchange product id, BASE-QUOTE (BTC-USD, ETH-USD, SOL-USD) [required]

Output parameters:

- `caveat` (string|null)
- `change24hPct` (number)
- `found` (boolean)
- `high` (string)
- `last` (string)
- `low` (string)
- `note` (string|null)
- `open` (string)
- `product` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `volume24h` (string)
- `volume30d` (string)

### `market_cbex_trades` (~115 tokens)

Coinbase recent trades

Public fill feed for a Coinbase product: price, size, side, timestamp and trade id, newest first. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-trades?product=BTC-USD&limit=20.

Input parameters:

- `limit` (string): trades to return (max 200) (default 25)
- `product` (string, required): Coinbase Exchange product id, BASE-QUOTE (BTC-USD, ETH-USD, SOL-USD) [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `product` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `trades` (array)
- `ts` (string)

### `market_cbex_candles` (~151 tokens)

Coinbase OHLC candles

Candles from Coinbase Exchange for the granularities its API serves (1m to 1d), oldest first, with volume per bucket. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-candles?product=BTC-USD&granularity=60&limit=20.

Input parameters:

- `granularity` (string): candle width in seconds (default "60")
- `limit` (string): candles to return (max 350, the venue's own page size) (default 48)
- `product` (string, required): Coinbase Exchange product id, BASE-QUOTE (BTC-USD, ETH-USD, SOL-USD) [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `granularity` (integer)
- `note` (string|null)
- `product` (string)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_cbex_best_quote` (~98 tokens)

Coinbase best bid and ask

Level-1 book for a Coinbase product: the single best bid, the single best ask, their sizes and the book sequence number. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-best-quote?product=BTC-USD.

Input parameters:

- `product` (string, required): Coinbase Exchange product id, BASE-QUOTE (BTC-USD, ETH-USD, SOL-USD) [required]

Output parameters:

- `askSize` (string)
- `auctionMode` (boolean)
- `bestAsk` (string)
- `bestBid` (string)
- `bidSize` (string)
- `caveat` (string|null)
- `found` (boolean)
- `note` (string|null)
- `product` (string)
- `reason` (string|null)
- `sequence` (integer)
- `source` (string)
- `spread` (number)
- `stale` (boolean|null)
- `time` (string)
- `ts` (string)

### `market_cbex_product_spec` (~103 tokens)

Coinbase product specification

The venue's own rules for one product: tick and lot size, minimum order, whether it is margin/post-only/limit-only, and whether trading is enabled. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-product-spec?product=BTC-USD.

Input parameters:

- `product` (string, required): Coinbase Exchange product id, BASE-QUOTE (BTC-USD, ETH-USD, SOL-USD) [required]

Output parameters:

- `auctionMode` (boolean)
- `base` (string)
- `baseIncrement` (string)
- `cancelOnly` (boolean)
- `caveat` (string|null)
- `display` (string)
- `found` (boolean)
- `fxStablecoin` (boolean)
- `highBidLimitPct` (string)
- `id` (string)
- `limitOnly` (boolean)
- `marginEnabled` (boolean)
- `maxSlippagePct` (string)
- `minMarketFunds` (string)
- `note` (string|null)
- `postOnly` (boolean)
- `quote` (string)
- `quoteIncrement` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `status` (string)
- `statusMessage` (string)
- `tradingDisabled` (boolean)
- `ts` (string)

### `market_cbex_clock` (~58 tokens)

Coinbase exchange clock

The venue's own server time plus the offset against this server — the check that stops a signed order being rejected for clock drift. Costs $0.001 USDC per call. Byte-identical to GET /market/cbex-clock?.

Output parameters:

- `caveat` (string|null)
- `epoch` (number)
- `iso` (string)
- `note` (string|null)
- `reason` (string|null)
- `roundTripMs` (integer)
- `skewMs` (integer)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_okx_ticker` (~96 tokens)

OKX spot ticker

Last, bid, ask, 24h open/high/low and both base and quote volume for one OKX instrument. Costs $0.001 USDC per call. Byte-identical to GET /market/okx-ticker?instId=BTC-USDT.

Input parameters:

- `instId` (string, required): OKX instrument id, BASE-QUOTE (BTC-USDT, ETH-USDT-SWAP) [required]

Output parameters:

- `askPx` (string)
- `askSz` (string)
- `bidPx` (string)
- `bidSz` (string)
- `caveat` (string|null)
- `found` (boolean)
- `high24h` (string)
- `instId` (string)
- `instType` (string)
- `last` (string)
- `lastSz` (string)
- `low24h` (string)
- `note` (string|null)
- `open24h` (string)
- `quoteVolume24h` (string)
- `reason` (string|null)
- `sodUtc0` (string)
- `sodUtc8` (string)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `venueTsMs` (integer)
- `volume24h` (string)

### `market_okx_candles` (~140 tokens)

OKX OHLC candles

Mark, base and quote volume per bucket for an OKX instrument, oldest first, across the bar widths the venue serves. Costs $0.001 USDC per call. Byte-identical to GET /market/okx-candles?instId=BTC-USDT&bar=1m&limit=20.

Input parameters:

- `bar` (string): OKX bar width (default "1m")
- `instId` (string, required): OKX instrument id, BASE-QUOTE (BTC-USDT, ETH-USDT-SWAP) [required]
- `limit` (string): candles (max 300) (default 48)

Output parameters:

- `bar` (string)
- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `instId` (string)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_okx_depth` (~115 tokens)

OKX order book

Price-level ladder from OKX for one instrument with per-level contract count, plus the derived top-of-book spread. Costs $0.001 USDC per call. Byte-identical to GET /market/okx-depth?instId=BTC-USDT&levels=20.

Input parameters:

- `instId` (string, required): OKX instrument id, BASE-QUOTE (BTC-USDT, ETH-USDT-SWAP) [required]
- `levels` (string): levels per side (max 25) (default 10)

Output parameters:

- `asks` (array)
- `bestAsk` (string)
- `bestBid` (string)
- `bids` (array)
- `caveat` (string|null)
- `found` (boolean)
- `instId` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_okx_trades` (~111 tokens)

OKX recent trades

Fill-by-fill tape from OKX with aggressor side, price, size and venue timestamp. Costs $0.001 USDC per call. Byte-identical to GET /market/okx-trades?instId=BTC-USDT&limit=20.

Input parameters:

- `instId` (string, required): OKX instrument id, BASE-QUOTE (BTC-USDT, ETH-USDT-SWAP) [required]
- `limit` (string): trades (max 100) (default 25)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `instId` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `trades` (array)
- `ts` (string)

### `market_okx_instrument_spec` (~131 tokens)

OKX instrument specification

Contract rules as OKX defines them: tick and lot size, minimum size, price limits, whether it is a swap or option, and settlement date. Costs $0.001 USDC per call. Byte-identical to GET /market/okx-instrument-spec?instId=BTC-USDT&instType=SPOT.

Input parameters:

- `instId` (string, required): OKX instrument id, BASE-QUOTE (BTC-USDT, ETH-USDT-SWAP) [required]
- `instType` (string): which OKX instrument family to look in (default "SPOT")

Output parameters:

- `baseCcy` (string)
- `category` (string)
- `caveat` (string|null)
- `ctMult`
- `ctType` (string)
- `ctVal` (number|null)
- `ctValCcy` (string)
- `expTimeMs`
- `found` (boolean)
- `instFamily` (string)
- `instId` (string)
- `instType` (string)
- `lever` (string)
- `listTimeMs` (integer)
- `lotSz` (string)
- `maxLmtAmt` (string)
- `maxLmtSz` (string)
- `maxMktSz` (string)
- `minSz` (string)
- `note` (string|null)
- `openType` (string)
- `optType` (string)
- `positionLimit` (string)
- `positionLimitPct`
- `quoteCcy` (string)
- `reason` (string|null)
- `ruleType` (string)
- `settleCcy` (string)
- `source` (string)
- `stale` (boolean|null)
- `state` (string)
- `tickSz` (string)
- `tradeQuoteCcyList` (array)
- `ts` (string)
- `uly` (string)

### `market_okx_funding_rate` (~86 tokens)

OKX perpetual funding

Current and next funding rate for an OKX perpetual, with the settlement timestamps and the funding band the venue caps it at. Costs $0.001 USDC per call. Byte-identical to GET /market/okx-funding-rate?instId=BTC-USDT-SWAP.

Input parameters:

- `instId` (string, required): OKX perpetual swap id [required]

Output parameters:

- `caveat` (string|null)
- `formulaType` (string)
- `found` (boolean)
- `fundingRate` (string)
- `fundingRate8hPct` (number)
- `fundingTime` (integer)
- `impactValue` (string)
- `instId` (string)
- `instType` (string)
- `interestRate` (string)
- `maxFundingRate` (string)
- `method` (string)
- `minFundingRate` (string)
- `nextFundingTime` (integer)
- `note` (string|null)
- `premium` (string)
- `prevFundingTime` (integer)
- `reason` (string|null)
- `settFundingRate` (string)
- `settState` (string)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_bfex_ticker` (~100 tokens)

Bitfinex spot ticker

Top of book, last, 24h change in price and percent, and 24h volume/high/low for one Bitfinex spot pair. Costs $0.001 USDC per call. Byte-identical to GET /market/bfex-ticker?pair=BTCUSD.

Input parameters:

- `pair` (string, required): Bitfinex currency pair without the venue's leading t: BTCUSD, ETHUSD, ADAUSD [required]

Output parameters:

- `ask` (integer)
- `askSize` (number)
- `bid` (integer)
- `bidSize` (number)
- `caveat` (string|null)
- `change24h` (integer)
- `changePct24h` (number)
- `found` (boolean)
- `high24h` (integer)
- `last` (integer)
- `low24h` (integer)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `volume24h` (number)

### `market_bfex_candles` (~143 tokens)

Bitfinex OHLC candles

Candles for a Bitfinex spot pair at the timeframes its v2 API serves, oldest first, with base volume per bucket. Costs $0.001 USDC per call. Byte-identical to GET /market/bfex-candles?pair=BTCUSD&timeframe=1m&limit=20.

Input parameters:

- `limit` (string): candles (max 300) (default 48)
- `pair` (string, required): Bitfinex currency pair without the venue's leading t: BTCUSD, ETHUSD, ADAUSD [required]
- `timeframe` (string): Bitfinex candle timeframe (default "1m")

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `pair` (string)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `timeframe` (string)
- `ts` (string)

### `market_bfex_pairs` (~113 tokens)

Bitfinex listed pairs

The pair ids Bitfinex itself publishes for its spot exchange, optionally filtered by a substring — the lookup that stops a bot guessing a market that does not exist. Costs $0.001 USDC per call. Byte-identical to GET /market/bfex-pairs?contains=USD&limit=20.

Input parameters:

- `contains` (string): case-insensitive substring filter on the pair id (default null)
- `limit` (string): ids to return (max 300) (default 100)

Output parameters:

- `caveat` (string|null)
- `matched` (integer)
- `note` (string|null)
- `pairs` (array)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `total` (integer)
- `ts` (string)

### `market_gate_ticker` (~80 tokens)

Gate spot ticker

Last, best bid and ask with size, 24h percent change and both base and quote volume for one Gate currency pair. Costs $0.001 USDC per call. Byte-identical to GET /market/gate-ticker?pair=BTC_USDT.

Input parameters:

- `pair` (string, required): Gate currency_pair, BASE_QUOTE [required]

Output parameters:

- `base_volume` (string)
- `caveat` (string|null)
- `change_percentage` (string)
- `currency_pair` (string)
- `found` (boolean)
- `high_24h` (string)
- `highest_bid` (string)
- `highest_size` (string)
- `last` (string)
- `low_24h` (string)
- `lowest_ask` (string)
- `lowest_size` (string)
- `note` (string|null)
- `quote_volume` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_gate_candles` (~129 tokens)

Gate OHLC candles

OHLCV per bucket from Gate with the quote volume and the window-closed flag, oldest first. Costs $0.001 USDC per call. Byte-identical to GET /market/gate-candles?pair=BTC_USDT&interval=5m&limit=20.

Input parameters:

- `interval` (string): Gate candle interval (only the values its API accepted when measured) (default "5m")
- `limit` (string): candles (max 1000) (default 48)
- `pair` (string, required): Gate currency_pair, BASE_QUOTE [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `currency_pair` (string)
- `found` (boolean)
- `interval` (string)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_gate_depth` (~101 tokens)

Gate order book

Resting bids and asks from Gate for one pair, with the venue's own sequence fields and the derived top-of-book spread. Costs $0.001 USDC per call. Byte-identical to GET /market/gate-depth?pair=BTC_USDT&levels=20.

Input parameters:

- `levels` (string): levels per side (max 50) (default 10)
- `pair` (string, required): Gate currency_pair, BASE_QUOTE [required]

Output parameters:

- `asks` (array)
- `bestAsk` (string)
- `bestBid` (string)
- `bids` (array)
- `caveat` (string|null)
- `currency_pair` (string)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `spreadPct` (number)
- `stale` (boolean|null)
- `ts` (string)
- `updateMs` (integer)

### `market_gate_trades` (~98 tokens)

Gate recent trades

Gate's public fill feed for one pair: side, price, base amount, millisecond timestamp and trade id. Costs $0.001 USDC per call. Byte-identical to GET /market/gate-trades?pair=BTC_USDT&limit=20.

Input parameters:

- `limit` (string): trades (max 100) (default 25)
- `pair` (string, required): Gate currency_pair, BASE_QUOTE [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `currency_pair` (string)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `trades` (array)
- `ts` (string)

### `market_gate_pair_spec` (~85 tokens)

Gate pair specification

How Gate defines a currency pair: base and quote, the flat fee percent, order-size floors and caps, precision and whether it is tradable. Costs $0.001 USDC per call. Byte-identical to GET /market/gate-pair-spec?pair=BTC_USDT.

Input parameters:

- `pair` (string, required): Gate currency_pair, BASE_QUOTE [required]

Output parameters:

- `amount_precision` (integer)
- `base` (string)
- `base_name` (string)
- `caveat` (string|null)
- `down_rate` (number)
- `fee` (string)
- `found` (boolean)
- `id` (string)
- `market_order_max_money` (string)
- `market_order_max_stock` (string)
- `max_base_amount` (string|null)
- `max_quote_amount` (string)
- `min_base_amount` (string)
- `min_quote_amount` (string)
- `note` (string|null)
- `price_precision` (integer)
- `quote` (string)
- `quote_name` (string)
- `reason` (string|null)
- `slippage` (string)
- `source` (string)
- `st_tag` (boolean)
- `stale` (boolean|null)
- `trade_quotes` (array)
- `trade_status` (string)
- `ts` (string)
- `type` (string)
- `up_rate` (number)

### `market_kucoin_ticker` (~117 tokens)

KuCoin 24h stats

KuCoin's own 24h statistics for a symbol: last, best bid/ask with size, 24h high/low, change, base and quote volume, average price and the taker/maker fee rates it applies. Costs $0.001 USDC per call. Byte-identical to GET /market/kucoin-ticker?symbol=BTC-USDT.

Input parameters:

- `symbol` (string, required): KuCoin symbol, BASE-QUOTE in upper case (BTC-USDT, SOL-USDT) [required]

Output parameters:

- `averagePrice` (string)
- `buy` (string)
- `caveat` (string|null)
- `changePrice` (string)
- `changeRate` (string)
- `found` (boolean)
- `high` (string)
- `last` (string)
- `low` (string)
- `makerCoefficient` (string)
- `makerFeeRate` (string)
- `note` (string|null)
- `reason` (string|null)
- `sell` (string)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `takerCoefficient` (string)
- `takerFeeRate` (string)
- `time` (integer)
- `ts` (string)
- `vol` (string)
- `volValue` (string)

### `market_kucoin_best_quote` (~100 tokens)

KuCoin best bid and ask

KuCoin's level-1 book for a symbol in one call: inside price, both sides with size, the book sequence and the venue timestamp. Costs $0.001 USDC per call. Byte-identical to GET /market/kucoin-best-quote?symbol=BTC-USDT.

Input parameters:

- `symbol` (string, required): KuCoin symbol, BASE-QUOTE in upper case (BTC-USDT, SOL-USDT) [required]

Output parameters:

- `bestAsk` (string)
- `bestAskSize` (string)
- `bestBid` (string)
- `bestBidSize` (string)
- `caveat` (string|null)
- `found` (boolean)
- `note` (string|null)
- `price` (string)
- `reason` (string|null)
- `sequence` (string)
- `size` (string)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `time` (integer)
- `ts` (string)

### `market_kucoin_candles` (~150 tokens)

KuCoin OHLC candles

KuCoin candles with base and quote (transaction-value) volume per bucket, oldest first, across every type value the venue answered. Costs $0.001 USDC per call. Byte-identical to GET /market/kucoin-candles?symbol=BTC-USDT&type=1min&limit=20.

Input parameters:

- `limit` (string): candles (max 1500; KuCoin answers at most 1500 per call) (default 48)
- `symbol` (string, required): KuCoin symbol, BASE-QUOTE in upper case (BTC-USDT, SOL-USDT) [required]
- `type` (string): KuCoin candle type (default "1min")

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `ts` (string)
- `type` (string)

### `market_deribit_index` (~90 tokens)

Deribit index price

Deribit's own index price for an underlying plus the estimated delivery price it settles against — the reference a funding or settlement check needs. Costs $0.001 USDC per call. Byte-identical to GET /market/deribit-index?indexName=btc_usd.

Input parameters:

- `indexName` (string): Deribit index name (only the ones measured) (default "btc_usd")

Output parameters:

- `caveat` (string|null)
- `estimatedDeliveryPrice` (number)
- `found` (boolean)
- `indexName` (string)
- `indexPrice` (number)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_deribit_funding_window` (~133 tokens)

Deribit funding over a window

The funding Deribit's own get_funding_rate_value reports as having accrued on one instrument between two timestamps — a window total, not a snapshot rate. Costs $0.001 USDC per call. Byte-identical to GET /market/deribit-funding-window?instrument=BTC-PERPETUAL&hours=20.

Input parameters:

- `hours` (string): look-back window in whole hours (max 720) (default 24)
- `instrument` (string, required): Deribit instrument name, CURRENCY-SUFFIX (BTC-PERPETUAL, ETH-25SEP26) [required]

Output parameters:

- `annualizedPct` (number)
- `caveat` (string|null)
- `endMs` (integer)
- `found` (boolean)
- `fundingOverWindow` (number)
- `hours` (integer)
- `instrument` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `startMs` (integer)
- `ts` (string)

### `market_deribit_volatility_index` (~112 tokens)

Deribit daily volatility index

Historical daily candles of Deribit's DVOL-style volatility index for an underlying — the implied-vol level options are priced off, as OHLC per day. Costs $0.001 USDC per call. Byte-identical to GET /market/deribit-volatility-index?currency=BTC&days=20.

Input parameters:

- `currency` (string): underlying whose volatility index Deribit publishes (default "BTC")
- `days` (string): days of history (max 365) (default 30)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `currency` (string)
- `days` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_deribit_instruments` (~148 tokens)

Deribit instrument list

The contract rules Deribit publishes per instrument: tick size, contract size, min trade amount, max leverage, fee rates, state and expiry — perpetuals only or the whole listed futures set. Costs $0.001 USDC per call. Byte-identical to GET /market/deribit-instruments?currency=BTC&family=perpetual&limit=20.

Input parameters:

- `currency` (string): currency to list instruments for (default "BTC")
- `family` (string): just -PERPETUAL, or every listed future including dated ones (default "perpetual")
- `limit` (string): instruments to return (max 50) (default 12)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `currency` (string)
- `family` (string)
- `found` (boolean)
- `listed` (integer)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_hl_mid_price` (~107 tokens)

Hyperliquid mid price

The venue's own mid for one or more Hyperliquid perp coins, straight from allMids — the reference price a funding or liquidation check starts from. Costs $0.001 USDC per call. Byte-identical to GET /market/hl-mid-price?coins=BTC,ETH.

Input parameters:

- `coins` (string): comma list of up to 12 Hyperliquid coin symbols (default BTC,ETH,HYPE) (default ["BTC","ETH","HYPE"])

Output parameters:

- `caveat` (string|null)
- `matched` (integer)
- `mids` (object)
- `note` (string|null)
- `reason` (string|null)
- `requested` (integer)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_hl_perp_specs` (~117 tokens)

Hyperliquid perp specifications

Per-coin contract rules from Hyperliquid's own meta: size decimals, maximum leverage and the margin table id, for the whole listed universe or filtered by substring. Costs $0.001 USDC per call. Byte-identical to GET /market/hl-perp-specs?contains=PEPE&limit=20.

Input parameters:

- `contains` (string): case-insensitive substring filter on the coin name (default null)
- `limit` (string): coins to return (max 100) (default 25)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `universe` (integer)

### `market_hl_order_book` (~99 tokens)

Hyperliquid L2 book

Hyperliquid's l2Book for one perp: the resting bid and ask levels with price, size and opaque-order count, plus the book time. Costs $0.001 USDC per call. Byte-identical to GET /market/hl-order-book?coin=BTC.

Input parameters:

- `coin` (string, required): Hyperliquid coin symbol as its meta lists it (BTC, ETH, HYPE, kPEPE) [required]

Output parameters:

- `asks` (array)
- `bestAsk` (string)
- `bestBid` (string)
- `bids` (array)
- `caveat` (string|null)
- `coin` (string)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_hl_candles` (~146 tokens)

Hyperliquid OHLC candles

candleSnapshot for one Hyperliquid perp: open, high, low, close, volume and order count per bucket, oldest first, bounded to the window each interval can carry. Costs $0.001 USDC per call. Byte-identical to GET /market/hl-candles?coin=BTC&interval=1m&limit=20.

Input parameters:

- `coin` (string, required): Hyperliquid coin symbol as its meta lists it (BTC, ETH, HYPE, kPEPE) [required]
- `interval` (string): candle interval (default "1m")
- `limit` (string): candles (max 500) (default 48)

Output parameters:

- `caveat` (string|null)
- `coin` (string)
- `count` (integer)
- `found` (boolean)
- `interval` (string)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_hl_funding_history` (~121 tokens)

Hyperliquid funding history

Every funding print Hyperliquid has for a perp coin since a look-back point: rate, premium component and the settlement timestamp. Costs $0.001 USDC per call. Byte-identical to GET /market/hl-funding-history?coin=BTC&hours=20.

Input parameters:

- `coin` (string, required): Hyperliquid coin symbol as its meta lists it (BTC, ETH, HYPE, kPEPE) [required]
- `hours` (string): look-back in whole hours (max 720) (default 72)

Output parameters:

- `caveat` (string|null)
- `coin` (string)
- `count` (integer)
- `found` (boolean)
- `hours` (integer)
- `latestRate` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_hl_asset_context` (~99 tokens)

Hyperliquid per-asset context

The live risk frame Hyperliquid publishes per perp: funding, open interest, mark and oracle price, premium and 24h notional volume. Costs $0.001 USDC per call. Byte-identical to GET /market/hl-asset-context?coin=BTC.

Input parameters:

- `coin` (string, required): Hyperliquid coin symbol as its meta lists it (BTC, ETH, HYPE, kPEPE) [required]

Output parameters:

- `caveat` (string|null)
- `coin` (string)
- `dayBaseVlm` (string)
- `dayNtlVlm` (string)
- `found` (boolean)
- `funding` (string)
- `impactPxs` (array)
- `markPx` (string)
- `midPx` (string)
- `note` (string|null)
- `openInterest` (string)
- `oraclePx` (string)
- `premium` (string)
- `prevDayPx` (string)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_llama_chain_tvl_history` (~127 tokens)

Chain TVL history

Daily total-value-locked history for one chain from DefiLlama's own series, downsampled to the window you ask for — the trend line, not a snapshot. Costs $0.001 USDC per call. Byte-identical to GET /market/llama-chain-tvl-history?chain=Ethereum&days=20.

Input parameters:

- `chain` (string): chain as DefiLlama names it (only measured names) (default "Ethereum")
- `days` (string): daily points to return (max 3650) (default 365)

Output parameters:

- `caveat` (string|null)
- `chain` (string)
- `count` (integer)
- `days` (integer)
- `found` (boolean)
- `latestTvlUsd` (integer)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_llama_asset_price_history` (~137 tokens)

Token price history

Hourly or daily USD price points for one token reference (network:address) from DefiLlama's coin API, with the symbol and confidence it attaches to the series. Costs $0.001 USDC per call. Byte-identical to GET /market/llama-asset-price-history?ref=coingecko:bitcoin&period=1h&span=20.

Input parameters:

- `period` (string): point spacing (default "1h")
- `ref` (string, required): asset reference as network:identifier [required]
- `span` (string): how many points (max 720) (default 48)

Output parameters:

- `caveat` (string|null)
- `confidence` (number)
- `count` (integer)
- `decimals` (integer)
- `found` (boolean)
- `note` (string|null)
- `period` (string)
- `prices` (array)
- `reason` (string|null)
- `ref` (string)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `ts` (string)

### `market_llama_price_snapshot` (~125 tokens)

Batch token prices

Current USD price, symbol, decimals and confidence for up to 10 network:address references in one paid call — the cheapest way to mark a portfolio. Costs $0.001 USDC per call. Byte-identical to GET /market/llama-price-snapshot?refs=coingecko:bitcoin,base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `refs` (string, required): comma list of up to 10 network:identifier refs [required]

Output parameters:

- `caveat` (string|null)
- `found` (boolean)
- `notPriced` (array)
- `note` (string|null)
- `priced` (integer)
- `prices` (object)
- `reason` (string|null)
- `requested` (integer)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_btc_chain_tip` (~62 tokens)

Bitcoin chain tip

The current Bitcoin block height as mempool.space sees it, plus the best tip hash — the two-second liveness check for anything Bitcoin-facing. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-chain-tip?.

Output parameters:

- `caveat` (string|null)
- `height` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `tipHash` (string)
- `ts` (string)

### `market_btc_fee_estimates` (~61 tokens)

Bitcoin fee estimates

The recommended sat-per-vbyte fee targets for the next blocks: fastest, half-hour, one-hour, economy and minimum. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-fee-estimates?.

Output parameters:

- `caveat` (string|null)
- `economyFee` (integer)
- `fastestFee` (integer)
- `halfHourFee` (integer)
- `hourFee` (integer)
- `minimumFee` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_btc_block_projections` (~95 tokens)

Bitcoin next-block fee projections

Per-block projection for the mempool's next ~8 blocks: size, transaction count, total fees, median fee and the fee-rate range that would make it. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-block-projections?limit=20.

Input parameters:

- `limit` (string): projected blocks to return (the venue publishes about 8) (default 8)

Output parameters:

- `blocks` (array)
- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_btc_spot_prices` (~66 tokens)

Bitcoin spot price in fiat

The reference BTC price in USD plus six other fiat currencies with the quote timestamp — as a Bitcoin-native explorer publishes it, not as a venue tape. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-spot-prices?.

Output parameters:

- `aud` (integer)
- `cad` (integer)
- `caveat` (string|null)
- `chf` (integer)
- `eur` (integer)
- `gbp` (integer)
- `jpy` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `timeSec` (integer)
- `ts` (string)
- `usd` (integer)

### `market_btc_difficulty_adjustment` (~68 tokens)

Bitcoin difficulty retarget

Where the next difficulty adjustment stands: percent progress, projected change, remaining blocks and time, the next retarget height and the average block time behind it. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-difficulty-adjustment?.

Output parameters:

- `adjustedTimeAvgSec` (integer)
- `caveat` (string|null)
- `difficultyChange` (number)
- `estimatedRetargetMs` (integer)
- `expectedBlocks` (number)
- `nextRetargetHeight` (integer)
- `note` (string|null)
- `previousRetarget` (number)
- `previousTimeMs` (integer)
- `progressPercent` (number)
- `reason` (string|null)
- `remainingBlocks` (integer)
- `remainingTimeMs` (integer)
- `source` (string)
- `stale` (boolean|null)
- `timeAvgSec` (integer)
- `ts` (string)

### `market_btc_recent_blocks` (~98 tokens)

Latest Bitcoin blocks

The blocks a Bitcoin explorer has just indexed: height, hash, time, difficulty, transaction count, size and weight, with the mined fees and pool name when the explorer attaches them. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-recent-blocks?limit=20.

Input parameters:

- `limit` (string): blocks to return (the endpoint publishes about 15) (default 10)

Output parameters:

- `blocks` (array)
- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `tipHeight` (integer)
- `ts` (string)

### `market_btc_mining_hashrate` (~116 tokens)

Bitcoin hashrate and difficulty series

Network hashrate points and the difficulty-adjustment series over a bounded window, with the current hashrate and difficulty the explorer reports. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-mining-hashrate?window=1m&limit=20.

Input parameters:

- `limit` (string): points per series to return (max 400) (default 60)
- `window` (string): history window (only the values measured) (default "1m")

Output parameters:

- `caveat` (string|null)
- `currentDifficulty` (number)
- `currentHashrateHs` (string)
- `difficulty` (array)
- `difficultyPoints` (integer)
- `found` (boolean)
- `hashratePoints` (integer)
- `hashrates` (array)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `window` (string)

### `market_btc_network_stats` (~72 tokens)

Bitcoin network statistics

One shot at the network's aggregate state: price, hash rate, difficulty, next retarget height, blocks and transactions in the last day, coins mined, fees collected and total supply. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-network-stats?.

Output parameters:

- `blocksSize` (integer)
- `btcMinedSats` (integer)
- `caveat` (string|null)
- `difficulty` (integer)
- `estimatedBtcSent` (integer)
- `estimatedTxVolumeUsd` (number)
- `hashRateGh` (number)
- `marketPriceUsd` (number)
- `minutesBetweenBlocks` (number)
- `nBlocksMined` (integer)
- `nBlocksTotal` (integer)
- `nTx` (integer)
- `nextRetargetHeight` (integer)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `timestampMs` (integer)
- `totalBtcSats` (integer)
- `totalBtcSent` (integer)
- `totalFeesSats` (integer)
- `tradeVolumeBtc` (number)
- `tradeVolumeUsd` (number)
- `ts` (string)

### `market_btc_usd_price_history` (~130 tokens)

Bitcoin USD price history

Daily BTC/USD closes back to the earliest point the explorer keeps, downsampled to a bounded number of points — a long-run price series without a key. Costs $0.001 USDC per call. Byte-identical to GET /market/btc-usd-price-history?timespan=6months&limit=20.

Input parameters:

- `limit` (string): points to return (newest first slice, max 500) (default 120)
- `timespan` (string): history window (1month is rejected upstream and is therefore not offered) (default "6months")

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `name` (string)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `timespan` (string)
- `total` (integer)
- `ts` (string)
- `unit` (string)
- `values` (array)

### `market_fear_greed_index` (~96 tokens)

Crypto fear and greed index

The alternative.me fear-and-greed reading: index value, its label and the seconds until the next update, for today or a whole history back to 365 days. Costs $0.001 USDC per call. Byte-identical to GET /market/fear-greed-index?limit=20.

Input parameters:

- `limit` (string): daily readings to return, newest first (max 365) (default 1)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `latestClassification` (string)
- `latestValue` (integer)
- `name` (string)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `timeUntilUpdateSec` (integer)
- `ts` (string)

### `market_poly_markets` (~116 tokens)

Polymarket active markets

Open prediction markets ranked by the venue's own 24h volume or liquidity: question, outcomes with prices, volume, liquidity, spread, best bid/ask and the end date. Costs $0.001 USDC per call. Byte-identical to GET /market/poly-markets?order=volume24hr&limit=20.

Input parameters:

- `limit` (string): markets to return (max 20) (default 10)
- `order` (string): which venue field to rank by (default "volume24hr")

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `order` (string)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_poly_market_detail` (~93 tokens)

Polymarket market detail

Everything Polymarket's API records for one market id: the question and description, resolution source and resolver, outcomes and prices, the whole volume and liquidity series it reports, fees and the CLOB token ids. Costs $0.001 USDC per call. Byte-identical to GET /market/poly-market-detail?id=559681.

Input parameters:

- `id` (string, required): Polymarket numeric market id [required]

Output parameters:

- `acceptingOrders` (boolean)
- `active` (boolean)
- `bestAsk` (number)
- `bestBid` (number|null)
- `caveat` (string|null)
- `clobTokenIds` (array)
- `closed` (boolean)
- `conditionId` (string)
- `description` (string)
- `enableOrderBook` (boolean)
- `endDate` (string)
- `feeType` (string)
- `found` (boolean)
- `id` (string)
- `lastTradePrice` (number)
- `liquidityNum` (number|null)
- `makerBaseFee` (integer)
- `note` (string|null)
- `oneDayPriceChange` (number|null)
- `orderMinSize` (integer)
- `outcomePrices` (array)
- `outcomes` (array)
- `question` (string)
- `reason` (string|null)
- `resolutionSource` (string)
- `resolutionStatuses` (array)
- `resolvedBy` (string)
- `slug` (string)
- `source` (string)
- `spread` (number)
- `stale` (boolean|null)
- `startDate` (string)
- `takerBaseFee` (integer)
- `ts` (string)
- `umaBond` (integer)
- `umaReward` (integer)
- `volume24hr` (number|null)
- `volumeNum` (number)

### `market_poly_tags` (~83 tokens)

Polymarket tag list

The topic tags Polymarket itself puts on markets, with each tag's id and slug — the vocabulary to filter or classify a prediction-market feed with. Costs $0.001 USDC per call. Byte-identical to GET /market/poly-tags?limit=20.

Input parameters:

- `limit` (string): tags to return (max 50) (default 20)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_dex_token_pairs` (~155 tokens)

Every pool holding a token

All DEX pools DexScreener knows for one token address across chains, each with price, liquidity, 24h volume, trade counts, price change, FDV and market cap. Costs $0.001 USDC per call. Byte-identical to GET /market/dex-token-pairs?address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&limit=20.

Input parameters:

- `address` (string, required): token address, EVM 0x.. or Solana base58 mint [required]
- `limit` (string): pools to return, most liquid first (max 30) (default 10)

Output parameters:

- `address` (string)
- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `pools` (integer)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_dex_pair_detail` (~165 tokens)

One DEX pool in full

Everything DexScreener publishes for a single pool: the pair's chain, dex and label, price in USD and native, liquidity split, volume and buy/sell counts per window, and 5m/1h/6h/24h price change. Costs $0.001 USDC per call. Byte-identical to GET /market/dex-pair-detail?chain=base&pair=0x5D0bC342178C8Fe2c2f9A9fcC9D52555C99936db.

Input parameters:

- `chain` (string, required): DexScreener chain id (base, ethereum, solana, …) [required]
- `pair` (string, required): pool / pair address on that chain [required]

Output parameters:

- `baseToken` (object)
- `caveat` (string|null)
- `chain` (string)
- `chainId` (string)
- `dexId` (string)
- `fdv` (integer)
- `found` (boolean)
- `labels` (array)
- `liquidityBase` (number)
- `liquidityQuote` (integer)
- `liquidityUsd` (number)
- `marketCap` (integer)
- `note` (string|null)
- `pair` (string)
- `pairAddress` (string)
- `pairCreatedAtMs`
- `priceChange` (object)
- `priceNative` (string)
- `priceUsd` (string)
- `quoteToken` (object)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `txns` (object)
- `url` (string)
- `volume` (object)

### `market_dex_boosted_tokens` (~103 tokens)

Boosted DEX tokens

The tokens currently promoted on DexScreener, with the chain, token address, the description and links the submitter provided and the boost amount and timing — what is being pushed, not what has liquidity. Costs $0.001 USDC per call. Byte-identical to GET /market/dex-boosted-tokens?limit=20.

Input parameters:

- `limit` (string): entries to return (max 30) (default 15)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_jup_token_prices` (~152 tokens)

Jupiter USD prices by mint

Current USD price, 24h change, liquidity, decimals and the block the quote came from for up to 20 Solana mints, in one call — with an explicit list of which mints returned nothing. Costs $0.001 USDC per call. Byte-identical to GET /market/jup-token-prices?mints=So11111111111111111111111111111111111111112,EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.

Input parameters:

- `mints` (string, required): comma list of up to 20 Solana token mints [required]

Output parameters:

- `caveat` (string|null)
- `found` (boolean)
- `notPriced` (array)
- `note` (string|null)
- `priced` (integer)
- `prices` (object)
- `reason` (string|null)
- `requested` (integer)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_jup_token_search` (~114 tokens)

Jupiter token search

Solana tokens matching a name or symbol query, with market cap, FDV, liquidity, holder count, price-change and volume statistics and Jupiter's own audit flags. Costs $0.001 USDC per call. Byte-identical to GET /market/jup-token-search?query=bonk&limit=20.

Input parameters:

- `limit` (string): tokens to return (max 20) (default 8)
- `query` (string, required): token name, symbol or mint prefix to search for [required]

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `query` (string)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_jup_new_tokens` (~96 tokens)

Newest Solana tokens

The most recently listed tokens on Jupiter's token API: mint, name, supply, market cap, liquidity, launch pool and the audit flags Jupiter attaches — a launch feed, not a recommendation. Costs $0.001 USDC per call. Byte-identical to GET /market/jup-new-tokens?limit=20.

Input parameters:

- `limit` (string): tokens to return (max 30) (default 15)

Output parameters:

- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_scout_address_profile` (~153 tokens)

Explorer address profile

What a Blockscout explorer knows about an address: native balance and USD rate, whether it is a verified contract, its name, proxy implementation, ENS name, holder/token flags and the token record when the address itself is a token. Costs $0.001 USDC per call. Byte-identical to GET /market/scout-address-profile?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string): which Blockscout explorer to ask (default "base")

Output parameters:

- `address` (string)
- `balanceUpdatedAtBlock` (integer)
- `balanceWei` (string)
- `caveat` (string|null)
- `chain` (string)
- `creationStatus` (string)
- `creationTransactionHash` (string|null)
- `creatorAddress` (string|null)
- `ensDomainName` (string|null)
- `exchangeRateUsd` (number)
- `found` (boolean)
- `hasLogs` (boolean)
- `hasTokenTransfers` (boolean)
- `hasTokens` (boolean)
- `implementations` (array)
- `isContract` (boolean)
- `isScam` (boolean)
- `isVerified` (boolean)
- `name` (string|null)
- `note` (string|null)
- `proxyType` (string)
- `publicTags` (array)
- `reason` (string|null)
- `reputation` (string)
- `source` (string)
- `stale` (boolean|null)
- `token`
- `ts` (string)

### `market_scout_token_profile` (~149 tokens)

Explorer token profile

The explorer's own record for one ERC-20/721 token: name, symbol, type, decimals, holder count, total supply, circulating market cap, 24h volume and the USD exchange rate it quotes. Costs $0.001 USDC per call. Byte-identical to GET /market/scout-token-profile?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.

Input parameters:

- `address` (string, required): target address, 0x + 40 hex [required]
- `chain` (string): which Blockscout explorer to ask (default "base")

Output parameters:

- `address` (string)
- `caveat` (string|null)
- `chain` (string)
- `circulatingMarketCap` (number)
- `decimals` (integer)
- `exchangeRateUsd` (number)
- `found` (boolean)
- `holders` (integer)
- `iconUrl` (string)
- `name` (string)
- `note` (string|null)
- `reason` (string|null)
- `reputation` (string)
- `source` (string)
- `stale` (boolean|null)
- `symbol` (string)
- `totalSupply` (string)
- `ts` (string)
- `type` (string)
- `volume24h` (number)

### `market_scout_chain_stats` (~96 tokens)

Explorer chain statistics

One explorer's view of its chain right now: addresses, blocks and transactions all-time and today, gas price tiers in gwei, average block time, market cap, coin price and network utilisation. Costs $0.001 USDC per call. Byte-identical to GET /market/scout-chain-stats?chain=base.

Input parameters:

- `chain` (string): which Blockscout explorer to ask (default "base")

Output parameters:

- `averageBlockTimeMs` (integer)
- `caveat` (string|null)
- `chain` (string)
- `coinPriceChangePct` (number|null)
- `coinPriceUsd` (number)
- `found` (boolean)
- `gasPricesGwei` (object)
- `gasPricesUpdatedAt` (string)
- `gasUsedToday` (string)
- `marketCapUsd` (number)
- `networkUtilizationPct` (number)
- `note` (string|null)
- `reason` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `totalAddresses` (integer)
- `totalBlocks` (integer)
- `totalTransactions` (integer)
- `transactionsToday` (integer)
- `ts` (string)

### `market_x402_overview` (~94 tokens)

x402 rail demand overview

Thirty-day demand on the x402 pay-per-call rail, measured from its own public discovery index: hosts listed, resources, total calls, summed unique payers, and the median/p90/p99 calls per host. The number that answers 'is anyone buying anything here' without trusting a marketing page. Costs $0.001 USDC per call. Byte-identical to GET /market/x402-overview?.

Output parameters:

- `ageDays` (number)
- `asOf` (string)
- `calls30d` (integer)
- `caveat` (string|null)
- `found` (boolean)
- `hosts` (integer)
- `hostsWithTraffic` (integer)
- `measuredFrom` (string)
- `medianCallsPerHost` (integer)
- `note` (string|null)
- `p90CallsPerHost` (integer)
- `p99CallsPerHost` (integer)
- `payerSlots30d` (integer)
- `reason` (string|null)
- `resources` (integer)
- `snapshot` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `top6HostSharePct` (number)
- `ts` (string)
- `windowDays` (integer)

### `market_x402_top_sellers` (~117 tokens)

Busiest sellers on the x402 rail

The hosts actually receiving calls on this rail, ranked by thirty-day call count, each with its unique-payer count, number of listed resources and the highest price it advertises. Use it to see who is earning and at what price point, instead of guessing from a directory. Costs $0.001 USDC per call. Byte-identical to GET /market/x402-top-sellers?limit=20.

Input parameters:

- `limit` (string): hosts to return, busiest first (max 50) (default 10)

Output parameters:

- `ageDays` (number)
- `asOf` (string)
- `caveat` (string|null)
- `count` (integer)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `rows` (array)
- `snapshot` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)

### `market_x402_host_demand` (~117 tokens)

Is one x402 seller actually being called?

Demand history for a single host on this rail: thirty-day calls, unique payers, listed resources, last call timestamp, highest advertised price, and its rank among all listed hosts. The pre-purchase check an agent should run before paying an unknown endpoint. Costs $0.001 USDC per call. Byte-identical to GET /market/x402-host-demand?host=api.nansen.ai.

Input parameters:

- `host` (string, required): hostname of the seller to check, without scheme (api.nansen.ai) [required]

Output parameters:

- `ageDays` (number)
- `asOf` (string)
- `calls30d` (integer)
- `caveat` (string|null)
- `found` (boolean)
- `host` (string)
- `lastCalledAt` (string)
- `listed` (boolean)
- `maxPriceUsd` (number)
- `note` (string|null)
- `payers30d` (integer)
- `percentile` (number)
- `rankByCalls` (integer)
- `reason` (string|null)
- `resources` (integer)
- `snapshot` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `totalHosts` (integer)
- `ts` (string)

### `market_x402_payer_bands` (~91 tokens)

How many buyers does a cold x402 seller get?

Hosts grouped by count of unique paying wallets over thirty days, with the calls each group receives. Reads as the real distribution of the rail: how many sellers get one payer, how many get 2-60, and how much of all traffic the top group holds. Costs $0.001 USDC per call. Byte-identical to GET /market/x402-payer-bands?.

Output parameters:

- `ageDays` (number)
- `asOf` (string)
- `bands` (array)
- `caveat` (string|null)
- `found` (boolean)
- `note` (string|null)
- `reason` (string|null)
- `snapshot` (boolean)
- `source` (string)
- `stale` (boolean|null)
- `top6HostSharePct` (number)
- `totalHosts` (integer)
- `ts` (string)

### `market_token_verdict` (~220 tokens)

Plain-language risk verdict on one Base token

One call, several reads assembled into a verdict: the deepest DEX pool (liquidity, 24h volume, buy AND sell counts, FDV, pool age), what the deployed bytecode can actually be asked to do (mint, pause, blacklist, fee changes, max-wallet caps, whether ownership was renounced), and whether the token is an upgradeable proxy. Returns reasons, a risk score, and an explicit list of what it did NOT check. Static on-chain and venue evidence only — never a simulated sell and never a certification of safety. Costs $0.001 USDC per call. Byte-identical to GET /market/token-verdict?chain=base&token=0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC.

Input parameters:

- `chain` (string, required): chain key (the bytecode read needs an EVM chain; base is the default) [required]
- `token` (string, required): token contract address to judge [required]

Output parameters:

- `buys24h`
- `cannotSee` (array)
- `caveat` (string|null)
- `chain` (string)
- `code` (object)
- `disclaimer` (string)
- `failedSources` (array)
- `fdvUsd` (number)
- `found` (boolean)
- `liquidityUsd` (number)
- `marketCapUsd` (number)
- `name` (string|null)
- `note` (string|null)
- `pairAddress` (string|null)
- `pool` (object)
- `poolAgeDays` (number|null)
- `priceUsd` (string|null)
- `proxy` (boolean)
- `reason` (string|null)
- `reasons` (array)
- `riskLevel` (string)
- `riskScore` (integer)
- `sells24h`
- `signals` (object)
- `source` (string)
- `sources` (array)
- `stale` (boolean|null)
- `supply` (string|null)
- `symbol` (string|null)
- `token` (string)
- `ts` (string)
- `verdict` (string)
- `volume24hUsd` (number)

### `market_npm_tree_risk` (~182 tokens)

Direct-dependency risk roll-up for one npm package

One paid call that reads the package AND each of its direct dependencies (bounded, in published order) from the public npm registry, then rolls up what actually gets executed on install: which dependencies carry pre/postinstall scripts, which are deprecated, which ship without signed provenance, which are single-maintainer or unpublished-for-two-years. Returns the per-dependency rows, the counts, a verdict line, and an explicit list of what this cannot see. Static registry metadata only — it does not resolve a lockfile, walk the transitive tree beyond direct dependencies, download or execute any package, or compare against the name you meant to type. Costs $0.001 USDC per call. Byte-identical to GET /market/npm-tree-risk?name=left-pad.

Input parameters:

- `name` (string, required): npm package name (optionally scoped) [required]

Output parameters:

- `cannotSee` (array)
- `caveat` (string|null)
- `dependencyCount`
- `deps` (array)
- `directChecked` (integer)
- `failedSources` (array)
- `found` (boolean)
- `latest` (string|null)
- `name` (string)
- `note` (string|null)
- `reason` (string|null)
- `risk` (string|null)
- `rollup` (object)
- `rootDeprecated` (string|null)
- `rootFlags` (array)
- `rootHasInstallScript` (boolean|null)
- `scope` (string|null)
- `source` (string)
- `sources` (array)
- `stale` (boolean|null)
- `ts` (string)
- `verdict` (string)

### `market_npm_package_risk` (~140 tokens)

npm package supply-chain risk

One keyless read of the public npm registry for a package: does it ship an install-time script (the way malicious packages run code at install), is the released version deprecated, how old is the last publish, how many maintainers and dependencies, is there signed provenance, and what flags come out of those facts. Static metadata only: it does NOT execute the package, scan its source, or claim it is safe. Costs $0.001 USDC per call. Byte-identical to GET /market/npm-package-risk?name=left-pad.

Input parameters:

- `name` (string, required): npm package name (optionally scoped) [required]

Output parameters:

- `caveat` (string|null)
- `deprecated` (string|null)
- `depsCount`
- `flags` (array)
- `found` (boolean)
- `hasInstallScript` (boolean|null)
- `installScripts` (array)
- `lastPublishAgeDays` (number|null)
- `latest` (string|null)
- `license` (string|null)
- `maintainerCount`
- `name` (string)
- `note` (string|null)
- `provenance` (boolean|null)
- `publishedAt` (string|null)
- `reason` (string|null)
- `risk` (string|null)
- `scope` (string|null)
- `source` (string)
- `stale` (boolean|null)
- `ts` (string)
- `unpackedSize` (string|null)
- `versionCount`

### `market_github_repo_health` (~143 tokens)

GitHub repository health

Keyless read of the public GitHub API for one repository: archived, forked, how long since the last push, open issue count, stars, license, topics — plus the flags an integrator actually acts on (archived, no license, unmaintained window). Does not read the source, the dependency tree, or anything private, and does not clone or build. Costs $0.001 USDC per call. Byte-identical to GET /market/github-repo-health?owner=modelcontextprotocol&repo=registry.

Input parameters:

- `owner` (string, required): repository owner or org [required]
- `repo` (string, required): repository name [required]

Output parameters:

- `archived` (boolean|null)
- `caveat` (string|null)
- `createdAt` (string|null)
- `defaultBranch` (string|null)
- `flags` (array)
- `fork` (boolean|null)
- `found` (boolean)
- `fullName` (string)
- `lastPushAgeDays` (number|null)
- `licenseSpdx` (string|null)
- `note` (string|null)
- `openIssues`
- `pushedAt` (string|null)
- `reason` (string|null)
- `risk` (string|null)
- `sizeKb`
- `source` (string)
- `stale` (boolean|null)
- `stargazers`
- `topics` (array)
- `ts` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/kaminariouji-x402-audit-agent/labored-safari-islamic#diagnostics

## Score history

- 2026-10-24: 33
- 2026-10-23: 33
- 2026-10-22: 33
- 2026-10-21: 33
- 2026-10-20: 33
- 2026-10-19: 33
- 2026-10-18: 23
- 2026-10-17: 33
- 2026-10-16: 23
- 2026-10-15: 33
- 2026-10-14: 33
- 2026-10-13: 81
- 2026-10-12: 81
- 2026-10-10: 80
- 2026-10-07: 78
- 2026-10-05: 23
- 2026-10-04: 23
- 2026-10-03: 23
- 2026-10-02: 23
- 2026-10-01: 76
- 2026-09-30: 33
- 2026-09-29: 75
- 2026-09-28: 74
- 2026-09-27: 74
- 2026-09-26: 73
- 2026-09-25: 73
- 2026-09-24: 71
- 2026-09-23: 70
- 2026-09-22: 70
- 2026-09-21: 69

## Common questions

### What is the Crypto Bot Audit + Market Data (x402 paid) MCP server?

Crypto Bot Audit + Market Data (x402 paid) is an MCP server listed in the public MCP registry as io.github.kaminariouji/x402-audit-agent. x402 pay-per-call: 146 MCP tools, no account or key. USDC on Base + Solana, $0.001-$0.01/call. This page covers its hosted endpoint (https://labored-safari-islamic.ngrok-free.dev/mcp).

### Is the Crypto Bot Audit + Market Data (x402 paid) MCP server safe to use?

Crypto Bot Audit + Market Data (x402 paid) scores 33 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Crypto Bot Audit + Market Data (x402 paid) MCP server expose?

Crypto Bot Audit + Market Data (x402 paid) exposes 146 tools: audit_bot_code, demo_audit, x402_rail_heartbeat, get_token_price, search_tokens, and 141 more. Their descriptions and schemas cost roughly 20,604 tokens of context every time the server is loaded.

### Does the Crypto Bot Audit + Market Data (x402 paid) MCP server require authentication?

Yes. Crypto Bot Audit + Market Data (x402 paid) asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Crypto Bot Audit + Market Data (x402 paid) MCP server still maintained?

Crypto Bot Audit + Market Data (x402 paid) is still listed as active in the MCP registry. We last reached this channel on 24 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://labored-safari-islamic.ngrok-free.dev/mcp
- Changelog RSS feed: https://verifymcp.io/servers/kaminariouji-x402-audit-agent/labored-safari-islamic.xml
- Changelog JSON feed: https://verifymcp.io/servers/kaminariouji-x402-audit-agent/labored-safari-islamic.json
- HTML version of this page: https://verifymcp.io/servers/kaminariouji-x402-audit-agent/labored-safari-islamic
