{"openapi":"3.1.0","info":{"title":"2s — the (most) everything API","version":"1","summary":"The (most) everything API.","description":"The (most) everything API for AI agents: 575+ pay-per-call endpoints on one origin. More live, ground-truth data than any other x402 service — public records, finance & SEC filings, crypto & web3, security & CVEs, legal, medical, weather, geocoding, and B2B/EDI. A full AI gateway: chat, image, and multi-model consensus across every major model, priced per request in the 402 before you pay. And agent infrastructure with no account: wallet-scoped storage (kv/docs/vectors/files), locks, queues, scheduled callbacks, pub/sub, and watchers that push signed webhooks when the world changes. Pay per call in USDC on Base or Solana via x402 — no API keys, no signup, no subscription. The first x402 API with upto billing: on AI endpoints, authorize the quoted max and settle only your actual usage. Try before you buy: add ?trial=1 (or header X-2s-Trial: 1) to any endpoint for one free real call per endpoint per hour — no wallet needed. New endpoints land constantly.","contact":{"name":"2s","url":"https://2s.io","email":"alley@2s.io"},"x-logo":{"url":"https://2s.io/icon-512.png","altText":"2s"},"x-guidance":"Pay-per-call REST API for AI agents — hundreds of endpoints returning ground-truth data (US public records, company & legal identifiers, finance/SEC, crypto/web3, security & CVEs, medical codes, weather & geocoding, agriculture, energy, maritime, music, and more). Every endpoint is paid per call in USDC via x402 (Base or Solana) — no API key, no signup. Call any endpoint with no auth to get a 402 PaymentRequirements envelope, sign it (EIP-3009 on Base, partial SPL transfer on Solana), and retry with the PAYMENT-SIGNATURE header. Add ?trial=1 for one free real call per endpoint per hour to test before paying. To discover the right endpoint: GET https://2s.io/api/directory for the full catalog, or GET https://2s.io/api/search/endpoints?q=<natural-language task> for a ranked match. Per-call price is on each operation as x-payment-info (from $0.001). Batch up to 50 calls behind one payment via POST https://2s.io/api/batch/run."},"servers":[{"url":"https://2s.io"}],"components":{"responses":{"BadRequest":{"description":"Bad request — invalid parameters."},"PaymentRequired":{"description":"Payment required. Body contains the x402 PaymentRequirements envelope with a multi-network accepts array; the per-call price is in accepts[].amount (and on the operation as x-2s-price). Sign for whichever rail you hold USDC on (EIP-3009 for Base, partial SPL transfer for Solana) and retry with the PAYMENT-SIGNATURE header (X-PAYMENT also accepted for v1 clients).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequiredV2"}}}},"MethodNotAllowed":{"description":"Method not allowed — see `Allow` header for the supported method."},"ServerError":{"description":"Internal server error."},"UpstreamError":{"description":"Upstream provider error."}},"parameters":{"TrialMode":{"name":"trial","in":"query","required":false,"description":"Try before you buy. Set to 1 for one free real call per endpoint per hour — no wallet or payment needed — to verify the endpoint before paying. Equivalent to sending the \"X-2s-Trial: 1\" request header. Works on every endpoint.","schema":{"type":"integer","enum":[1]}}},"securitySchemes":{"x402Payment":{"type":"apiKey","in":"header","name":"PAYMENT-SIGNATURE","description":"x402 protocol v2: base64-encoded PaymentPayload. Call any paid endpoint without auth to receive a 402 with a multi-network PaymentRequirements envelope. Sign for either rail: EIP-3009 transferWithAuthorization (Base USDC) OR a partial SPL token transfer (Solana USDC). Retry with PAYMENT-SIGNATURE header. X-PAYMENT is also accepted for v1 buyer clients. See https://x402.org."}},"schemas":{"Source":{"type":"object","description":"Provenance of the data: upstream provider, source URL, and license.","properties":{"provider":{"type":"string","description":"Upstream data provider."},"url":{"type":"string","description":"Source URL or documentation link."},"license":{"type":"string","description":"License / usage terms for the data."}}},"CallMeta":{"type":"object","description":"Per-call meta envelope — endpoint id, cost, caller kind, settlement details."},"X402PaymentRequiredV2":{"type":"object","description":"x402 v2 PaymentRequired envelope. Pick any entry from accepts[], sign for that rail, retry with the PAYMENT-SIGNATURE header.","required":["x402Version","accepts"],"properties":{"x402Version":{"type":"integer","const":2},"error":{"type":"string","description":"Human-readable reason payment is required."},"resource":{"type":"string","description":"The resource URL being purchased."},"accepts":{"type":"array","description":"Payment requirement options, one per supported network (Base USDC, Solana USDC).","items":{"type":"object","required":["scheme","network","amount","asset","payTo","maxTimeoutSeconds"],"properties":{"scheme":{"type":"string","enum":["exact"]},"network":{"type":"string","description":"CAIP-2 network id, e.g. \"eip155:8453\" (Base) or \"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\"."},"amount":{"type":"string","description":"Price in atomic asset units (USDC has 6 decimals)."},"asset":{"type":"string","description":"Asset contract address / mint."},"payTo":{"type":"string","description":"Treasury address to pay."},"maxTimeoutSeconds":{"type":"integer"},"extra":{"type":"object","description":"Rail-specific extras (EVM: EIP-712 domain name/version; Solana: feePayer).","additionalProperties":true}}}},"extensions":{"type":"object","description":"Optional discovery metadata (e.g. bazaar input/output schemas).","additionalProperties":true}}}}},"paths":{"/api/crypto/address-history":{"get":{"tags":["crypto"],"summary":"Transaction history for an Ethereum address (via Etherscan V2).","description":"Transaction history for an Ethereum address (via Etherscan V2). Returns normal transactions newest-first: hash, block, timestamp, from/to, value (wei + ETH), gas used, gas price, decoded method id + function name, error flag, and any contract created. Paginate with page + offset; bound with startBlock/endBlock. Defaults to Ethereum mainnet; other EVM chains are reachable by chainId where upstream coverage allows. Net-new vs crypto.tx (single-hash receipt).","operationId":"crypto_address-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = transactions.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"hash":{"nullable":true},"blockNumber":{"type":"number","nullable":true},"timestamp":{"type":"string","nullable":true},"from":{"nullable":true},"to":{"nullable":true},"valueWei":{"type":"string","nullable":true},"valueEth":{"type":"number","nullable":true},"gasUsed":{"type":"number","nullable":true},"gasPriceWei":{"type":"string","nullable":true},"methodId":{"nullable":true},"functionName":{"nullable":true},"isError":{"type":"boolean"},"contractAddress":{"type":"string","nullable":true}},"required":["blockNumber","timestamp","valueWei","valueEth","gasUsed","gasPriceWei","isError","contractAddress"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-history","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":false,"description":"EVM chain id; defaults to 1 (Ethereum). Other chains (8453 Base, 137 Polygon, 42161 Arbitrum…) require upstream multichain coverage.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["asc","desc"]}},{"name":"startBlock","in":"query","required":false,"description":"Start block.","schema":{"type":"integer","minimum":0}},{"name":"endBlock","in":"query","required":false,"description":"End block.","schema":{"type":"integer","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-safety":{"get":{"tags":["crypto"],"summary":"Malicious-wallet screen (via GoPlus, free/keyless).","description":"Malicious-wallet screen (via GoPlus, free/keyless). For any EVM address returns risk flags — cybercrime, money laundering, financial crime, darkweb, phishing, stealing/blackmail, fake KYC, mixer, sanctioned, honeypot-related, blacklist doubt and more — plus an overall malicious verdict and hit count. Counterparty risk check before interacting with an address.","operationId":"crypto_address-safety","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [address safety report].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"string"},"address":{"type":"string"},"malicious":{"type":"boolean"},"hitCount":{"type":"number"},"numberOfMaliciousContractsCreated":{"type":"number","nullable":true},"dataSource":{"nullable":true},"flags":{"type":"object","additionalProperties":{"type":"boolean","nullable":true}}},"required":["chainId","address","malicious","hitCount","numberOfMaliciousContractsCreated","flags"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-safety","x-2s-version":null,"x-2s-price":{"usd":0.004998},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004998"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":true,"description":"EVM chain id, e.g. 1, 56, 137, 8453.","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-screen":{"get":{"tags":["crypto"],"summary":"Sanctions-screen a crypto wallet address against the US...","description":"Sanctions-screen a crypto wallet address against the US Treasury OFAC SDN list's published Digital Currency Addresses (BTC/ETH/USDT/XMR and more). Exact match — returns whether the address is sanctioned, and for any hit the listed entity name, OFAC programs, source id, and the currency the address was listed under. Compliance check before transacting. Distinct from crypto.address-safety (GoPlus behavioral risk) — this is regulatory sanctions.","operationId":"crypto_address-screen","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [screen result]; sanctioned=true means the address is OFAC-listed.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"sanctioned":{"type":"boolean"},"matchCount":{"type":"number"},"matches":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sourceList":{"type":"string"},"sourceId":{"type":"string","nullable":true},"entityType":{"type":"string","nullable":true},"programs":{"type":"array","items":{"type":"string"}},"currencies":{"type":"array","items":{"type":"string"}}},"required":["name","sourceList","sourceId","entityType","programs","currencies"],"additionalProperties":false}}},"required":["address","sanctioned","matchCount","matches"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-screen","x-2s-version":null,"x-2s-price":{"usd":0.004998},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004998"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Wallet address (any chain). Case-insensitive.","schema":{"type":"string","minLength":8,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/address-validate":{"get":{"tags":["crypto"],"summary":"Validate a cryptocurrency address with full checksum...","description":"Validate a cryptocurrency address with full checksum verification (not just regex). Returns {chain, address, valid, canonical, format, reason}. Chains: btc (P2PKH, P2SH, Bech32 SegWit v0, Taproot Bech32m), eth (full EIP-55 checksum; non-checksummed flagged), sol (Ed25519 32-byte Base58), ltc (Base58Check L.../M.../3... + ltc1 Bech32), trx (T-prefix Base58Check 0x41), xrp (r-prefix custom Base58), bch (legacy Base58Check + bitcoincash:q... CashAddr). Catches typos via cryptographic checksum; canonical field returns the checksummed/lowercased form.","operationId":"crypto_address-validate","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [validation result] (chain, address, valid, canonical, format, reason); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string","enum":["btc","eth","sol","ltc","trx","xrp","bch"]},"address":{"type":"string","description":"The address as submitted."},"valid":{"type":"boolean"},"canonical":{"type":"string","nullable":true,"description":"Canonical checksummed/normalized form when valid."},"format":{"type":"string","nullable":true,"description":"Sub-format when meaningful, e.g. 'p2pkh', 'eip-55', 'bech32-taproot', 'ed25519'."},"reason":{"type":"string","nullable":true,"description":"Failure reason when valid=false."}},"required":["chain","address","valid","canonical","format","reason"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.address-validate","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"Chain.","schema":{"type":"string","enum":["btc","eth","sol","ltc","trx","xrp","bch"]}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","minLength":1,"maxLength":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/balances":{"get":{"tags":["crypto"],"summary":"Live native + ERC-20 token balances for an EVM address...","description":"Live native + ERC-20 token balances for an EVM address (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Returns the native-coin balance and, for any ERC-20 contract addresses you pass, the symbol, decimals, raw and human-formatted balance — fetched in one multicall. For wallet dashboards, treasury checks, and agent payment/settlement flows.","operationId":"crypto_balances","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one balances object].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"address":{"type":"string"},"native":{"type":"object","properties":{"symbol":{"type":"string"},"raw":{"type":"string"},"balance":{"type":"string"}},"required":["symbol","raw","balance"],"additionalProperties":false},"tokens":{"type":"array","items":{"type":"object","properties":{"contract":{"type":"string"},"symbol":{"nullable":true},"decimals":{"type":"number"},"raw":{"type":"string","nullable":true},"balance":{"type":"string","nullable":true}},"required":["contract","decimals","raw","balance"],"additionalProperties":false}}},"required":["chain","address","native","tokens"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.balances","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"EVM address to read.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"chain","in":"query","required":false,"description":"Default base.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"name":"tokens","in":"query","required":false,"description":"Comma-separated ERC-20 contract addresses (max 20).","schema":{"type":"string","maxLength":900}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-address":{"get":{"tags":["crypto"],"summary":"Bitcoin address summary (free/keyless): confirmed balance...","description":"Bitcoin address summary (free/keyless): confirmed balance (sats + BTC), total received/sent, transaction count, funded/spent output counts, and pending mempool balance + tx count. Works for any BTC address (legacy, SegWit, Taproot). Net-new — our on-chain reads were EVM-only.","operationId":"crypto_btc-address","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [address summary].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"balanceSats":{"type":"number"},"balanceBtc":{"type":"number"},"totalReceivedBtc":{"type":"number"},"totalSentBtc":{"type":"number"},"txCount":{"type":"number","nullable":true},"fundedTxoCount":{"type":"number","nullable":true},"spentTxoCount":{"type":"number","nullable":true},"mempoolBalanceSats":{"type":"number"},"mempoolTxCount":{"type":"number","nullable":true}},"required":["address","balanceSats","balanceBtc","totalReceivedBtc","totalSentBtc","txCount","fundedTxoCount","spentTxoCount","mempoolBalanceSats","mempoolTxCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-address","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Bitcoin address (1.../3.../bc1...).","schema":{"type":"string","minLength":20,"maxLength":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-fees":{"get":{"tags":["crypto"],"summary":"Current Bitcoin network fee rates and mempool backlog from...","description":"Current Bitcoin network fee rates and mempool backlog from mempool.space. Returns recommended fee rates in satoshis per virtual byte for target confirmation speeds (fastest ~next block, half-hour, hour, economy, minimum) plus the current mempool size (transaction count, total vsize, total fees waiting). Keyless, live. The BTC counterpart to crypto.gas-oracle (Ethereum) — fresh, fast-moving network state an agent cannot recall, for wallets, payment timing, and fee estimation.","operationId":"crypto_btc-fees","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [one fee/mempool snapshot]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"recommendedFeesSatPerVByte":{"type":"object","properties":{"fastest":{"type":"number","nullable":true},"halfHour":{"type":"number","nullable":true},"hour":{"type":"number","nullable":true},"economy":{"type":"number","nullable":true},"minimum":{"type":"number","nullable":true}},"required":["fastest","halfHour","hour","economy","minimum"],"additionalProperties":false},"mempool":{"type":"object","properties":{"txCount":{"type":"number","nullable":true},"vsizeBytes":{"type":"number","nullable":true},"totalFeeSat":{"type":"number","nullable":true}},"required":["txCount","vsizeBytes","totalFeeSat"],"additionalProperties":false},"source":{"$ref":"#/components/schemas/Source"},"note":{"type":"string"}},"required":["recommendedFeesSatPerVByte","mempool","source","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-fees","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-mempool":{"get":{"tags":["crypto"],"summary":"Bitcoin mempool state (free/keyless): current unconfirmed...","description":"Bitcoin mempool state (free/keyless): current unconfirmed tx count, total vsize, and total fees, plus the most recent transactions (whale radar) — filter with minBtc to surface only large pending transfers. For congestion monitoring and large-transfer alerts.","operationId":"crypto_btc-mempool","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ summary, recent }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"summary":{"type":"object","properties":{"txCount":{"type":"number","nullable":true},"vsize":{"type":"number","nullable":true},"totalFeeSats":{"type":"number"}},"required":["txCount","vsize","totalFeeSats"],"additionalProperties":false},"recent":{"type":"array","items":{"type":"object","properties":{"txid":{"nullable":true},"valueBtc":{"type":"number"},"valueSats":{"type":"number"},"feeSats":{"type":"number"},"vsize":{"type":"number","nullable":true}},"required":["valueBtc","valueSats","feeSats","vsize"],"additionalProperties":false}}},"required":["summary","recent"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-mempool","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"minBtc","in":"query","required":false,"description":"Only include recent txs >= this BTC value.","schema":{"type":"number","minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-tx":{"get":{"tags":["crypto"],"summary":"Bitcoin transaction lookup by txid (free/keyless)...","description":"Bitcoin transaction lookup by txid (free/keyless): confirmed status + confirmation count (vs current tip), block height + time, fee (sats + BTC), total output value, size/weight, and input/output counts. Distinct from crypto.tx (EVM) — this is Bitcoin.","operationId":"crypto_btc-tx","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [transaction].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"txid":{"nullable":true},"confirmed":{"type":"boolean"},"confirmations":{"type":"number"},"blockHeight":{"type":"number","nullable":true},"blockTime":{"type":"string","nullable":true},"feeSats":{"type":"number"},"feeBtc":{"type":"number"},"valueOutSats":{"type":"number"},"valueOutBtc":{"type":"number"},"sizeBytes":{"type":"number","nullable":true},"weight":{"type":"number","nullable":true},"vinCount":{"type":"number","nullable":true},"voutCount":{"type":"number","nullable":true}},"required":["confirmed","confirmations","blockHeight","blockTime","feeSats","feeBtc","valueOutSats","valueOutBtc","sizeBytes","weight","vinCount","voutCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-tx","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"txid","in":"query","required":true,"description":"Txid.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/btc-utxos":{"get":{"tags":["crypto"],"summary":"Unspent transaction outputs (UTXOs) for a Bitcoin address...","description":"Unspent transaction outputs (UTXOs) for a Bitcoin address (free/keyless): each with txid, output index, value (sats + BTC), confirmation status, and block height. Sorted largest-first. For coin selection, balance verification, and wallet tooling.","operationId":"crypto_btc-utxos","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = UTXOs (largest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"txid":{"nullable":true},"vout":{"type":"number","nullable":true},"valueSats":{"type":"number"},"valueBtc":{"type":"number"},"confirmed":{"type":"boolean","nullable":true},"blockHeight":{"type":"number","nullable":true}},"required":["vout","valueSats","valueBtc","confirmed","blockHeight"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.btc-utxos","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","minLength":20,"maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/cex-klines":{"get":{"tags":["crypto"],"summary":"Centralized-exchange OHLCV candlesticks for a spot trading...","description":"Centralized-exchange OHLCV candlesticks for a spot trading pair (e.g. BTC-USD, ETH-USD, SOL-USD), free/keyless. Pass interval (1m/5m/15m/1h/6h/1d) and limit. Each bar: time, open, high, low, close, volume. Net-new vs crypto.dex-ohlcv (on-chain DEX) — this is CEX spot.","operationId":"crypto_cex-klines","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = OHLCV bars (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string","nullable":true},"open":{"type":"number","nullable":true},"high":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"close":{"type":"number","nullable":true},"volume":{"type":"number","nullable":true}},"required":["time","open","high","low","close","volume"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.cex-klines","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"pair","in":"query","required":true,"description":"Trading pair, e.g. BTC-USD.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{2,10}-[A-Za-z0-9]{2,10}$"}},{"name":"interval","in":"query","required":false,"description":"Interval.","schema":{"type":"string","enum":["1m","5m","15m","1h","6h","1d"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":300}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/cex-ticker":{"get":{"tags":["crypto"],"summary":"Centralized-exchange 24h ticker for a spot pair (e.g.","description":"Centralized-exchange 24h ticker for a spot pair (e.g. BTC-USD), free/keyless: current price, best bid/ask, 24h open/high/low, 24h + 30d volume, and 24h percent change. Real CEX spot quote — distinct from crypto.token-price (CoinGecko aggregate).","operationId":"crypto_cex-ticker","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [ticker].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"pair":{"type":"string"},"price":{"type":"number","nullable":true},"bid":{"type":"number","nullable":true},"ask":{"type":"number","nullable":true},"open24h":{"type":"number","nullable":true},"high24h":{"type":"number","nullable":true},"low24h":{"type":"number","nullable":true},"volume24h":{"type":"number","nullable":true},"volume30d":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true},"time":{"nullable":true}},"required":["pair","price","bid","ask","open24h","high24h","low24h","volume24h","volume30d","change24hPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.cex-ticker","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"pair","in":"query","required":true,"description":"Pair.","schema":{"type":"string","pattern":"^[A-Za-z0-9]{2,10}-[A-Za-z0-9]{2,10}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/chain-tvl-history":{"get":{"tags":["crypto"],"summary":"Historical total DeFi TVL time series for a blockchain (e.g.","description":"Historical total DeFi TVL time series for a blockchain (e.g. Ethereum, Solana, Arbitrum), via DefiLlama (free/keyless). Returns daily { date, tvlUsd } points (most recent N, default 90). For charting a chain's DeFi capital over time. Pair with crypto.defi-chains for the current cross-chain leaderboard.","operationId":"crypto_chain-tvl-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ chain, series }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"number","nullable":true},"tvlUsd":{"type":"number","nullable":true}},"required":["date","tvlUsd"],"additionalProperties":false}}},"required":["chain","series"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.chain-tvl-history","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"Chain name, e.g. Ethereum, Solana, Arbitrum, Base.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Most-recent N daily points (default 90).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/coin":{"get":{"tags":["crypto"],"summary":"Full coin profile by CoinGecko id (e.g.","description":"Full coin profile by CoinGecko id (e.g. bitcoin, ethereum, solana). Returns price, market cap + rank, FDV, 24h volume, all-time high/low with dates, circulating/total/max supply, price changes (1h/24h/7d/30d/1y), categories, and official links (homepage, X, GitHub, subreddit). Richer than crypto.token-price (spot only) and crypto.markets (list row).","operationId":"crypto_coin","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [coin profile].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","nullable":true},"symbol":{"type":"string"},"name":{"type":"string","nullable":true},"marketCapRank":{"type":"number","nullable":true},"categories":{"type":"array","items":{"type":"string"}},"priceUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"athUsd":{"type":"number","nullable":true},"athDate":{"nullable":true},"atlUsd":{"type":"number","nullable":true},"atlDate":{"nullable":true},"circulatingSupply":{"type":"number","nullable":true},"totalSupply":{"type":"number","nullable":true},"maxSupply":{"type":"number","nullable":true},"change1hPct":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true},"change7dPct":{"type":"number","nullable":true},"change30dPct":{"type":"number","nullable":true},"change1yPct":{"type":"number","nullable":true},"homepage":{"type":"string","nullable":true},"twitter":{"type":"string","nullable":true},"github":{"type":"string","nullable":true},"subreddit":{"type":"string","nullable":true}},"required":["id","symbol","name","marketCapRank","categories","priceUsd","marketCapUsd","fdvUsd","volume24hUsd","athUsd","atlUsd","circulatingSupply","totalSupply","maxSupply","change1hPct","change24hPct","change7dPct","change30dPct","change1yPct","homepage","twitter","github","subreddit"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.coin","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":true,"description":"CoinGecko coin id, e.g. bitcoin, ethereum, solana.","schema":{"type":"string","minLength":1,"maxLength":80}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/coin-history":{"get":{"tags":["crypto"],"summary":"Historical market chart for a coin by CoinGecko id...","description":"Historical market chart for a coin by CoinGecko id: time-series of price, market cap, and volume over the last N days (1-365) in USD or another vs-currency. Granularity is auto-selected by range (hourly for short windows, daily for long). For backtests, charts, and trend analysis.","operationId":"crypto_coin-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ prices, marketCaps, volumes }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"prices":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"value":{"type":"number","nullable":true}},"required":["time","value"],"additionalProperties":false}},"marketCaps":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"value":{"type":"number","nullable":true}},"required":["time","value"],"additionalProperties":false}},"volumes":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"value":{"type":"number","nullable":true}},"required":["time","value"],"additionalProperties":false}}},"required":["prices","marketCaps","volumes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.coin-history","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"id","in":"query","required":true,"description":"CoinGecko coin id, e.g. bitcoin.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"days","in":"query","required":false,"description":"Lookback in days (default 7).","schema":{"type":"integer","minimum":1,"maximum":365}},{"name":"vs","in":"query","required":false,"description":"vs-currency (default usd).","schema":{"type":"string","maxLength":10}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/contract":{"get":{"tags":["crypto"],"summary":"Decode an EVM smart contract.","description":"Decode an EVM smart contract. Pass chain (ethereum, base, polygon, arbitrum, optimism, bsc, avalanche) + address; returns whether the contract is source-verified (Sourcify), its name/compiler/language, whether it is a proxy and its implementation address, and human-readable function and event signatures from the ABI. Optionally pass selector (a 0x 4-byte function selector) to decode what it calls — resolved from the contract's own ABI when verified, otherwise from the public 4byte directory. Pairs with crypto.tx (which gives a `to` address + calldata): turn an opaque contract + selector into \"what is this and what does it do.\" Free, keyless.","operationId":"crypto_contract","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items[0] = the contract (verification, ABI signatures, proxy, optional decoded selector).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"address":{"type":"string"},"verified":{"type":"boolean","description":"Source-verified on Sourcify."},"name":{"type":"string","nullable":true},"compiler":{"type":"string","nullable":true},"language":{"type":"string","nullable":true},"isProxy":{"type":"boolean"},"implementation":{"type":"string","nullable":true,"description":"Implementation address if a proxy."},"functionCount":{"type":"integer"},"functions":{"type":"array","items":{"type":"string"},"description":"Function signatures from the ABI."},"events":{"type":"array","items":{"type":"string"},"description":"Event signatures from the ABI."},"decoded":{"type":"object","properties":{"selector":{"type":"string"},"signature":{"type":"string","nullable":true},"source":{"type":"string"}},"required":["selector","signature","source"],"additionalProperties":false,"description":"Decoded selector (when selector passed)."}},"required":["chain","address","verified","name","compiler","language","isProxy","implementation","functionCount","functions","events"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"verified":{"type":"boolean"}},"required":["verified"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.contract","x-2s-version":null,"x-2s-price":{"usd":0.0045},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"EVM chain: ethereum, base, polygon, arbitrum, optimism, bsc, or avalanche.","schema":{"type":"string","enum":["ethereum","base","polygon","arbitrum","optimism","bsc","avalanche"]}},{"name":"address","in":"query","required":true,"description":"0x-prefixed 40-hex contract address.","schema":{"type":"string"}},{"name":"selector","in":"query","required":false,"description":"Optional 0x 4-byte function selector to decode (e.g. 0xa9059cbb).","schema":{"type":"string"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/decode-calldata":{"post":{"tags":["crypto"],"summary":"Decode raw EVM transaction calldata.","description":"Decode raw EVM transaction calldata. POST { data } (0x-prefixed hex). Resolves the 4-byte function selector to its human signature(s) via the openchain.xyz database, then ABI-decodes the parameters (address, uint/int, bool, bytesN, string, bytes, and elementary dynamic arrays). Returns selector, candidate signatures, decoded params, and the raw 32-byte words. For agents inspecting/verifying a transaction before signing. Keyless.","operationId":"crypto_decode-calldata","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [decoded calldata].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"selector":{"type":"string"},"signatures":{"type":"array","items":{"type":"string"}},"decoded":{"type":"object","properties":{"signature":{"type":"string"},"params":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"value":{}},"required":["type"],"additionalProperties":false}}},"required":["signature","params"],"additionalProperties":false,"nullable":true},"rawWords":{"type":"array","items":{"type":"string"}},"note":{"type":"string","nullable":true}},"required":["selector","signatures","decoded","rawWords","note"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.decode-calldata","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","pattern":"^0x?[0-9a-fA-F]{8,}$","maxLength":60000,"description":"Data."}},"required":["data"],"additionalProperties":false}}}},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi":{"get":{"tags":["crypto"],"summary":"DeFi total-value-locked (TVL) metrics via DefiLlama.","description":"DeFi total-value-locked (TVL) metrics via DefiLlama. With no params, returns the top protocols by TVL (name, slug, category, TVL, 1-day and 7-day % change, chains) plus total DeFi TVL across all chains. Pass protocol=<slug> (e.g. lido, aave, uniswap) for a single protocol's TVL, category, momentum, and chains; or chain=<name> (e.g. ethereum, solana, arbitrum) for that chain's TVL. Distinct from crypto.markets/token-price (spot prices) — this is protocol- and chain-level capital locked in DeFi, which an agent can't know from training. Free, keyless.","operationId":"crypto_defi","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = protocol(s) or a chain; meta.mode = protocol|chain|top, meta.totalTvl = total DeFi TVL.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true,"description":"DefiLlama protocol slug."},"category":{"type":"string","nullable":true,"description":"Protocol category (e.g. Liquid Staking, Lending)."},"tvl":{"type":"number","nullable":true,"description":"Total value locked, USD."},"change1d":{"type":"number","nullable":true,"description":"1-day TVL change, %."},"change7d":{"type":"number","nullable":true,"description":"7-day TVL change, %."},"chains":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Chains the protocol is deployed on."},"tokenSymbol":{"type":"string","nullable":true,"description":"Native token symbol (chain mode)."}},"required":["name","slug","category","tvl","change1d","change7d","chains","tokenSymbol"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"mode":{"type":"string"},"totalTvl":{"type":"number","nullable":true}},"required":["mode","totalTvl"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi","x-2s-version":null,"x-2s-price":{"usd":0.0045},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"protocol","in":"query","required":false,"description":"Protocol slug (e.g. lido, aave, uniswap). Omit for the top-protocols list.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"chain","in":"query","required":false,"description":"Chain name (e.g. ethereum, solana, arbitrum) for that chain's TVL.","schema":{"type":"string","minLength":1,"maxLength":60}},{"name":"limit","in":"query","required":false,"description":"Number of protocols in the top list (1–100, default 20).","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-chains":{"get":{"tags":["crypto"],"summary":"DeFi TVL leaderboard across all chains (via DefiLlama...","description":"DeFi TVL leaderboard across all chains (via DefiLlama, free/keyless): every chain ranked by total value locked, with its native token symbol and chain id. Distinct from crypto.defi (which returns one chain's TVL by name) — this is the full ranked cross-chain comparison.","operationId":"crypto_defi-chains","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = chains by TVL desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"tvlUsd":{"type":"number","nullable":true},"tokenSymbol":{"nullable":true},"chainId":{"nullable":true}},"required":["tvlUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-chains","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-fees":{"get":{"tags":["crypto"],"summary":"Protocol fees/revenue or DEX trading volume leaderboards...","description":"Protocol fees/revenue or DEX trading volume leaderboards (via DefiLlama, free/keyless). kind=fees ranks protocols by fees generated; kind=dexs ranks DEXes by trading volume. Each row has 24h/7d/30d/1y totals + 1-month change, plus catalog totals. Sort by total24h/7d/30d. The protocol-economics layer.","operationId":"crypto_defi-fees","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = protocols ranked; meta = catalog totals.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"category":{"nullable":true},"total24h":{"type":"number","nullable":true},"total7d":{"type":"number","nullable":true},"total30d":{"type":"number","nullable":true},"total1y":{"type":"number","nullable":true},"change1m":{"type":"number","nullable":true}},"required":["total24h","total7d","total30d","total1y","change1m"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"total24h":{"type":"number","nullable":true},"total7d":{"type":"number","nullable":true},"total30d":{"type":"number","nullable":true}},"required":["total24h","total7d","total30d"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-fees","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"kind","in":"query","required":false,"description":"Kind.","schema":{"type":"string","enum":["fees","dexs"]}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["total24h","total7d","total30d"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-protocol-history":{"get":{"tags":["crypto"],"summary":"Historical total-value-locked (TVL) time series for a DeFi...","description":"Historical total-value-locked (TVL) time series for a DeFi protocol by slug (e.g. aave, lido, uniswap), via DefiLlama (free/keyless). Returns daily { date, tvlUsd } points (most recent N, default 90) plus the protocol's chains. For charting a protocol's growth or decline over time. Net-new vs crypto.defi (current TVL only).","operationId":"crypto_defi-protocol-history","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [{ name, chains, series }].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"chains":{"type":"array","items":{"type":"string"}},"series":{"type":"array","items":{"type":"object","properties":{"date":{"type":"number","nullable":true},"tvlUsd":{"type":"number","nullable":true}},"required":["date","tvlUsd"],"additionalProperties":false}}},"required":["name","chains","series"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-protocol-history","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"slug","in":"query","required":true,"description":"DefiLlama protocol slug, e.g. aave, lido, uniswap.","schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"limit","in":"query","required":false,"description":"Most-recent N daily points (default 90).","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/defi-yields":{"get":{"tags":["crypto"],"summary":"DeFi yield & lending rates across protocols (via DefiLlama...","description":"DeFi yield & lending rates across protocols (via DefiLlama, free/keyless). Returns pools ranked by APY or TVL with base vs reward APY, TVL, 1d/7d/30d APY trend, stablecoin flag, and IL-risk. Filter by chain, project (aave, compound, lido…), symbol (USDC, ETH…), minApy, minTvlUsd. The yield/lending-rate layer beyond crypto.defi's TVL headline.","operationId":"crypto_defi-yields","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = yield pools.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"project":{"nullable":true},"symbol":{"nullable":true},"chain":{"nullable":true},"tvlUsd":{"type":"number","nullable":true},"apy":{"type":"number","nullable":true},"apyBase":{"type":"number","nullable":true},"apyReward":{"type":"number","nullable":true},"apyPct1D":{"type":"number","nullable":true},"apyPct7D":{"type":"number","nullable":true},"apyPct30D":{"type":"number","nullable":true},"stablecoin":{"type":"boolean","nullable":true},"ilRisk":{"nullable":true},"pool":{"nullable":true}},"required":["tvlUsd","apy","apyBase","apyReward","apyPct1D","apyPct7D","apyPct30D","stablecoin"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.defi-yields","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":false,"description":"Chain.","schema":{"type":"string","maxLength":40}},{"name":"project","in":"query","required":false,"description":"Project.","schema":{"type":"string","maxLength":60}},{"name":"symbol","in":"query","required":false,"description":"Symbol.","schema":{"type":"string","maxLength":40}},{"name":"minApy","in":"query","required":false,"description":"Min apy.","schema":{"type":"number","minimum":0}},{"name":"minTvlUsd","in":"query","required":false,"description":"Min tvl usd.","schema":{"type":"number","minimum":0}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["apy","tvl"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-networks":{"get":{"tags":["crypto"],"summary":"List the 100+ blockchain networks supported by the on-chain...","description":"List the 100+ blockchain networks supported by the on-chain DEX endpoints (via GeckoTerminal, free/keyless). Each entry has the network slug to use with crypto.dex-pools / dex-ohlcv / dex-search / token-info, its display name, and CoinGecko asset-platform id. Call this to discover valid network slugs.","operationId":"crypto_dex-networks","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = supported networks.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"nullable":true},"name":{"nullable":true},"coingeckoAssetPlatformId":{"nullable":true}},"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-networks","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-ohlcv":{"get":{"tags":["crypto"],"summary":"OHLCV candlesticks for a DEX pool (via GeckoTerminal...","description":"OHLCV candlesticks for a DEX pool (via GeckoTerminal, free/keyless). Pass network + pool address + timeframe (day/hour/minute) with optional aggregate (e.g. 4 = 4-hour) and limit. Returns time/open/high/low/close/volumeUsd bars for on-chain technical analysis. Pair with crypto.dex-pools / dex-token-pools to find a pool address.","operationId":"crypto_dex-ohlcv","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = OHLCV bars (newest first).","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number","nullable":true},"open":{"type":"number","nullable":true},"high":{"type":"number","nullable":true},"low":{"type":"number","nullable":true},"close":{"type":"number","nullable":true},"volumeUsd":{"type":"number","nullable":true}},"required":["time","open","high","low","close","volumeUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-ohlcv","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"address","in":"query","required":true,"description":"Pool address (not token address).","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"timeframe","in":"query","required":false,"description":"Timeframe.","schema":{"type":"string","enum":["day","hour","minute"]}},{"name":"aggregate","in":"query","required":false,"description":"Aggregate.","schema":{"type":"integer","minimum":1,"maximum":60}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":1000}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-pools":{"get":{"tags":["crypto"],"summary":"Trending or newly-created DEX liquidity pools on a network...","description":"Trending or newly-created DEX liquidity pools on a network (via GeckoTerminal, free/keyless). kind=trending (hot pools) or kind=new (freshly launched — early-token discovery). Each pool: pair name, base/quote USD price, FDV, market cap, reserve, 24h volume, 24h price change, and 24h buys/sells. Networks: eth, bsc, polygon_pos, base, arbitrum, solana, and 100+ more.","operationId":"crypto_dex-pools","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = DEX pools.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"baseTokenPriceUsd":{"type":"number","nullable":true},"quoteTokenPriceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"reserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"priceChange24hPct":{"type":"number","nullable":true},"buys24h":{"type":"number","nullable":true},"sells24h":{"type":"number","nullable":true},"poolCreatedAt":{"nullable":true}},"required":["baseTokenPriceUsd","quoteTokenPriceUsd","fdvUsd","marketCapUsd","reserveUsd","volume24hUsd","priceChange24hPct","buys24h","sells24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-pools","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"GeckoTerminal network slug, e.g. eth, bsc, base, solana.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"kind","in":"query","required":false,"description":"Kind.","schema":{"type":"string","enum":["trending","new"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-search":{"get":{"tags":["crypto"],"summary":"Search on-chain DEX liquidity pools by token name, symbol...","description":"Search on-chain DEX liquidity pools by token name, symbol, or address (via GeckoTerminal, free/keyless). Optionally scope to one network. Returns matching pools with pair name, USD price, FDV, market cap, reserve, 24h volume + price change, and buys/sells — the fast way to find the right pool/token before pulling OHLCV or token info.","operationId":"crypto_dex-search","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = matching pools.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"baseTokenPriceUsd":{"type":"number","nullable":true},"quoteTokenPriceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"reserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"priceChange24hPct":{"type":"number","nullable":true},"buys24h":{"type":"number","nullable":true},"sells24h":{"type":"number","nullable":true},"poolCreatedAt":{"nullable":true}},"required":["baseTokenPriceUsd","quoteTokenPriceUsd","fdvUsd","marketCapUsd","reserveUsd","volume24hUsd","priceChange24hPct","buys24h","sells24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-search","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":true,"description":"Token name, symbol, or contract address.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"network","in":"query","required":false,"description":"Optional network slug to scope the search.","schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/dex-token-pools":{"get":{"tags":["crypto"],"summary":"All DEX pools trading a given token, by contract address...","description":"All DEX pools trading a given token, by contract address (via GeckoTerminal, free/keyless). Returns each pool's pair, on-chain USD price, FDV/market cap, liquidity reserve, 24h volume + price change, and buys/sells — the on-chain price + liquidity picture for any token across a network's DEXes.","operationId":"crypto_dex-token-pools","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = pools trading the token.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"baseTokenPriceUsd":{"type":"number","nullable":true},"quoteTokenPriceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"reserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"priceChange24hPct":{"type":"number","nullable":true},"buys24h":{"type":"number","nullable":true},"sells24h":{"type":"number","nullable":true},"poolCreatedAt":{"nullable":true}},"required":["baseTokenPriceUsd","quoteTokenPriceUsd","fdvUsd","marketCapUsd","reserveUsd","volume24hUsd","priceChange24hPct","buys24h","sells24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.dex-token-pools","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network slug, e.g. eth, bsc, base, solana.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"address","in":"query","required":true,"description":"Token contract address.","schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":50}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/ens-resolve":{"get":{"tags":["crypto"],"summary":"Resolve ENS (Ethereum Name Service) names and addresses...","description":"Resolve ENS (Ethereum Name Service) names and addresses live on Ethereum mainnet. Pass query as either an ENS name (e.g. \"vitalik.eth\") → returns the Ethereum address it points to, or a 0x address → returns its primary ENS name (reverse record). Either way it also returns the profile text records: avatar, email, url, twitter (com.twitter), github (com.github), and description. A live on-chain lookup agents can't do from their sandbox, and ENS records change after training cutoffs. Wallet UX, address-book resolution, on-chain identity. Returns address:null for an unregistered or unset name.","operationId":"crypto_ens-resolve","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [ENS resolution] (query, name, address, profile records); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"query":{"type":"string"},"name":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"records":{"type":"object","properties":{"avatar":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"twitter":{"type":"string","nullable":true},"github":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["avatar","email","url","twitter","github","description"],"additionalProperties":false}},"required":["query","name","address","records"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.ens-resolve","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"query","in":"query","required":true,"description":"Free-text search query.","schema":{"type":"string","minLength":3,"maxLength":255}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/fear-greed":{"get":{"tags":["crypto"],"summary":"The Crypto Fear & Greed Index - a 0-100 market-sentiment...","description":"The Crypto Fear & Greed Index — a 0–100 market-sentiment gauge (0 = Extreme Fear, 100 = Extreme Greed) updated daily. Returns the current value + its classification (Extreme Fear/Fear/Neutral/Greed/Extreme Greed) and timestamp; pass limit (up to 90) for recent history. Useful as a contrarian sentiment signal. Source: alternative.me.","operationId":"crypto_fear-greed","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = readings (newest first); total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"value":{"type":"number","description":"0–100 (0 = extreme fear, 100 = extreme greed)."},"classification":{"type":"string"},"timestamp":{"type":"string"}},"required":["value","classification","timestamp"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.fear-greed","x-2s-version":null,"x-2s-price":{"usd":0.003},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":90}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/gas-oracle":{"get":{"tags":["crypto"],"summary":"Live EVM gas oracle. Returns latest block baseFeePerGas +...","description":"Live EVM gas oracle. Returns latest block baseFeePerGas + slow/standard/fast tiers derived from priority-fee percentiles (p25/p50/p75) over the trailing 4 blocks, plus a 21,000-gas transfer cost estimate in the chain native unit. Chains: base, ethereum, polygon, arbitrum, optimism. Real-time post-training data, ~5s freshness.","operationId":"crypto_gas-oracle","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [gas oracle] (latest block baseFee, slow/standard/fast priority tiers, 21k transfer estimate); total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"chainId":{"type":"number"},"nativeSymbol":{"type":"string"}},"required":["key","name","chainId","nativeSymbol"],"additionalProperties":false},"block":{"type":"object","properties":{"number":{"type":"number"},"baseFeePerGasWei":{"type":"string","description":"EIP-1559 base fee of the latest block, wei (decimal string)."},"baseFeePerGasGwei":{"type":"number"},"timestamp":{"type":"number","description":"Block time, Unix ms."}},"required":["number","baseFeePerGasWei","baseFeePerGasGwei","timestamp"],"additionalProperties":false},"tiers":{"type":"object","properties":{"slow":{"type":"object","properties":{"priorityFeePerGasGwei":{"type":"number"},"maxFeePerGasGwei":{"type":"number","description":"baseFee + priority, gwei."},"priorityFeePerGasWei":{"type":"string"},"maxFeePerGasWei":{"type":"string"},"transferNativeCost":{"type":"number","description":"Estimated 21,000-gas transfer cost in the chain native unit."}},"required":["priorityFeePerGasGwei","maxFeePerGasGwei","priorityFeePerGasWei","maxFeePerGasWei","transferNativeCost"],"additionalProperties":false},"standard":{"type":"object","properties":{"priorityFeePerGasGwei":{"type":"number"},"maxFeePerGasGwei":{"type":"number"},"priorityFeePerGasWei":{"type":"string"},"maxFeePerGasWei":{"type":"string"},"transferNativeCost":{"type":"number"}},"required":["priorityFeePerGasGwei","maxFeePerGasGwei","priorityFeePerGasWei","maxFeePerGasWei","transferNativeCost"],"additionalProperties":false},"fast":{"type":"object","properties":{"priorityFeePerGasGwei":{"type":"number"},"maxFeePerGasGwei":{"type":"number"},"priorityFeePerGasWei":{"type":"string"},"maxFeePerGasWei":{"type":"string"},"transferNativeCost":{"type":"number"}},"required":["priorityFeePerGasGwei","maxFeePerGasGwei","priorityFeePerGasWei","maxFeePerGasWei","transferNativeCost"],"additionalProperties":false}},"required":["slow","standard","fast"],"additionalProperties":false,"description":"Priority-fee percentiles (slow=p25, standard=p50, fast=p75) over the trailing 4 blocks."},"source":{"type":"object","properties":{"provider":{"type":"string"},"rpcEndpoint":{"type":"string"},"method":{"type":"string"},"license":{"type":"string"}},"required":["provider","rpcEndpoint","method","license"],"additionalProperties":false}},"required":["chain","block","tiers","source"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.gas-oracle","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"EVM chain to query: base | ethereum | polygon | arbitrum | optimism.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/global":{"get":{"tags":["crypto"],"summary":"Whole-crypto-market overview: total market cap (USD), total...","description":"Whole-crypto-market overview: total market cap (USD), total 24h volume, 24h market-cap % change, Bitcoin + Ethereum dominance, count of active cryptocurrencies and markets. Source: CoinGecko.","operationId":"crypto_global","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [global market overview]; total = 1.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"totalMarketCapUsd":{"type":"number","nullable":true},"totalVolume24hUsd":{"type":"number","nullable":true},"marketCapChange24hPct":{"type":"number","nullable":true},"btcDominancePct":{"type":"number","nullable":true},"ethDominancePct":{"type":"number","nullable":true},"activeCryptocurrencies":{"type":"number","nullable":true},"markets":{"type":"number","nullable":true}},"required":["totalMarketCapUsd","totalVolume24hUsd","marketCapChange24hPct","btcDominancePct","ethDominancePct","activeCryptocurrencies","markets"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.global","x-2s-version":null,"x-2s-price":{"usd":0.003},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/hyperliquid-funding":{"get":{"tags":["crypto"],"summary":"Live perp funding rates, open interest, and mark/oracle/mid...","description":"Live perp funding rates, open interest, and mark/oracle/mid prices across 200+ Hyperliquid perpetuals (free/keyless). Each row: coin, hourly funding rate, open interest, mark/oracle/mid price, premium, prior-day price, 24h notional volume, max leverage. Filter by coin; sort by oi, volume, or funding. On-chain perp microstructure for funding-arb and OI signals.","operationId":"crypto_hyperliquid-funding","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = perps.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string","nullable":true},"maxLeverage":{"type":"number","nullable":true},"fundingHourly":{"type":"number","nullable":true},"openInterest":{"type":"number","nullable":true},"markPx":{"type":"number","nullable":true},"oraclePx":{"type":"number","nullable":true},"midPx":{"type":"number","nullable":true},"premium":{"type":"number","nullable":true},"prevDayPx":{"type":"number","nullable":true},"dayNotionalVolume":{"type":"number","nullable":true}},"required":["coin","maxLeverage","fundingHourly","openInterest","markPx","oraclePx","midPx","premium","prevDayPx","dayNotionalVolume"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.hyperliquid-funding","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"coin","in":"query","required":false,"description":"Coin.","schema":{"type":"string","maxLength":40}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["oi","volume","funding"]}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/hyperliquid-predicted-funding":{"get":{"tags":["crypto"],"summary":"Predicted next funding rates per coin across venues...","description":"Predicted next funding rates per coin across venues (Hyperliquid + Binance/Bybit perps), free/keyless. For each coin, a list of venues with predicted funding rate, next funding time, and funding interval — for cross-venue funding-rate arbitrage. Filter by coin.","operationId":"crypto_hyperliquid-predicted-funding","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = coins with per-venue predicted funding.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string","nullable":true},"venues":{"type":"array","items":{"type":"object","properties":{"venue":{"type":"string"},"fundingRate":{"type":"number","nullable":true},"nextFundingTime":{"type":"number","nullable":true},"fundingIntervalHours":{"type":"number","nullable":true}},"required":["venue","fundingRate","nextFundingTime","fundingIntervalHours"],"additionalProperties":false}}},"required":["coin","venues"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.hyperliquid-predicted-funding","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"coin","in":"query","required":false,"description":"Coin.","schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":250}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/kimchi-premium":{"get":{"tags":["crypto"],"summary":"The \"kimchi premium\" - how much higher a crypto asset...","description":"The \"kimchi premium\" — how much higher a crypto asset trades on Korean exchanges (Upbit, KRW) than its global USD price, as a percent. Computed as (Upbit KRW price / (global USD price × USD/KRW)) − 1. Pass symbol = ticker(s), comma-separated up to 10 (default BTC); supported majors include BTC, ETH, XRP, SOL, DOGE, ADA, TRX and more. Returns per symbol { krwPrice, usdPrice, usdKrw, globalUsdInKrw, premiumPct }. Per-symbol resilient (one unlisted symbol does not fail the rest); unresolved symbols are reported in meta.errors. Live blend of Upbit (KRW price) + CoinGecko (global USD) + ECB/Frankfurter (USD/KRW FX).","operationId":"crypto_kimchi-premium","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-symbol kimchi-premium rows; total = rows returned; meta.errors lists symbols that could not be resolved.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"krwPrice":{"type":"number","description":"Upbit KRW spot price."},"usdPrice":{"type":"number","description":"Global USD spot price (CoinGecko)."},"usdKrw":{"type":"number","description":"USD/KRW reference FX rate (ECB)."},"globalUsdInKrw":{"type":"number","description":"usdPrice * usdKrw — the global price expressed in KRW."},"premiumPct":{"type":"number","description":"(krwPrice / globalUsdInKrw - 1) * 100. Positive = Korea trades richer."}},"required":["symbol","krwPrice","usdPrice","usdKrw","globalUsdInKrw","premiumPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"usdKrw":{"type":"number"},"errors":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"error":{"type":"string"}},"required":["symbol","error"],"additionalProperties":false}},"asOf":{"type":"string"}},"required":["usdKrw","errors","asOf"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.kimchi-premium","x-2s-version":null,"x-2s-price":{"usd":0.012},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.012000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"symbol","in":"query","required":false,"description":"Comma-separated ticker symbols, up to 10 (default BTC). E.g. \"BTC,ETH,XRP,SOL\".","schema":{"allOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":120}],"default":"BTC"},{"type":"array","items":{"type":"string","pattern":"^[A-Z0-9]{2,12}$"},"minItems":1,"maxItems":10}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/markets":{"get":{"tags":["crypto"],"summary":"Top cryptocurrencies by market cap with live price, market...","description":"Top cryptocurrencies by market cap with live price, market cap, 24h volume, and 24h + 7d % change. Pass limit (1–100, default 20). Source: CoinGecko. For a single token use crypto.token-price; for the whole-market overview use crypto.global.","operationId":"crypto_markets","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = top coins by market cap; total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"number","nullable":true},"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"priceUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true},"change7dPct":{"type":"number","nullable":true}},"required":["rank","id","symbol","name","priceUsd","marketCapUsd","volume24hUsd","change24hPct","change7dPct"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.markets","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":100}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/nft":{"get":{"tags":["crypto"],"summary":"Live ERC-721 NFT read (Base, Ethereum, Polygon, Arbitrum...","description":"Live ERC-721 NFT read (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Given a contract + tokenId: returns current owner, collection name/symbol, and tokenURI (IPFS auto-resolved to a gateway URL). Pass metadata=1 to also fetch and normalize the token's JSON metadata (name, description, image, attributes). For NFT provenance, ownership checks, and gallery rendering.","operationId":"crypto_nft","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one NFT read].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"contract":{"type":"string"},"tokenId":{"type":"string"},"owner":{"nullable":true},"collectionName":{"nullable":true},"collectionSymbol":{"nullable":true},"tokenURI":{"type":"string","nullable":true},"metadata":{"type":"object","properties":{"name":{"nullable":true},"description":{"nullable":true},"image":{"type":"string","nullable":true},"attributes":{"type":"array","items":{},"nullable":true}},"required":["image","attributes"],"additionalProperties":false,"nullable":true}},"required":["chain","contract","tokenId","tokenURI","metadata"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.nft","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"NFT contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"tokenId","in":"query","required":true,"description":"Token id (decimal).","schema":{"type":"string","pattern":"^\\d+$","maxLength":80}},{"name":"chain","in":"query","required":false,"description":"Default ethereum.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"name":"metadata","in":"query","required":false,"description":"1 to also fetch token JSON metadata.","schema":{"type":"string","enum":["0","1","true","false"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/nft-security":{"get":{"tags":["crypto"],"summary":"NFT collection risk screening via GoPlus (free, keyless).","description":"NFT collection risk screening via GoPlus (free, keyless). For an ERC-721/1155 contract: verification/trust-list status, open-source + proxy flags, privileged-minting, restricted-approval, transfer-without-approval, metadata-frozen and self-destruct risks, plus owner count and volume stats. Screen a collection before minting, buying, or approving — complements crypto.nft (reads) and crypto.token-safety.","operationId":"crypto_nft-security","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one NFT-security report].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"string"},"address":{"type":"string"},"nftName":{"nullable":true},"nftSymbol":{"nullable":true},"verified":{"type":"boolean","nullable":true},"onTrustList":{"type":"boolean","nullable":true},"isOpenSource":{"type":"boolean","nullable":true},"isProxy":{"type":"boolean","nullable":true},"privilegedMinting":{"type":"boolean","nullable":true},"restrictedApproval":{"type":"boolean","nullable":true},"transferWithoutApproval":{"type":"boolean","nullable":true},"metadataFrozen":{"type":"boolean","nullable":true},"selfDestruct":{"type":"boolean","nullable":true},"ownerNumber":{"type":"number","nullable":true},"totalVolume":{"type":"number","nullable":true},"tradedVolume24h":{"type":"number","nullable":true},"averagePrice24h":{"type":"number","nullable":true},"creatorAddress":{"nullable":true}},"required":["chainId","address","verified","onTrustList","isOpenSource","isProxy","privilegedMinting","restrictedApproval","transferWithoutApproval","metadataFrozen","selfDestruct","ownerNumber","totalVolume","tradedVolume24h","averagePrice24h"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.nft-security","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"NFT contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"chainId","in":"query","required":false,"description":"EVM chain id (default 1 = Ethereum).","schema":{"type":"integer","exclusiveMinimum":true,"minimum":0}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/stablecoins":{"get":{"tags":["crypto"],"summary":"Stablecoin supply leaderboard (via DefiLlama...","description":"Stablecoin supply leaderboard (via DefiLlama, free/keyless): the largest stablecoins by circulating USD, with peg type (USD/EUR/…), peg mechanism (fiat-backed, crypto-backed, algorithmic), and current price. For tracking stablecoin market share and de-peg risk.","operationId":"crypto_stablecoins","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = stablecoins by circulating USD desc.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"name":{"nullable":true},"symbol":{"nullable":true},"pegType":{"nullable":true},"pegMechanism":{"nullable":true},"price":{"type":"number","nullable":true},"circulatingUsd":{"type":"number","nullable":true}},"required":["price","circulatingUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.stablecoins","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum number of results to return.","schema":{"type":"integer","minimum":1,"maximum":200}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-info":{"get":{"tags":["crypto"],"summary":"On-chain token metrics by contract address (via...","description":"On-chain token metrics by contract address (via GeckoTerminal, free/keyless): name, symbol, decimals, on-chain USD price, FDV, market cap, total reserve in USD, 24h volume, total + normalized supply, image, and CoinGecko id. Distinct from crypto.token-price (CoinGecko aggregate spot) — this is DEX-derived on-chain data for any token across 100+ networks.","operationId":"crypto_token-info","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [token info].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"address":{"nullable":true},"name":{"nullable":true},"symbol":{"nullable":true},"decimals":{"type":"number","nullable":true},"imageUrl":{"nullable":true},"coingeckoCoinId":{"nullable":true},"priceUsd":{"type":"number","nullable":true},"fdvUsd":{"type":"number","nullable":true},"marketCapUsd":{"type":"number","nullable":true},"totalReserveUsd":{"type":"number","nullable":true},"volume24hUsd":{"type":"number","nullable":true},"totalSupply":{"type":"string","nullable":true},"normalizedTotalSupply":{"type":"string","nullable":true}},"required":["decimals","priceUsd","fdvUsd","marketCapUsd","totalReserveUsd","volume24hUsd","totalSupply","normalizedTotalSupply"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-info","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"network","in":"query","required":true,"description":"Network slug, e.g. eth, bsc, base, solana.","schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"address","in":"query","required":true,"description":"Token contract address.","schema":{"type":"string","minLength":1,"maxLength":120}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-metadata":{"get":{"tags":["crypto"],"summary":"Live on-chain token metadata for an ERC-20 or ERC-721...","description":"Live on-chain token metadata for an ERC-20 or ERC-721 contract (Base, Ethereum, Polygon, Arbitrum, Optimism; keyless). Returns name, symbol, decimals, detected standard, and total supply (raw + formatted). The authoritative read straight from the contract — complements crypto.token-price and crypto.contract (ABI/source).","operationId":"crypto_token-metadata","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one token-metadata object].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"string"},"contract":{"type":"string"},"name":{"nullable":true},"symbol":{"nullable":true},"decimals":{"type":"number","nullable":true},"standard":{"type":"string"},"totalSupply":{"type":"string","nullable":true},"totalSupplyFormatted":{"type":"string","nullable":true}},"required":["chain","contract","decimals","standard","totalSupply","totalSupplyFormatted"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-metadata","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"address","in":"query","required":true,"description":"Token contract address.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"chain","in":"query","required":false,"description":"Default base.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-price":{"get":{"tags":["crypto"],"summary":"Current spot price and market data for crypto assets.","description":"Current spot price and market data for crypto assets. Pass ids as comma-separated CoinGecko asset ids (e.g. bitcoin, ethereum, solana, usd-coin — lowercase id, not ticker symbol; up to 25 per call) and optionally vs (comma-separated fiat/crypto quote currencies, default usd). Returns per-asset price, market cap, 24h volume, and 24h percent change, plus the data timestamp. Live market data past any training cutoff. Price data by CoinGecko.","operationId":"crypto_token-price","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = per-asset spot price/market cap/24h volume/24h change per quote currency; total = null (no upstream count); meta.asOf is the data timestamp.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"CoinGecko asset id."},"quotes":{"type":"object","additionalProperties":{"type":"object","properties":{"price":{"type":"number","nullable":true},"marketCap":{"type":"number","nullable":true},"volume24h":{"type":"number","nullable":true},"change24hPct":{"type":"number","nullable":true}},"required":["price","marketCap","volume24h","change24hPct"],"additionalProperties":false}}},"required":["id","quotes"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"},"meta":{"type":"object","properties":{"asOf":{"type":"string"}},"required":["asOf"],"additionalProperties":false}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-price","x-2s-version":null,"x-2s-price":{"usd":0.003},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"ids","in":"query","required":true,"description":"Comma-separated CoinGecko asset ids (lowercase), e.g. \"bitcoin,ethereum\". Max 25.","schema":{"allOf":[{"type":"string","minLength":2,"maxLength":600},{"type":"array","items":{"type":"string","pattern":"^[a-z0-9-]+$"},"minItems":1,"maxItems":25}]}},{"name":"vs","in":"query","required":false,"description":"Vs.","schema":{"allOf":[{"anyOf":[{"not":{}},{"type":"string","maxLength":60}],"default":"usd"},{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,10}$"},"minItems":1,"maxItems":5}]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-safety":{"get":{"tags":["crypto"],"summary":"Token honeypot & rug-pull risk screen (via GoPlus...","description":"Token honeypot & rug-pull risk screen (via GoPlus, free/keyless). For an ERC-20 on any EVM chain, returns honeypot flag, buy/sell tax, open-source/proxy/mintable status, hidden-owner / take-back-ownership / selfdestruct / external-call risks, blacklist/whitelist/anti-whale flags, holder count, and owner/creator concentration. Essential pre-trade safety check for agents — the security layer competitors charge for.","operationId":"crypto_token-safety","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [token safety report].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chainId":{"type":"string"},"address":{"type":"string"},"tokenName":{"nullable":true},"tokenSymbol":{"nullable":true},"isHoneypot":{"type":"boolean","nullable":true},"buyTax":{"type":"number","nullable":true},"sellTax":{"type":"number","nullable":true},"isOpenSource":{"type":"boolean","nullable":true},"isProxy":{"type":"boolean","nullable":true},"isMintable":{"type":"boolean","nullable":true},"canTakeBackOwnership":{"type":"boolean","nullable":true},"hiddenOwner":{"type":"boolean","nullable":true},"selfdestruct":{"type":"boolean","nullable":true},"externalCall":{"type":"boolean","nullable":true},"isBlacklisted":{"type":"boolean","nullable":true},"isWhitelisted":{"type":"boolean","nullable":true},"isAntiWhale":{"type":"boolean","nullable":true},"slippageModifiable":{"type":"boolean","nullable":true},"isInDex":{"type":"boolean","nullable":true},"isInCex":{"type":"boolean","nullable":true},"holderCount":{"type":"number","nullable":true},"ownerAddress":{"nullable":true},"creatorAddress":{"nullable":true},"ownerPercent":{"type":"number","nullable":true},"creatorPercent":{"type":"number","nullable":true}},"required":["chainId","address","isHoneypot","buyTax","sellTax","isOpenSource","isProxy","isMintable","canTakeBackOwnership","hiddenOwner","selfdestruct","externalCall","isBlacklisted","isWhitelisted","isAntiWhale","slippageModifiable","isInDex","isInCex","holderCount","ownerPercent","creatorPercent"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-safety","x-2s-version":null,"x-2s-price":{"usd":0.004998},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004998"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":true,"description":"EVM chain id, e.g. 1 (Ethereum), 56 (BSC), 137 (Polygon), 8453 (Base).","schema":{"type":"string","minLength":1,"maxLength":20}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/token-transfers":{"get":{"tags":["crypto"],"summary":"ERC-20 token transfer history for an Ethereum address (via...","description":"ERC-20 token transfer history for an Ethereum address (via Etherscan V2). Each transfer: hash, block, timestamp, from/to, token contract, name, symbol, decimals, and value (raw + decimal-adjusted). Optionally filter to one token contract. Paginate with page + offset. Defaults to Ethereum mainnet; other EVM chains by chainId where upstream coverage allows. Trace what tokens a wallet sent/received.","operationId":"crypto_token-transfers","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = ERC-20 transfers.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"hash":{"nullable":true},"blockNumber":{"type":"number","nullable":true},"timestamp":{"type":"string","nullable":true},"from":{"nullable":true},"to":{"nullable":true},"contractAddress":{"nullable":true},"tokenName":{"nullable":true},"tokenSymbol":{"nullable":true},"tokenDecimal":{"type":"number","nullable":true},"valueRaw":{"type":"string","nullable":true},"value":{"type":"number","nullable":true}},"required":["blockNumber","timestamp","tokenDecimal","valueRaw","value"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.token-transfers","x-2s-version":null,"x-2s-price":{"usd":0.0036},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003600"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chainId","in":"query","required":false,"description":"EVM chain id; defaults to 1 (Ethereum). Other chains require upstream multichain coverage.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"address","in":"query","required":true,"description":"Street address or full address string.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"contractAddress","in":"query","required":false,"description":"Filter to one ERC-20 contract.","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"}},{"name":"page","in":"query","required":false,"description":"Page number (1-based) for paginated results.","schema":{"type":"integer","minimum":1}},{"name":"offset","in":"query","required":false,"description":"Number of results to skip before returning (pagination offset).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort","in":"query","required":false,"description":"Field to sort results by.","schema":{"type":"string","enum":["asc","desc"]}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/trending":{"get":{"tags":["crypto"],"summary":"The most-searched trending cryptocurrencies on CoinGecko...","description":"The most-searched trending cryptocurrencies on CoinGecko right now (last 24h), each with symbol, name, market-cap rank, and price. A real-time popularity/attention signal. Source: CoinGecko.","operationId":"crypto_trending","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = trending coins (most-searched first); total = count.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string"},"marketCapRank":{"type":"number","nullable":true},"priceUsd":{"type":"number","nullable":true}},"required":["id","symbol","name","marketCapRank","priceUsd"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.trending","x-2s-version":null,"x-2s-price":{"usd":0.003},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"parameters":[{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/tx":{"get":{"tags":["crypto"],"summary":"Live EVM transaction status and receipt lookup.","description":"Live EVM transaction status and receipt lookup. Give a transaction hash + chain and get back whether it mined successfully, reverted, or is still pending in the mempool, plus block number, confirmations, timestamp, sender and recipient, value transferred (native unit), gas used, effective gas price, total fee paid, any contract created, and event-log count. Chains: base, ethereum, polygon, arbitrum, optimism. Real-time post-training chain state — use it to confirm a payment settled, detect a reverted transaction, or wait for confirmations before acting. Unknown hash returns 404. Sibling of /api/crypto/gas-oracle (fees) and /api/crypto/address-validate (format).","operationId":"crypto_tx","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized envelope: items = [the transaction] with status (success | reverted | pending), block, confirmations, from/to, value (native), gasUsed, effectiveGasPriceGwei, feeNative, contractAddress, logCount; total = 1. 404 if the hash is unknown on that chain.","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"chain":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"chainId":{"type":"number"},"nativeSymbol":{"type":"string"}},"required":["key","name","chainId","nativeSymbol"],"additionalProperties":false},"hash":{"type":"string"},"status":{"type":"string","enum":["success","reverted","pending"]},"mined":{"type":"boolean"},"blockNumber":{"type":"number","nullable":true,"description":"Null while pending."},"blockTimestamp":{"type":"number","nullable":true,"description":"Block time, Unix ms; null while pending."},"confirmations":{"type":"number","description":"Blocks on top of the tx block, inclusive of its own; 0 while pending."},"from":{"type":"string"},"to":{"type":"string","nullable":true,"description":"Null for contract-creation transactions."},"contractAddress":{"type":"string","nullable":true,"description":"Contract created, if this was a contract-creation tx."},"nonce":{"type":"number"},"valueNative":{"type":"string","description":"Value transferred in the chain native unit (decimal string)."},"valueWei":{"type":"string"},"gasUsed":{"type":"string","nullable":true,"description":"Gas units consumed; null while pending."},"effectiveGasPriceGwei":{"type":"string","nullable":true},"feeNative":{"type":"string","nullable":true,"description":"Total fee = gasUsed × effectiveGasPrice, native unit; null while pending."},"logCount":{"type":"number","nullable":true,"description":"Event logs emitted; null while pending."}},"required":["chain","hash","status","mined","blockNumber","blockTimestamp","confirmations","from","to","contractAddress","nonce","valueNative","valueWei","gasUsed","effectiveGasPriceGwei","feeNative","logCount"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.tx","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"chain","in":"query","required":true,"description":"EVM chain to query: base | ethereum | polygon | arbitrum | optimism.","schema":{"type":"string","enum":["base","ethereum","polygon","arbitrum","optimism"]}},{"name":"hash","in":"query","required":true,"description":"Transaction hash: 0x followed by 64 hex characters.","schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},{"$ref":"#/components/parameters/TrialMode"}]}},"/api/crypto/vrf":{"get":{"tags":["crypto"],"summary":"Verifiable random function - deterministic, publicly...","description":"Verifiable random function — deterministic, publicly verifiable randomness bound to your seed and signed by the 2s key. proof = deterministic EIP-191 signature over the seed (same seed always yields the same proof, so the outcome cannot be re-rolled or cherry-picked); random = keccak256(proof), a uniform 32-byte value. Returns the seed, signed message, proof, signer address, random (hex + uint + float in [0,1)). Verify offline: recover the signer from (message, proof) and confirm keccak256(proof) == random. For provably-fair draws, lotteries, sortition, and tie-breaks between agents.","operationId":"crypto_vrf","deprecated":false,"security":[{"x402Payment":[]}],"responses":{"200":{"description":"Normalized: items = [one VRF output with verifiable proof].","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]},"items":{"type":"array","items":{"type":"object","properties":{"seed":{"type":"string"},"signer":{"type":"string"},"alg":{"type":"string"},"version":{"type":"string"},"message":{"type":"string"},"proof":{"type":"string"},"random":{"type":"string"},"randomUint":{"type":"string"},"randomFloat":{"type":"number"}},"required":["seed","signer","alg","version","message","proof","random","randomUint","randomFloat"],"additionalProperties":false}},"total":{"type":"integer","nullable":true,"description":"Total matching rows upstream; null when unknown."},"source":{"$ref":"#/components/schemas/Source"}},"required":["ok","items","total","source"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/CallMeta"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"402":{"$ref":"#/components/responses/PaymentRequired"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"500":{"$ref":"#/components/responses/ServerError"},"502":{"$ref":"#/components/responses/UpstreamError"}},"x-2s-id":"crypto.vrf","x-2s-version":null,"x-2s-price":{"usd":0.0025},"x-2s-accepts":["x402"],"x-2s-response-shape":"normalized","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002500"},"protocols":[{"x402":{}}]},"parameters":[{"name":"seed","in":"query","required":true,"description":"Any seed string — a request id, block hash, commitment, etc.","schema":{"type":"string","minLength":1,"maxLength":256}},{"$ref":"#/components/parameters/TrialMode"}]}}}}