Live Perpetual Intelligence for Agents

Structured live state for one USDT perpetual on Binance or Bybit — not a heatmap scrape. Start free: validate the symbol, read a 15-minute OI/price/CVD/RSI slice. When the user needs full context, unlock every Trap Radar Pro window in one JSON dump. Not investment advice.

v0.2 · Binance & Bybit · MCP + HTTP llms.txt — start here JSON examples OpenAPI Agent Card

Recommended workflow

  1. get_supported_symbols — confirm the ticker exists (free)
  2. get_market_metrics — 15m OI / price / CVD / RSI pulse (free)
  3. get_instrument_state — full Trap Radar dump, only if the user wants depth (paid, user must approve USDC)

Tools

Step 1
Free

get_supported_symbols

Live USDT perpetual catalog per exchange. Validate symbols before calling metrics.

GET https://crypto-resources.com/agents/v0/tools/get_supported_symbols
Step 2
Free

get_market_metrics

15m price, OI, CVD, RSI plus 30m VWAP deviation. Enough for a quick read on one ticker.

GET https://crypto-resources.com/agents/v0/tools/get_market_metrics?symbol=BTCUSDT&exchange=binance
Step 3

get_instrument_state

Filter row + every Trap Radar window (OI, CVD, liquidations, volume spike, …). User confirmation required.

POST https://crypto-resources.com/agents/v0/tools/get_instrument_state

Data freshness

Live data (`data_mode: live`). Trust `updated_at` and `is_closed` on each metric to know which 1-minute bar was measured. Check `has_data` and `ready_count` before citing values. Some indicators include updated_at and is_closed. updated_at is the open time of the 1-minute candle included in that measurement. is_closed true means that 1-minute candle was already closed when the value was measured. Example: updated_at 2026-09-08T14:52:00Z with is_closed true means the last closed candle in this report is the 14:52 bar; freshness is 14:53:00 UTC. This is the candle clock, not delayed data.

Payment policy

Do not auto-pay

Do not spend USDC automatically. Require explicit user approval before signing any TransferWithAuthorization or retrying a paid call. Respect wallet spend limits, confirmation prompts, and your host application's payment policy. A 402 response is a quote, not permission to pay.

x402 on Base (3 steps)

  1. Quote — POST with wallet + X-Agent-Wallet → HTTP 402 + accepts[0]
  2. Sign — EIP-712 TransferWithAuthorization for USDC (x402 spec)
  3. Retry — same POST + X-Payment header. No ETH for gas.

Full 402/200 payloads: https://crypto-resources.com/agents/v0/examples.json

API key vs subscription

Optional header X-CR-Api-Key (or X-Api-Key / Authorization: Bearer). Today the key is accepted but does not skip USDC — unpaid get_instrument_state still returns HTTP 402. Planned: an active Crypto Resources subscription will unlock the paid dump without on-chain payment. Always call unpaid first: HTTP 200 means no USDC needed; HTTP 402 means follow x402.

Rate limits

For machines