{"openapi":"3.1.0","info":{"title":"Tollkit Chain","version":"0.27.0","description":"Wallet balances, tokens, transactions and prices on Base, Ethereum and Solana; crypto news, Hyperliquid perps, a market pulse and Chainlink price history. Other Tollkit tools are described at: https://extract.tollkit.dev/openapi.json, https://attest.tollkit.dev/openapi.json, https://web.tollkit.dev/openapi.json, https://data.tollkit.dev/openapi.json.","x-guidance":"Call any operation with POST and the JSON body its schema shows. Without payment you get HTTP 402 with the exact price in USDC on Base or Solana; pay with any x402 client and repeat the request. Failed calls (any 4xx or 5xx) are never charged. Each operation's description says what it returns and which inputs are refused for free.","contact":{"email":"hello@tollkit.dev"}},"servers":[{"url":"https://chain.tollkit.dev"}],"paths":{"/chain/balance":{"post":{"operationId":"walletBalance","summary":"Wallet balance","description":"Wallet balance on Base, Ethereum or Solana: give an address, get its native ETH or SOL plus USDC (and USDT on Ethereum and Solana), and any other tokens you list (up to 20), with symbols and decimals applied. Read live from the chain. $0.002 per call; a bad address or an RPC failure is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"Wallet (or contract) address to check."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."},"tokens":{"type":"array","maxItems":20,"items":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$"},"description":"Extra ERC-20 contracts (or SPL mints on Solana) to include."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","address","native","tokens"],"properties":{"chain":{"type":"string"},"address":{"type":"string"},"is_contract":{"type":"boolean"},"native":{"type":"object","properties":{"symbol":{"type":"string"},"balance":{"type":"string"},"balance_wei":{"type":"string"}}},"tokens":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"decimals":{"type":"integer"},"balance":{"type":"string"},"balance_raw":{"type":"string"},"error":{"type":"string","description":"not_erc20 when the address isn't a token."}}}},"block_number":{"type":"integer"},"slot":{"type":"integer","description":"Solana only."},"checked_at":{"type":"string"},"explorer_url":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/token":{"post":{"operationId":"tokenInfo","summary":"Token info","description":"Token info on Base, Ethereum or Solana: give an ERC-20 contract or SPL mint address, get its name, symbol, decimals and total supply (plus mint and freeze authority on Solana), read live from the chain. $0.002 per call; an address that isn't a token is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"ERC-20 contract, or SPL mint on Solana."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","address","decimals","total_supply"],"properties":{"chain":{"type":"string"},"address":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"decimals":{"type":"integer"},"total_supply":{"type":"string"},"total_supply_raw":{"type":"string"},"checked_at":{"type":"string"},"explorer_url":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/tx":{"post":{"operationId":"transactionLookup","summary":"Transaction lookup","description":"Transaction lookup on Base, Ethereum or Solana: give a tx hash or signature, get its status, time, sender, fee and every token movement it made, with symbols and amounts (ERC-20 transfers; on Solana, SOL and token balance changes). $0.002 per call; a hash that isn't found is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["hash"],"properties":{"hash":{"type":"string","pattern":"^(0x[0-9a-fA-F]{64}|[1-9A-HJ-NP-Za-km-z]{64,88})$","description":"Transaction hash, or base58 signature on Solana."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","hash","status"],"properties":{"chain":{"type":"string"},"hash":{"type":"string"},"status":{"type":"string","enum":["success","reverted","pending","failed"]},"block_number":{"type":["integer","null"]},"timestamp":{"type":["string","null"]},"from":{"type":"string"},"to":{"type":["string","null"]},"contract_created":{"type":["string","null"]},"value_eth":{"type":"string"},"value_wei":{"type":"string"},"fee_eth":{"type":["string","null"]},"gas_used":{"type":["string","null"]},"method_id":{"type":["string","null"]},"token_transfers":{"type":"array","items":{"type":"object","properties":{"token":{"type":"string"},"symbol":{"type":["string","null"]},"from":{"type":"string"},"to":{"type":"string"},"amount":{"type":["string","null"]},"amount_raw":{"type":"string"}}}},"token_transfers_total":{"type":"integer"},"explorer_url":{"type":"string"},"token_changes":{"type":"array","description":"Solana only: per-owner token balance changes.","items":{"type":"object","properties":{"owner":{"type":"string"},"mint":{"type":"string"},"symbol":{"type":["string","null"]},"change":{"type":"string"}}}}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/price":{"post":{"operationId":"tokenPrice","summary":"Token price","description":"Token price in USD from on-chain pools, on Base, Ethereum or Solana: give a token, get its current price from its deepest Uniswap v3 pool (Orca Whirlpool on Solana) against USDC or WETH/SOL, with the pool and its depth, and a flag when liquidity is thin. Read live from the chain, not a price API. $0.001 per call; a token with no pool is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"ERC-20 contract or SPL mint to price."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","token","price_usd","source","low_liquidity","priced_at"],"properties":{"chain":{"type":"string"},"token":{"type":"string"},"symbol":{"type":["string","null"]},"name":{"type":["string","null"]},"price_usd":{"type":"number"},"source":{"type":"object","properties":{"dex":{"type":"string"},"pool":{"type":"string"},"fee_tier":{"type":"integer"},"quote_token":{"type":"string"}}},"pool_depth_usd":{"type":"integer","description":"USD value of the quote token the pool holds: how much buying it could absorb."},"low_liquidity":{"type":"boolean","description":"True under $10,000 of depth; treat the price as indicative."},"pools_checked":{"type":"integer"},"priced_at":{"type":"string"},"note":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/check":{"post":{"operationId":"tokenCheck","summary":"Token check","description":"Token check before you buy, send or accept a token, on Base, Ethereum or Solana: give a token address, get what it is (name, symbol, supply), its USD price and pool depth, and plain warnings read from the chain: thin or no liquidity; on Base and Ethereum who owns the contract and whether it is upgradeable or can mint, pause, blacklist or set fees; on Solana an active mint or freeze authority. Facts, not a rating. $0.004 per call; an address that isn't a token is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"ERC-20 contract or SPL mint."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","token","warnings"],"properties":{"chain":{"type":"string"},"token":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"decimals":{"type":"integer"},"total_supply":{"type":"string"},"mint_authority":{"type":["string","null"]},"freeze_authority":{"type":["string","null"]},"price_usd":{"type":["number","null"]},"pool_depth_usd":{"type":["integer","null"]},"controls":{"type":["object","null"],"description":"Base/Ethereum only: owner, upgradeable proxy, and whether mint, pause, blacklist or fee-setting functions exist. Functions, not intent.","properties":{"owner":{"type":["string","null"]},"owner_renounced":{"type":["boolean","null"]},"upgradeable_proxy":{"type":"boolean"},"implementation":{"type":["string","null"]},"proxy_admin":{"type":["string","null"]},"can_mint":{"type":"boolean"},"can_pause":{"type":"boolean"},"has_blacklist":{"type":"boolean"},"has_fee_setters":{"type":"boolean"}}},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}},"note":{"type":"string"},"checked_at":{"type":"string"},"explorer_url":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/portfolio":{"post":{"operationId":"walletPortfolio","summary":"Wallet portfolio value","description":"Wallet portfolio in USD on Base, Ethereum or Solana: give an address (and any extra tokens), get every holding priced from on-chain pools, its USD value, the wallet's total, and warnings when a position is thin or bigger than the pool behind its price. $0.005 per call; a bad address is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"Wallet address."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."},"tokens":{"type":"array","maxItems":20,"items":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$"},"description":"Extra token contracts or SPL mints to include."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","address","total_value_usd","holdings"],"properties":{"chain":{"type":"string"},"address":{"type":"string"},"total_value_usd":{"type":"number"},"holdings":{"type":"array","items":{"type":"object","properties":{"asset":{"type":"string"},"symbol":{"type":["string","null"]},"amount":{"type":"number"},"price_usd":{"type":["number","null"]},"value_usd":{"type":["number","null"]},"pool_depth_usd":{"type":["integer","null"]},"warning":{"type":["string","null"]}}}},"unpriced_holdings":{"type":"integer"},"checked_at":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/pretrade":{"post":{"operationId":"preTradeCheck","summary":"Pre-trade token check","description":"Check a token before you trade it, in one call, on Base, Ethereum or Solana: give a token address (and optionally your wallet and trade size in USD), get its USD price, pool depth, chain warnings (no pool, thin liquidity, mint or freeze authority), how big your trade is next to the pool, how much of the token your wallet already holds, and recent web results about it. Facts, not advice. $0.01 per call; an address that isn't a token is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"ERC-20 contract or SPL mint."},"chain":{"type":"string","enum":["base","ethereum","solana"],"default":"base","description":"Which chain to read: \"base\" (default), \"ethereum\" or \"solana\"."},"wallet":{"type":"string","pattern":"^(0x[0-9a-fA-F]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","description":"Optional: your wallet, to see your current holding."},"amount_usd":{"type":"number","exclusiveMinimum":0,"description":"Optional: planned trade size in USD."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["chain","token","warnings","note"],"properties":{"chain":{"type":"string"},"token":{"type":"string"},"name":{"type":["string","null"]},"symbol":{"type":["string","null"]},"decimals":{"type":["integer","null"]},"total_supply":{"type":["string","null"]},"mint_authority":{"type":["string","null"]},"freeze_authority":{"type":["string","null"]},"price_usd":{"type":["number","null"]},"pool_depth_usd":{"type":["integer","null"]},"price_source":{"type":["string","object","null"]},"trade_size":{"type":["object","null"],"properties":{"amount_usd":{"type":"number"},"pool_depth_usd":{"type":["number","null"]},"share_of_pool_pct":{"type":["number","null"]},"rough_price_impact_pct":{"type":["number","null"]},"flag":{"type":"string","enum":["ok","large_vs_pool","very_large_vs_pool","unknown_depth"]}}},"position":{"type":["object","null"],"properties":{"wallet":{"type":"string"},"token_balance":{"type":"number"},"token_value_usd":{"type":["number","null"]},"native_balance":{"type":["number","null"]},"native_symbol":{"type":["string","null"]}}},"recent_news":{"type":["array","null"],"items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"date":{"type":["string","null"]},"snippet":{"type":["string","null"]}}}},"news_note":{"type":"string"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}},"warning_count":{"type":"integer"},"note":{"type":"string"},"checked_at":{"type":"string"},"explorer_url":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/news":{"post":{"operationId":"cryptoNews","summary":"Crypto news","description":"Crypto news for AI agents: give a coin or topic (\"solana\", \"bitcoin ETF\", \"stablecoin rules\"), get the latest news articles from the past hour, day or week with publisher, date, snippet and link, plus a short AI read of the coverage: its mood (positive, negative, mixed or neutral), a summary and the main themes, written only from those headlines. A read of the news, not advice. $0.004 per call; no news found is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.004000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","maxLength":120,"description":"Coin or topic, e.g. \"solana\" or \"bitcoin ETF\". Default: the crypto market."},"freshness":{"type":"string","enum":["hour","day","week"],"default":"day"},"num":{"type":"integer","minimum":1,"maximum":10,"default":8}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["query","articles","ai_read"],"properties":{"query":{"type":"string"},"freshness":{"type":"string"},"articles":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"url":{"type":"string"},"publisher":{"type":["string","null"]},"date":{"type":["string","null"]},"snippet":{"type":["string","null"]}}}},"ai_read":{"type":["object","null"],"properties":{"mood":{"type":"string","enum":["positive","negative","mixed","neutral"]},"summary":{"type":"string"},"themes":{"type":"array","items":{"type":"string"}},"model":{"type":"string"},"basis":{"type":"string"}}},"source":{"type":"string"},"searched_at":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/perps":{"post":{"operationId":"perpsMarket","summary":"Perps market (Hyperliquid)","description":"Hyperliquid perpetuals market data for AI agents: give coins (\"BTC\", \"ETH\", \"kPEPE\") or nothing for the top markets, get mark and oracle price, 24h change, the current hourly funding rate and its annualized figure, open interest in coins and USD, 24h volume and max leverage. Sort by volume, open interest, funding or 24h move, and add up to a week of hourly funding history for one coin. $0.001 per call; an unknown coin is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"coins":{"type":"array","maxItems":20,"items":{"type":"string"},"description":"Hyperliquid coin names, e.g. [\"BTC\", \"ETH\"]. Leave out for the top markets."},"sort":{"type":"string","enum":["volume","open_interest","funding_high","funding_low","change_24h"],"default":"volume"},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10},"funding_hours":{"type":"integer","minimum":1,"maximum":168,"description":"Hourly funding history for this many hours; needs exactly one coin."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["markets","source","read_at"],"properties":{"markets":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string"},"mark_price":{"type":["number","null"]},"oracle_price":{"type":["number","null"]},"mid_price":{"type":["number","null"]},"prev_day_price":{"type":["number","null"]},"change_24h_pct":{"type":["number","null"]},"funding_hourly_pct":{"type":["number","null"],"description":"Current hourly funding rate in percent; positive means longs pay shorts."},"funding_annualized_pct":{"type":["number","null"]},"premium_pct":{"type":["number","null"]},"open_interest":{"type":["number","null"]},"open_interest_usd":{"type":["number","null"]},"volume_24h_usd":{"type":["number","null"]},"max_leverage":{"type":["number","null"]}}}},"not_found":{"type":"array","items":{"type":"string"}},"sorted_by":{"type":"string"},"listed_markets":{"type":"integer"},"funding_history":{"type":"object","properties":{"coin":{"type":"string"},"hours":{"type":"integer"},"points":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string"},"funding_hourly_pct":{"type":"number"}}}},"average_hourly_pct":{"type":["number","null"]},"average_annualized_pct":{"type":["number","null"]}}},"funding_note":{"type":"string"},"source":{"type":"string"},"read_at":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/pulse":{"post":{"operationId":"cryptoMarketPulse","summary":"Crypto market pulse","description":"The crypto market in one call, for AI agents: the Crypto Fear & Greed Index (today, yesterday, a week ago), BTC, ETH and SOL with perp price, 24h change, funding and Chainlink reference price, the highest and lowest funding rates, the biggest 24h gainers and losers, and total open interest and volume on Hyperliquid. For a morning brief or before a trade. $0.003 per call.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["majors","funding_highest","funding_lowest","read_at"],"properties":{"fear_greed":{"type":["object","null"],"properties":{"value":{"type":"number"},"classification":{"type":["string","null"]},"date":{"type":"string"},"yesterday":{"type":["object","null"]},"week_ago":{"type":["object","null"]},"source":{"type":"string"},"source_url":{"type":"string"}}},"majors":{"type":"array","items":{"type":"object","properties":{"coin":{"type":"string"},"perp_mark_usd":{"type":["number","null"]},"change_24h_pct":{"type":["number","null"]},"funding_hourly_pct":{"type":["number","null"]},"open_interest_usd":{"type":["number","null"]},"chainlink_usd":{"type":["number","null"]},"chainlink_updated_at":{"type":["string","null"]}}}},"funding_highest":{"type":"array","items":{"type":"object"}},"funding_lowest":{"type":"array","items":{"type":"object"}},"top_gainers_24h":{"type":"array","items":{"type":"object"}},"top_losers_24h":{"type":"array","items":{"type":"object"}},"hyperliquid_totals":{"type":"object"},"notes":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"string"}},"read_at":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}},"/chain/history":{"post":{"operationId":"cryptoPriceHistory","summary":"Crypto price history","description":"Crypto price history for AI agents: give an asset (\"ETH\", \"BTC\", \"SOL\", \"LINK\") and a number of days (up to 365), get up to 100 past USD prices read from Chainlink's on-chain price feed on Ethereum, each with its time and round, plus first, last, high, low and percent change. For charts, backtests and \"how much has it moved\" questions. $0.002 per call; an asset without a feed is not charged.","tags":["Onchain"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["asset"],"properties":{"asset":{"type":"string","description":"Symbol, e.g. \"ETH\", \"BTC\", \"SOL\", \"LINK\"."},"days":{"type":"integer","minimum":1,"maximum":365,"default":7},"points":{"type":"integer","minimum":2,"maximum":100,"default":24}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["asset","pair","feed","points","summary"],"properties":{"asset":{"type":"string"},"pair":{"type":"string"},"chain":{"type":"string"},"feed":{"type":"string"},"days":{"type":"integer"},"points":{"type":"array","items":{"type":"object","properties":{"time":{"type":"string"},"price_usd":{"type":"number"},"round_id":{"type":"string"}}}},"summary":{"type":"object","properties":{"first_usd":{"type":"number"},"last_usd":{"type":"number"},"change_pct":{"type":["number","null"]},"high_usd":{"type":"number"},"low_usd":{"type":"number"},"latest_round_at":{"type":"string"}}},"history_starts":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"explorer_url":{"type":"string"},"read_at":{"type":"string"}}}}}},"400":{"description":"Bad input: a missing or malformed field, or a URL that is not public. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"402":{"description":"Payment Required. The PAYMENT-REQUIRED header carries the x402 v2 quote (price, asset, network, payTo) for each network accepted. Pay and retry with PAYMENT-SIGNATURE."},"422":{"description":"Valid input the tool could not answer, e.g. an empty page, a token with no pool, an unknown ticker. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"429":{"description":"Too many requests from this caller; retry after a short wait. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"502":{"description":"An upstream source (the page, a chain RPC, a public data API) failed or timed out. Not charged; safe to retry.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}},"503":{"description":"The tool is temporarily unavailable on this deployment. Not charged.","content":{"application/json":{"schema":{"type":"object","required":["error","message","charged"],"properties":{"error":{"type":"string","description":"Machine-readable code, e.g. invalid_url, no_pool, page_fetch_failed."},"message":{"type":"string","description":"Plain-English reason, ending in \"Nothing was charged.\""},"charged":{"type":"boolean","const":false}}}}}}}}}}}