{"uid":"cap_OtEaESrtudYU4lBWLRJ9n","slug":"tanod-chainpeek-address-poisoning-check-b46f3059","name":"Tanod chainpeek Address-Poisoning Check","description":"chainpeek (Tanod) address-poisoning check before a token transfer: is the recipient a lookalike (same first and last 4 hex characters) of an address in the sender's history or contacts? Use when an a…","url":"https://tanod.dev/v1/chain/address-poisoning?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The recipient about to be paid (0x + 40 hex). Must differ from `from`."},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The sending wallet whose transfer history is read (0x + 40 hex)."},"chain":{"enum":["ethereum","base","robinhood"],"type":"string","description":"ethereum, base or robinhood (Robinhood Chain, chain id 4663)."},"token":{"type":"string","default":"USDC","pattern":"^(USDC|USDT|0x[0-9a-fA-F]{40})$","description":"USDC (default), USDT, or a token contract address. Only this token's transfers are read. On robinhood pass a contract address."},"contacts":{"anyOf":[{"type":"array","items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"maxItems":100},{"type":"null"}],"default":null,"description":"Up to 100 addresses you trust (your address book); `to` is compared with them too, without any chain read."},"dust_threshold":{"anyOf":[{"type":"number","maximum":1000000000000,"minimum":0},{"type":"null"}],"default":null,"description":"Incoming transfers below this many token units count as dust. Default 0.01 for USDC and USDT; off for other tokens unless set; 0 turns it off."},"lookback_blocks":{"type":"integer","default":2000,"maximum":2000,"minimum":0,"description":"How many of the latest blocks of history to read (0-2,000; default 2,000, about 67 minutes on Base and 6.7 hours on Ethereum). 0 reads nothing and checks `contacts` only."}}},"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_IWIoBGBzVC1SP18wqmWj-","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 a recipient wallet address is an address-poisoning lookalike of any address in the sender's transfer history or contacts before sending a token transfer","exampleAgentPrompt":"Before I send 500 USDC to 0xAbCd...1234 from my wallet 0x9876...5678 on Base, run a chainpeek address-poisoning check against my last 2000 blocks of transfer history and my contacts list to make sure that recipient isn't a lookalike of an address I've used before.","exampleUseCases":[{"title":"Safe USDC payout before DeFi withdrawal","prompt":"I'm about to send 1000 USDC from 0xAAA1...0001 to 0xBBB2...0002 on Ethereum — run a chainpeek poisoning check against my last 2000 blocks of history to make sure that recipient address isn't a lookalike of one I've previously paid."},{"title":"Agent wallet protection with contact book","prompt":"My agent wallet 0xDEAD...BEEF is about to pay 0xFACE...CAFE on Base — check if that recipient is an address-poisoning lookalike of any address in my contacts list [0xTRUST...ED01, 0xTRUST...ED02] before proceeding, using chainpeek."},{"title":"High-value transfer screening on Robinhood Chain","prompt":"Screen recipient 0x1111...AAAA for address-poisoning before I transfer an ERC-20 token at contract 0x2222...BBBB from my wallet 0x3333...CCCC on the robinhood chain — check the last 500 blocks and flag any first/last 4 character matches."}],"resultDescription":"Returns whether the recipient address is a suspected address-poisoning lookalike, including which historical or contact addresses it resembles and how (same first/last 4 hex characters pattern), along with the matched addresses and risk assessment details.","failureModes":["Invalid address format (not 0x + 40 hex) returns a validation error","Unsupported chain value returns enum error","Token address not matching USDC/USDT pattern or valid contract address returns error","lookback_blocks exceeding 2000 returns a bounds error","contacts array exceeding 100 items is rejected","from and to address being identical is rejected","Chain RPC unavailability may cause lookup failure","Payment failure (x402) blocks the request if USDC balance is insufficient"],"whenToPreferThis":"Choose this endpoint when an AI agent or wallet application is about to execute a token transfer and needs a fast, pre-send safety check specifically for address-poisoning attacks (same first/last 4 hex character lookalikes). It is purpose-built for this single security use case across Ethereum, Base, and Robinhood Chain, with configurable history depth and contact book support — unlike generic address screening tools that focus on sanctions or AML checks rather than lookalike detection.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-14T06:43:14.305Z","isFirstParty":false,"canonicalSlug":"tanod-chainpeek-address-poisoning-check-b46f3059"}