{"uid":"cap_9uABInryEZXqBGq9UjgIk","slug":"tanod-chainpeek-wallet-drain-check-a5c8a3c8","name":"Tanod chainpeek Wallet Drain Check","description":"chainpeek (Tanod) wallet drain check: were tokens pulled out in transactions the wallet did not send? Verdict, nonce and evidence, on Base or Ethereum. Use when a wallet's token balance dropped and a…","url":"https://tanod.dev/v1/chain/drain-check?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"chain":{"enum":["base","ethereum"],"type":"string","description":"base or ethereum (the chains with built-in USDC and USDT here)."},"tokens":{"anyOf":[{"type":"array","items":{"type":"string","pattern":"^(USDC|USDT|0x[0-9a-fA-F]{40})$"},"maxItems":5,"minItems":1},{"type":"null"}],"default":null,"description":"1 to 5 tokens: USDC, USDT or contract addresses. Default: USDC and USDT."},"wallet":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The wallet to check (0x + 40 hex)."},"lookback_blocks":{"type":"integer","default":2000,"maximum":2000,"minimum":1,"description":"Latest blocks read (1-2,000; default 2,000, about 67 minutes on Base and 6.7 hours on Ethereum)."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_kQHyTuXfw1LwjDS-4VDcj","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Checks whether tokens were pulled out of a wallet by someone other than the wallet owner on Base or Ethereum, returning a drain verdict, nonce evidence, and transaction details.","exampleAgentPrompt":"Can you check whether someone drained USDC from the wallet 0xAbC123...def on Base in the last 2000 blocks — I need to know if the tokens left because the owner sent them or because someone pulled them without authorization?","exampleUseCases":[{"title":"Post-compromise wallet forensics","prompt":"My wallet 0x4f2e...a3c1 on Ethereum just lost all its USDC and I didn't send anything — can you check the last 2000 blocks to see if someone drained it without my authorization?"},{"title":"Automated DeFi security monitoring","prompt":"Before paying out to wallet 0x9d3a...b7f2 on Base, check whether its USDC or USDT balance dropped recently due to an unauthorized drain rather than the owner spending it."},{"title":"Incident response after phishing","prompt":"A user says they clicked a suspicious link and their USDT disappeared from 0x7c1d...e8a4 on Base — can you look back over the last 500 blocks and tell me if tokens were pulled out without them sending a transaction?"}],"resultDescription":"Returns a drain verdict (drained or not), the wallet nonce evidence used to distinguish owner-sent vs. externally pulled transactions, and a list of suspicious token transfer events with transaction hashes, block numbers, token addresses, amounts, and the address that initiated each transfer.","failureModes":["Invalid wallet address format (must be 0x + 40 hex chars)","Unsupported chain specified (only 'base' or 'ethereum' accepted)","lookback_blocks out of range (must be 1–2000)","Token contract address not valid ERC-20 on the specified chain","RPC timeout or chain node unavailability","No activity found in lookback window (empty result, not an error)","Payment failure or insufficient USDC balance for x402 fee"],"whenToPreferThis":"Use this endpoint when a wallet's token balance has dropped unexpectedly and an agent needs to definitively determine whether the wallet owner initiated the outflow or whether tokens were pulled by an external party — distinguishing a drain/hack from a legitimate self-transfer. Prefer it over generic block explorers when you need a structured, machine-readable verdict with nonce-based evidence rather than raw transaction lists. Best suited for Base or Ethereum chains where USDC and USDT are the primary tokens of concern.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-14T06:44:43.243Z","isFirstParty":false,"canonicalSlug":"tanod-chainpeek-wallet-drain-check-a5c8a3c8"}