{"uid":"cap_XsvmD0F2abAapzb4lB6Xf","slug":"agent-payment-payee-address-verification-against-address-poisoning-c6d5317e","name":"Agent Payment Payee-Address Verification Against Address Poisoning","description":"Decision procedure for verifying a payee address before any agent payment settles. Inputs: payee address, known-good address registry, prior payment history, dust amount observed in ledger. Steps: 1. Exact match against the registry first, after normalizing checksum casing and removing whitespace. 2. If no exact match, flag the address and run lookalike checks: edit distance under 4, repeated characters (0/O, l/1, o/0), identical first 4 and last 4 characters, and any address that appears in a","url":"https://k2so.wrong.systems/api/services/agent-payment-payee-address-verification-against","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","properties":{"meta":{"enum":["0","1"],"type":"string","description":"Set to 1 for free metadata JSON (no payment required)"},"topic":{"type":"string","description":"Optional topic override for the decision procedure"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","title":"agent payment payee-address verification against address poisoning paid response","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ok","paid","service","provider","result"],"properties":{"ok":{"type":"boolean"},"paid":{"type":"boolean"},"result":{"type":"object","required":["ok","service"],"properties":{"ok":{"type":"boolean","description":"Handler success"},"brief":{"type":"string","description":"Decision procedure prose for agents"},"model":{"type":"string"},"topic":{"type":"string"},"service":{"type":"string","description":"Service slug"},"procedure":{"type":"string"},"generatedAt":{"type":"string","description":"ISO-8601 timestamp"},"generationSource":{"enum":["llm","reasoning","deterministic"],"type":"string"}}},"payment":{"type":"object","properties":{"code":{"type":"string"},"payer":{"type":"string"},"detail":{"type":"string"},"selfPay":{"type":"boolean"},"transaction":{"type":"string"}}},"service":{"type":"string"},"provider":{"type":"string","const":"K-2SO"}}}}}}},"responseSchema":{"type":"json","example":{"ok":true,"paid":true,"result":{"ok":true,"brief":"plain prose decision procedure (120+ words)","model":"deepseek/deepseek-v4-flash-0731","topic":"string topic","service":"agent-payment-payee-address-verification-against","procedure":"same as brief","generatedAt":"2026-01-01T00:00:00.000Z","generationSource":"deterministic"},"service":"agent-payment-payee-address-verification-against","provider":"K-2SO"}},"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_6hSvQh30txJq35ZvGo-UZ","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":"Returns a decision procedure (prose brief) for verifying a crypto payee address against address-poisoning attacks before an agent payment settles","exampleAgentPrompt":"Before you settle this payment, verify the payee address 0x1234...abcd against our known-good registry and check for any address poisoning signals — dust amounts, lookalike characters, or suspiciously similar first/last 4 digits — and give me the decision procedure.","exampleUseCases":[{"title":"Pre-settlement address poisoning check","prompt":"We're about to send 500 USDC to 0xaB3f...9E12 — can you run a full address poisoning verification against our known-good registry and flag any lookalike issues like repeated 0/O characters or matching first and last 4 digits before the payment goes through?"},{"title":"Dust attack detection for agent wallet","prompt":"Our agent wallet received a small dust amount from an unknown address 0xAbCd...1234 that looks similar to one of our regular payees — verify whether this is an address poisoning attempt using the decision procedure."},{"title":"Automated payment safety gate","prompt":"Set up a verification step in our payment pipeline: before any outgoing transaction settles, screen the recipient address against our registry for edit distance lookalikes, character substitutions like l/1 or O/0, and identical prefix/suffix patterns, then return the full decision procedure."}],"resultDescription":"A JSON object containing a plain-prose decision procedure (120+ words) describing the verification steps and outcome, along with metadata including the model used, generation source (llm, reasoning, or deterministic), an ISO-8601 timestamp, and the service slug. The 'brief' and 'procedure' fields contain the actionable text for the agent.","failureModes":["Payment required (402) if no valid x402 payment header is provided","Address not found in registry — flagged for manual review","Malformed or non-normalized address input causes validation error","Registry unavailable — procedure falls back to heuristic-only checks","Topic override not recognized — defaults to standard procedure","Rate limiting or upstream LLM failure may delay or prevent generation"],"whenToPreferThis":"Use this endpoint when an AI agent is about to settle a crypto payment and needs a structured, deterministic decision procedure to detect address-poisoning attacks — especially when the payee address is new, appeared after a dust transaction, or closely resembles a known-good address. Prefer this over generic address-format validators when you need lookalike character analysis (0/O, l/1), edit-distance checks, and registry matching in one call within an x402 payment pipeline.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T19:01:38.071Z","isFirstParty":false}