{"version": "1.1.0", "summary": "Market intelligence for trading agents on Binance and Bybit USDT perpetuals. Find unusual conditions with scan_market, then pull a filtered or full Trap Radar dump. Evidence of what the tape is doing — not a forecast and not investment advice.", "recommended_workflow": "1) get_supported_markets — confirm the market and available indicator filters. 2) get_market_metrics — optional free 15m pulse on one ticker. 3) get_market_context — optional, only when regime changes how you read a scan. 4) scan_market — cheap filter; read reasons[], not just score. 5) get_instrument_state — depth on a candidate; pass indicators/windows to avoid the full map. 6) historical_validation — evidence only; insufficient sample is a valid 200.", "freshness": "Live data (`data_mode: live`). Every live response includes `request_id`, `updated_at`, `freshness_seconds`, `ttl_seconds`, `is_stale`. `is_closed` means the event/candle finished; `is_stale` means the TTL expired. They are different. 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.", "examples_for": ["get_supported_markets", "get_supported_symbols", "get_market_metrics", "get_market_context", "scan_market", "get_instrument_state", "historical_validation", "payment", "errors"], "links": {"llms_txt": "https://crypto-resources.com/llms.txt", "skill": "https://crypto-resources.com/agents/skill.md", "schema": "https://crypto-resources.com/agents/v0/schema.json", "mcp_manifest": "https://crypto-resources.com/agents/mcp.json", "openapi": "https://crypto-resources.com/agents/openapi.json", "agent_card": "https://crypto-resources.com/.well-known/agent-card.json", "catalog_html": "https://crypto-resources.com/agents/", "x402_spec": "https://www.x402.org/", "x402_github": "https://github.com/coinbase/x402", "payai_facilitator": "https://facilitator.payai.network"}, "policy": {"agent_payment": "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.", "api_key": "Optional header X-CR-Api-Key (or X-Api-Key / Authorization: Bearer). Today the key is accepted but does not skip USDC — unpaid scan_market, get_market_context and get_instrument_state still return HTTP 402. Planned: an active Crypto Resources subscription will unlock paid tools without on-chain payment. Always call unpaid first: HTTP 200 means no USDC needed; HTTP 402 means follow x402.", "idempotency": "Paid tools accept Idempotency-Key (header) or idempotency_key (JSON). The same key + same request body returns the cached paid answer and does not settle USDC again. Recommended on every paid retry. Missing key still works, but a network retry may charge twice."}, "prices_usdc": {"get_market_context": "0.005", "scan_market": "0.005", "get_instrument_state": "0.01", "historical_validation": "0 (free until evidence corpus exists)"}, "indicator_filters": "oi, price, cvd, rsi, vwap, volume_spike, liquidations, liquidations_usd, liquidations_oi", "scan_conditions": ["anomaly", "divergence", "trap", "liquidation"], "rate_limits": {"scope": "per client IP, tool × tier", "window_seconds": 60, "free_tools_per_minute": 60, "paid_tool_per_minute": 100, "mcp_per_minute": 60, "api_key_required_for_free": false, "by_tool": {"get_supported_markets": {"free": 60, "paid": 600}, "get_supported_symbols": {"free": 60, "paid": 600}, "get_market_metrics": {"free": 60, "paid": 300}, "get_market_context": {"free": 30, "paid": 300}, "scan_market": {"free": 10, "paid": 100}, "find_market_anomalies": {"free": 10, "paid": 100}, "get_instrument_state": {"free": 20, "paid": 200}, "historical_validation": {"free": 5, "paid": 50}}}, "network": "base", "usdc_contract_base": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "price_usd": "0.01", "scan_price_usd": "0.005", "context_price_usd": "0.005", "default_exchange": "binance", "get_supported_markets_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 8, "ttl_seconds": 60, "is_stale": false, "market": "futures", "contract": "usdt_perpetual", "exchange": "binance", "universe": "binance_perps", "count": 420, "symbols": ["BTCUSDT", "ETHUSDT"], "exchanges": [{"exchange": "binance", "market": "futures", "count": 420, "symbols": ["BTCUSDT", "ETHUSDT"]}], "markets": [{"exchange": "binance", "market": "futures", "quote": "USDT", "contract": "perpetual", "symbol_count": 420}], "scan_conditions": ["anomaly", "divergence", "trap", "liquidation"], "indicator_filters": {"families": [{"id": "oi", "label": "Open interest — all windows"}, {"id": "cvd", "label": "CVD vs volume"}, {"id": "liquidations_usd", "label": "Liquidations in USD"}, {"id": "liquidations_oi", "label": "Liquidations as % of OI"}], "windows": ["5m", "15m", "30m", "60m", "4h"], "hint": "On get_instrument_state pass indicators=oi,cvd,liquidations_oi and optional windows=15m,60m to receive every matching window, not the full dump."}, "has_data": true, "data_mode": "live"}, "get_supported_symbols_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 8, "ttl_seconds": 60, "is_stale": false, "market": "futures", "contract": "usdt_perpetual", "exchange": "binance", "universe": "binance_perps", "count": 420, "symbols": ["BTCUSDT", "ETHUSDT"], "exchanges": [{"exchange": "binance", "market": "futures", "count": 420, "symbols": ["BTCUSDT", "ETHUSDT"]}], "markets": [{"exchange": "binance", "market": "futures", "quote": "USDT", "contract": "perpetual", "symbol_count": 420}], "scan_conditions": ["anomaly", "divergence", "trap", "liquidation"], "indicator_filters": {"families": [{"id": "oi", "label": "Open interest — all windows"}, {"id": "cvd", "label": "CVD vs volume"}, {"id": "liquidations_usd", "label": "Liquidations in USD"}, {"id": "liquidations_oi", "label": "Liquidations as % of OI"}], "windows": ["5m", "15m", "30m", "60m", "4h"], "hint": "On get_instrument_state pass indicators=oi,cvd,liquidations_oi and optional windows=15m,60m to receive every matching window, not the full dump."}, "has_data": true, "data_mode": "live"}, "get_market_metrics_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 8, "ttl_seconds": 60, "is_stale": false, "exchange": "binance", "market": "futures", "symbol": "BTCUSDT", "metrics": {"price_delta": {"value": 0.42, "is_ready": true, "unit": "%", "window": "15m", "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}, "oi_delta": {"value": -0.18, "is_ready": true, "unit": "%", "window": "15m", "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}, "cvd_delta": {"value": 1.05, "is_ready": true, "unit": "%", "window": "15m", "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}, "rsi": {"value": 54.2, "is_ready": true, "unit": "", "timeframe": "15m", "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}, "vwap_dev": {"value": -0.12, "is_ready": true, "unit": "%", "window": "30m", "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}}, "has_data": true, "data_mode": "live"}, "get_market_context_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 8, "ttl_seconds": 60, "is_stale": false, "exchange": "binance", "market": "futures", "horizon": "15m", "regime": "mixed", "btc": {"symbol": "BTCUSDT", "has_data": true, "metrics": {"price_delta": {"value": 0.42, "is_ready": true, "unit": "%", "window": "15m"}, "oi_delta": {"value": -0.18, "is_ready": true, "unit": "%", "window": "15m"}}}, "breadth": {"tickers": 420, "oi_up": 210, "oi_down": 180, "avg_oi_delta_pct": 0.21}, "has_data": true, "data_mode": "live", "note": "Background only. Call scan_market for ticker-level reasons.", "payment": {"mode": "x402", "rail": "x402", "price_usd": "0.005", "network": "base"}}, "get_market_context_402": {"x402Version": 1, "error": "PAYMENT_REQUIRED", "accepts": [{"scheme": "exact", "network": "base", "maxAmountRequired": "5000", "resource": "https://crypto-resources.com/agents/v0/tools/get_market_context", "description": "Full Trap Radar Pro instrument state for one perpetual. Market-state evidence, not investment advice.", "mimeType": "application/json", "payTo": "0x2BC6Fc80C7F6b27C3C83228d2031D78E73b4362e", "maxTimeoutSeconds": 60, "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "extra": {"name": "USD Coin", "version": "2", "cohort": "B", "price_usd": "0.005", "facilitator": "https://facilitator.payai.network"}}], "real": {"instruction": "Sign accepts[0] as EIP-712 TransferWithAuthorization on network Base, USDC contract in accepts[0].asset, domain name/version from accepts[0].extra. Retry the same HTTP request with X-Payment containing the signed x402 payload.", "retry_headers": {"X-Agent-Wallet": "0xYOUR_PAYER_ADDRESS"}}}, "scan_market_402": {"x402Version": 1, "error": "PAYMENT_REQUIRED", "accepts": [{"scheme": "exact", "network": "base", "maxAmountRequired": "5000", "resource": "https://crypto-resources.com/agents/v0/tools/scan_market", "description": "Full Trap Radar Pro instrument state for one perpetual. Market-state evidence, not investment advice.", "mimeType": "application/json", "payTo": "0x2BC6Fc80C7F6b27C3C83228d2031D78E73b4362e", "maxTimeoutSeconds": 60, "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "extra": {"name": "USD Coin", "version": "2", "cohort": "B", "price_usd": "0.005", "facilitator": "https://facilitator.payai.network"}}], "real": {"instruction": "Sign accepts[0] as EIP-712 TransferWithAuthorization on network Base, USDC contract in accepts[0].asset, domain name/version from accepts[0].extra. Retry the same HTTP request with X-Payment containing the signed x402 payload.", "retry_headers": {"X-Agent-Wallet": "0xYOUR_PAYER_ADDRESS"}}}, "scan_market_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 8, "ttl_seconds": 60, "is_stale": false, "exchange": "binance", "market": "futures", "horizon": "15m", "condition": "divergence", "condition_version": "cr-scan-1.1.0", "count": 1, "scanned": 420, "results": [{"symbol": "ARCUSDT", "condition": "divergence", "score": 0.72, "reasons": ["price +3.2% / 15m", "OI +7.4% / 15m", "CVD -48% / 15m (-2.1σ)"], "metrics": {"price_delta": 3.2, "oi_delta": 7.4, "cvd_delta": -48.0}}], "has_data": true, "data_mode": "live", "score_note": "score is relative unusualness in this universe, not a probability.", "payment": {"mode": "x402", "rail": "x402", "price_usd": "0.005", "network": "base"}}, "get_instrument_state_402": {"x402Version": 1, "error": "PAYMENT_REQUIRED", "accepts": [{"scheme": "exact", "network": "base", "maxAmountRequired": "10000", "resource": "https://crypto-resources.com/agents/v0/tools/get_instrument_state", "description": "Full Trap Radar Pro instrument state for one perpetual. Market-state evidence, not investment advice.", "mimeType": "application/json", "payTo": "0x2BC6Fc80C7F6b27C3C83228d2031D78E73b4362e", "maxTimeoutSeconds": 60, "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "extra": {"name": "USD Coin", "version": "2", "cohort": "B", "price_usd": "0.01", "facilitator": "https://facilitator.payai.network"}}], "real": {"instruction": "Sign accepts[0] as EIP-712 TransferWithAuthorization on network Base, USDC contract in accepts[0].asset, domain name/version from accepts[0].extra. Retry the same HTTP request with X-Payment containing the signed x402 payload.", "retry_headers": {"X-Agent-Wallet": "0xYOUR_PAYER_ADDRESS"}}}, "x402_payment_header_payload": {"x402Version": 1, "scheme": "exact", "network": "base", "payload": {"signature": "0x…", "authorization": {"from": "0xYOUR_PAYER_ADDRESS", "to": "0x2BC6Fc80C7F6b27C3C83228d2031D78E73b4362e", "value": "10000", "validAfter": "0", "validBefore": "1735689600", "nonce": "0x…32_bytes_hex…"}}}, "get_instrument_state_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 8, "ttl_seconds": 60, "is_stale": false, "exchange": "binance", "market": "futures", "symbol": "BTCUSDT", "filter": {"symbol": "BTCUSDT", "exchange": "binance", "last_price": 64250.5, "volume_24h_usd": 1500000000, "funding_rate": 0.0001, "age_days": 1200.5}, "indicators": {"rsi_15m": {"rule": "rsi_15m", "indicator": "rsi", "window": "15m", "unit": "", "value": 54.2, "is_ready": true, "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}, "oi_15m_delta_pct": {"rule": "oi_15m_delta_pct", "indicator": "oi", "window": "15m", "unit": "%", "value": -0.18, "is_ready": true, "updated_at": "2026-09-08T14:52:00Z", "is_closed": true}, "volume_spike_120m_ratio": {"rule": "volume_spike_120m_ratio", "indicator": "volume_spike", "window": "120m", "unit": "x", "value": null, "is_ready": false, "updated_at": null, "is_closed": false}}, "indicator_count": 130, "ready_count": 98, "has_data": true, "data_mode": "live", "payment": {"mode": "x402", "rail": "x402", "price_usd": "0.01", "wallet": "0xYOUR_PAYER_ADDRESS", "transaction": "0x…", "network": "base"}, "selection": {"families": ["all"], "windows": ["all"]}}, "historical_validation_200": {"request_id": "6f1c2a0e-4b3d-4c8a-9e11-2b7a0c4d91aa", "condition": "divergence", "condition_version": "cr-scan-1.1.0", "definition_hash": "cr-scan-1.1.0", "data_scope": {"exchange": "any", "market": "futures", "symbol": "universe", "horizons": "any"}, "lookback_days": 90, "overlap_policy": "distinct_scan_hits", "sample": {"size": 0, "insufficient": true, "min_required": 30}, "updated_at": "2026-09-08T14:52:00Z", "freshness_seconds": 0, "is_stale": false, "note": "Insufficient observed sample — valid API response, not an error. Forward-return statistics will appear after enough scan_market hits accumulate. This is not a prediction."}, "errors": {"rate_limited_429": {"error": "rate_limited", "message": "Too many requests"}, "unknown_symbol_404": {"error": "unknown_symbol", "message": "Unknown symbol FOOBAR on binance. This ticker is not in the live catalog. Call get_supported_symbols for the available list: GET https://crypto-resources.com/agents/v0/tools/get_supported_symbols?exchange=binance", "exchange": "binance", "symbol": "FOOBAR", "catalog_tool": "get_supported_symbols", "catalog_url": "https://crypto-resources.com/agents/v0/tools/get_supported_symbols?exchange=binance"}, "payment_failed_402": {"x402Version": 1, "error": "PAYMENT_REQUIRED", "accepts": ["…"], "payment_failure": "x402_payload_required"}}}