{"openapi":"3.1.0","info":{"title":"Sleuth AI","description":"Pay-per-call on-chain investigation & blockchain-forensics API for AI agents. Token holder analysis, whale detection, early-bird and insider cohorts, wallet deanonymization (doxxing), side-wallet mapping and deep multi-hop side-wallet expansion, funding-chain tracing, dev-sell checks, transaction explanation, and pump-and-dump detection across Base, Ethereum, Arbitrum, Polygon, BNB, Robinhood, and Solana. Priced in USDC on Base via x402 — no API keys, the wallet pays per request. FREE for $SLEUTH holders: wallets holding ≥ 99,000,000 SLEUTH on Base (0x08512BC3570d2E9015a60866d1f6941A31576Ba3) call every endpoint free via the SIGN-IN-WITH-X wallet proof (EOA signature); USDC stays fully supported on Base and Solana (Solana: USDC only). Terms: GET /api/free-tier. Response times: calls are SYNCHRONOUS — the investigation runs inside the single HTTP request (no polling, job id, or callback). A typical investigation takes 2-3 minutes and can reach ~4 minutes; a call still running at 270s is aborted with 504 and no payment settles. Set the client read timeout to at least 300s and do not retry earlier. Machine-readable: info['x-response-time'] in GET /openapi.json.","version":"1.0.0","x-guidance":"Sleuth AI is an on-chain investigation / blockchain-forensics API. POST a JSON body to any /api/v1/* route; without a payment header you receive a 402 carrying the required USDC amount (Base) and the x402 challenge, then pay and retry. Capabilities: investigate a token's holders (whales-intel, holder-distribution, holders-overlap) and its earliest buyers + insider cohort (token-early-birds-intel); surface the known entities among a token's top holders (doxx-top-token-holders); deanonymize or locate wallets (doxx-wallet, find-wallet, find-side-wallets) and expand a wallet's deep multi-hop side-wallet network (deep-side-wallet-expansion); trace funding (funding-chain-trace) and dev sells (dev-sell-check); explain a transaction (transaction-inspect); snapshot holdings (wallet-holdings); vet a shilled X post (detect-pump-and-dump-on-social-signal); or ask any free-form question (ask-me-anything) or run a full investigation with structured evidence when data is found (run-investigation). Every route takes an optional `chain` (auto | base | ethereum | arbitrum | polygon | bsc | bnb | robinhood | robinhoodchain | solana; default auto — bnb and robinhoodchain are aliases of bsc and robinhood) and an optional `conversation_id` (a UUID; reuse the same UUID across calls to continue one session and sequence turns — non-UUID values are ignored and the call runs one-shot). Covers Base, Ethereum, Arbitrum, Polygon, BNB Chain, Robinhood Chain, and Solana. FREE TIER for $SLEUTH holders: a wallet holding at least 99,000,000 SLEUTH on Base (token 0x08512BC3570d2E9015a60866d1f6941A31576Ba3) gets EVERY endpoint free — on a 402, sign the sign-in-with-x challenge (the 402's extensions['sign-in-with-x']) with that wallet's own key (EOA/eip191 signatures only; smart-contract wallets are not supported for the proof) and retry with the SIGN-IN-WITH-X header; qualifying wallets run the call with no payment. The balance is re-checked live (~60s cache) and there is a per-wallet daily free-call cap. Paying USDC via x402 is unchanged and always available on both rails; the Solana rail is payment-only (USDC — there is no SLEUTH option on Solana). Machine-readable free-tier terms: GET /api/free-tier. RESPONSE TIMES — every call is SYNCHRONOUS: the investigation runs inside the one HTTP request and the answer is the response body; there is no polling, job id, callback, or streaming. A typical investigation takes 2-3 minutes (production p50 ~140s, p75 ~180s, p90 ~250s); short factual answers come back in seconds. Hard ceiling: a call still running at 270s is aborted and returns 504 — a non-2xx never settles, so a timed-out call is not charged and may be retried (a retry often completes faster on warm data). Set your client's read/socket timeout to at least 300s (the x402 payment-authorization window is a fixed 300s) and do NOT retry before then — an early retry abandons a run that is still in flight and costs a second payment. These are observed typicals, not a guaranteed SLA; the machine-readable form is info['x-response-time'] in GET /openapi.json.","guidance":"Sleuth AI is an on-chain investigation / blockchain-forensics API. POST a JSON body to any /api/v1/* route; without a payment header you receive a 402 carrying the required USDC amount (Base) and the x402 challenge, then pay and retry. Capabilities: investigate a token's holders (whales-intel, holder-distribution, holders-overlap) and its earliest buyers + insider cohort (token-early-birds-intel); surface the known entities among a token's top holders (doxx-top-token-holders); deanonymize or locate wallets (doxx-wallet, find-wallet, find-side-wallets) and expand a wallet's deep multi-hop side-wallet network (deep-side-wallet-expansion); trace funding (funding-chain-trace) and dev sells (dev-sell-check); explain a transaction (transaction-inspect); snapshot holdings (wallet-holdings); vet a shilled X post (detect-pump-and-dump-on-social-signal); or ask any free-form question (ask-me-anything) or run a full investigation with structured evidence when data is found (run-investigation). Every route takes an optional `chain` (auto | base | ethereum | arbitrum | polygon | bsc | bnb | robinhood | robinhoodchain | solana; default auto — bnb and robinhoodchain are aliases of bsc and robinhood) and an optional `conversation_id` (a UUID; reuse the same UUID across calls to continue one session and sequence turns — non-UUID values are ignored and the call runs one-shot). Covers Base, Ethereum, Arbitrum, Polygon, BNB Chain, Robinhood Chain, and Solana. FREE TIER for $SLEUTH holders: a wallet holding at least 99,000,000 SLEUTH on Base (token 0x08512BC3570d2E9015a60866d1f6941A31576Ba3) gets EVERY endpoint free — on a 402, sign the sign-in-with-x challenge (the 402's extensions['sign-in-with-x']) with that wallet's own key (EOA/eip191 signatures only; smart-contract wallets are not supported for the proof) and retry with the SIGN-IN-WITH-X header; qualifying wallets run the call with no payment. The balance is re-checked live (~60s cache) and there is a per-wallet daily free-call cap. Paying USDC via x402 is unchanged and always available on both rails; the Solana rail is payment-only (USDC — there is no SLEUTH option on Solana). Machine-readable free-tier terms: GET /api/free-tier. RESPONSE TIMES — every call is SYNCHRONOUS: the investigation runs inside the one HTTP request and the answer is the response body; there is no polling, job id, callback, or streaming. A typical investigation takes 2-3 minutes (production p50 ~140s, p75 ~180s, p90 ~250s); short factual answers come back in seconds. Hard ceiling: a call still running at 270s is aborted and returns 504 — a non-2xx never settles, so a timed-out call is not charged and may be retried (a retry often completes faster on warm data). Set your client's read/socket timeout to at least 300s (the x402 payment-authorization window is a fixed 300s) and do NOT retry before then — an early retry abandons a run that is still in flight and costs a second payment. These are observed typicals, not a guaranteed SLA; the machine-readable form is info['x-response-time'] in GET /openapi.json.","x-response-time":{"synchronous":true,"typical_seconds":140,"p90_seconds":250,"max_seconds":270,"recommended_client_timeout_seconds":300,"on_exceeded":{"status":504,"settled":false},"note":"Investigations run synchronously inside the single HTTP request — there is no polling, job id, callback, or streaming. Typical 2-3 minutes; short factual answers return in seconds. A call still running at 270s is aborted with 504 and no payment settles, so a timed-out call is not charged. Set the client read/socket timeout to at least 300s (the fixed x402 payment-authorization window) and do not retry earlier — an early retry abandons a run that is still in flight and costs a second payment. Observed production typicals, not a guaranteed SLA."}},"servers":[{"url":"https://x402.sleuthagent.ai"}],"tags":[{"name":"Ask Me Anything"},{"name":"Deep Side Wallet Expansion"},{"name":"Detect Pump And Dump On Social Signal"},{"name":"Dev Sell Check"},{"name":"Doxx Top Token Holders"},{"name":"Doxx Wallet"},{"name":"Find Side Wallets"},{"name":"Find Wallet"},{"name":"Free Tier"},{"name":"Funding Chain Trace"},{"name":"Holder Distribution"},{"name":"Holders Overlap"},{"name":"Run Investigation"},{"name":"Token Early Birds Intel"},{"name":"Transaction Inspect"},{"name":"Wallet Holdings"},{"name":"Whales Intel"}],"paths":{"/api/v1/ask-me-anything":{"post":{"operationId":"ask-me-anything","summary":"Ask any on-chain investigation question in plain English — free-form wallet, token, transaction, or entity research across Base, Ethereum, Arbitrum, Polygon, BNB, Robinhood, and Solana. Returns a plain-text answer; use run-investigation for the same free-form query with structured evidence included when the investigation surfaces row-level data.","tags":["Ask Me Anything"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/deep-side-wallet-expansion":{"post":{"operationId":"deep-side-wallet-expansion","summary":"Expand a wallet's side-wallet network two to three hops deep — for each discovered side wallet, follow its OWN funding and transfer links, then report the whole expanded multi-hop cluster with per-link evidence. Use to map an entity's complete wallet network. Structured multi-hop network evidence included when the investigation surfaces row-level data.","tags":["Deep Side Wallet Expansion"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["wallet"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/detect-pump-and-dump-on-social-signal":{"post":{"operationId":"detect-pump-and-dump-on-social-signal","summary":"Investigate an X (Twitter) post for pump-and-dump signals — the coin it shills, holder concentration, the early-buyer cohort, and the largest recent sells (who is dumping). Pass the URL of an X post. Use to vet a shilled coin before buying.","tags":["Detect Pump And Dump On Social Signal"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":500},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["target"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/dev-sell-check":{"post":{"operationId":"dev-sell-check","summary":"Check whether the developer or creator wallets behind a token have sold — identifies the deployer and insider wallets and reports whether, when, and how much they sold or moved out. Use to detect a dev rug or insider exit before or after buying a token.","tags":["Dev Sell Check"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/doxx-top-token-holders":{"post":{"operationId":"doxx-top-token-holders","summary":"Identify the top holders of a token and unmask any KNOWN entities among them — exchanges/CEXes, funds, market makers, protocol treasuries, and named wallets (ENS/Basename, linked X account, entity labels). Use to see which recognizable players hold a token and how much. Structured holder→identity table included when the investigation surfaces row-level data.","tags":["Doxx Top Token Holders"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":200},"n":{"default":20,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/doxx-wallet":{"post":{"operationId":"doxx-wallet","summary":"Unmask who is behind a known wallet address — its linked X (Twitter) account, ENS/Basename, entity label, and on-chain reputation. Use to attribute a wallet to a real identity or entity before trusting, trading with, or investigating it.","tags":["Doxx Wallet"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["wallet"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/run-investigation":{"post":{"operationId":"run-investigation","summary":"Run a full free-form on-chain investigation from a natural-language prompt — wallet forensics, token analysis, fund tracing, and entity deanonymization across Base, Ethereum, Arbitrum, Polygon, BNB, Robinhood, and Solana — with structured evidence (holder tables, buyer cohorts, flows) included alongside the narrative answer when the investigation surfaces row-level data.","tags":["Run Investigation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/token-early-birds-intel":{"post":{"operationId":"token-early-birds-intel","summary":"Surface a token's early-bird cohort — its earliest distinct buyers AND its largest current holders, and the identities behind them (linked X accounts, ENS/Basenames, entity labels). Use to spot early accumulation, snipers, insider concentration, and smart money on a token launch. Structured early-buyer and top-holder evidence included when the investigation surfaces row-level data.","tags":["Token Early Birds Intel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/holder-distribution":{"post":{"operationId":"holder-distribution","summary":"Analyze a token's holder distribution and supply concentration — whale-to-shrimp tiers, top-N percentage of supply, and concentration trends. Use to assess how centralized or distributed a token's ownership is before trading or listing. Structured distribution table included when the investigation surfaces row-level data.","tags":["Holder Distribution"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/whales-intel":{"post":{"operationId":"whales-intel","summary":"List a token's top whales excluding pools, routers, and infrastructure contracts — ranked holders with addresses, balances, percentage of supply, and a light identity pass per wallet (known entity, name service, or exchange tag). Use to see who really holds a token with obvious infra filtered out. Structured whale table included when the investigation surfaces row-level data.","tags":["Whales Intel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/holders-overlap":{"post":{"operationId":"holders-overlap","summary":"Find the wallets that hold ALL of two or more given tokens in common — the shared holder cohort across coins. Use to detect coordinated cohorts, shared insider groups, or communities that overlap across multiple tokens. Pass 2–10 tokens. Structured overlap table included when the investigation surfaces row-level data.","tags":["Holders Overlap"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tokens":{"anyOf":[{"minItems":2,"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},{"type":"string","minLength":1,"maxLength":200}]},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["tokens"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/find-wallet":{"post":{"operationId":"find-wallet","summary":"Locate a wallet from any clue — an X (Twitter) @handle, a partial 0x address fragment, an ENS/Basename, a full address, or portfolio intel: tokens the wallet is known to hold with approximate/rounded balances (e.g. \"holds ~1.2M $XYZ and some $ABC\"). Use to resolve a fuzzy identifier or a remembered portfolio down to a concrete on-chain wallet and its owner.","tags":["Find Wallet"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clue":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["clue"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/find-side-wallets":{"post":{"operationId":"find-side-wallets","summary":"Map a wallet's network — who funded it, its side/alt wallets, and its top counterparties. Use to trace an entity's full on-chain footprint, uncover linked wallets, and follow the money around a target address. Structured funding and counterparty evidence included when the investigation surfaces row-level data.","tags":["Find Side Wallets"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["wallet"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/funding-chain-trace":{"post":{"operationId":"funding-chain-trace","summary":"Trace a wallet's funding chain back to its origin — who funded it, who funded that funder, and so on, hop by hop, until an exchange, bridge, or other source is reached. Use to follow the money upstream and attribute the ultimate source of a wallet's funds. Structured hop-by-hop evidence included when the investigation surfaces row-level data.","tags":["Funding Chain Trace"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["wallet"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/transaction-inspect":{"post":{"operationId":"transaction-inspect","summary":"Explain a single transaction — what happened, who the parties are, the assets and amounts moved, and anything notable about it. Accepts an EVM 0x transaction hash or a base58 Solana signature. Use to decode a confusing transaction into a plain-English summary.","tags":["Transaction Inspect"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tx_hash":{"type":"string"},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["tx_hash"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/v1/wallet-holdings":{"post":{"operationId":"wallet-holdings","summary":"List what a wallet currently holds — its token balances with amounts and USD values where available. Accepts a 0x address or an ENS/Basename. Use to snapshot a wallet's current portfolio across supported chains. Structured holdings table included when the investigation surfaces row-level data.","tags":["Wallet Holdings"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.099000"},"protocols":[{"x402":{}}]},"security":[{"siwx":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"type":"string","minLength":1,"maxLength":200},"chain":{"default":"auto","type":"string","enum":["auto","base","ethereum","arbitrum","polygon","bsc","robinhood","solana","bnb","robinhoodchain"]},"conversation_id":{"type":"string"}},"required":["wallet"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"response":{"type":"string"},"data":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"row_count":{"type":"number"},"columns":{"type":"array","items":{"type":"string"}},"rows":{"type":"array","items":{"type":"array","items":{}}},"truncated":{"type":"boolean"}},"required":["id","tool","truncated"],"additionalProperties":false}}},"required":["nodes"],"additionalProperties":false},"request_id":{"type":"string"},"conversation_id":{"type":"string"}},"required":["response","request_id"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"},"504":{"description":"Gateway Timeout — the investigation was still running at the 270s ceiling and was aborted. No payment is settled, so the call is not charged."}}}},"/api/free-tier":{"get":{"operationId":"free-tier","summary":"Machine-readable terms of the $SLEUTH-holder free tier: wallets holding at least 99,000,000 SLEUTH on Base call every investigation endpoint free by signing the 402's sign-in-with-x challenge (EOA signature, SIGN-IN-WITH-X header). USDC x402 payment remains fully supported on Base and Solana (Solana: USDC only).","tags":["Free Tier"],"security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"token":{"type":"object","properties":{"address":{"type":"string"},"symbol":{"type":"string"},"chain":{"type":"string"},"chainId":{"type":"string"},"decimals":{"type":"number"}},"required":["address","symbol","chain","chainId","decimals"],"additionalProperties":false},"threshold":{"type":"object","properties":{"sleuth":{"type":"string"},"atomic":{"type":"string"}},"required":["sleuth","atomic"],"additionalProperties":false},"proof":{"type":"object","properties":{"protocol":{"type":"string"},"header":{"type":"string"},"challenge":{"type":"string"},"signature":{"type":"string"},"chain":{"type":"string"},"nonce":{"type":"string"}},"required":["protocol","header","challenge","signature","chain","nonce"],"additionalProperties":false},"paid_fallback":{"type":"object","properties":{"unchanged":{"type":"boolean"},"rails":{"type":"array","items":{"type":"string"}},"solana_note":{"type":"string"}},"required":["unchanged","rails","solana_note"],"additionalProperties":false},"limits":{"type":"object","properties":{"per_wallet_daily":{"type":"number"},"balance_recheck_seconds":{"type":"number"}},"required":["per_wallet_daily","balance_recheck_seconds"],"additionalProperties":false}},"required":["enabled","token","threshold","proof","paid_fallback","limits"],"additionalProperties":false}}}}}}}},"components":{"securitySchemes":{"siwx":{"type":"apiKey","in":"header","name":"SIGN-IN-WITH-X"}}}}