{"uid":"cap_8i3NFNMY4zUx_ixXAC_fI","slug":"payeeguard-c76adc5e","name":"PayeeGuard","description":"Pre-flight a Base payment destination before you send. Verifies the EIP-55 checksum, measures distance from an address you expect — catching a mistyped digit and the shared prefix-and-suffix shape of a ground look-alike — flags the zero address, burn sinks and precompiles, refuses a token offered as its own payee, and reports whether the destination can receive the asset. Returns unknown rather than guessing when bytecode does not decide it. Not a judgement of the counterparty.","url":"https://payee.schemasure.com/v1/guard/payee?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"from":{"type":"string","pattern":"^0[xX][0-9a-fA-F]{40}$","description":"The sender, when you have one. Enables the self-send check."},"asset":{"type":"string","default":"native","description":"\"native\" for ETH, or an ERC-20 contract address. Defaults to \"native\". The asset decides which receivability question is asked, and they have different answers."},"address":{"type":"string","pattern":"^0[xX][0-9a-fA-F]{40}$","description":"The destination you are about to send to. Send it exactly as you hold it, casing included: the casing is the checksum, and normalising it before you ask destroys the evidence this endpoint checks."},"expected_address":{"type":"string","pattern":"^0[xX][0-9a-fA-F]{40}$","description":"The address you believe the destination should be. Supplying it enables the comparison checks: exact match, case-only difference, small edit distance, and the shared prefix-and-suffix shape of a ground look-alike."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_Ext7iqEEO7rqVS0RsUCzQ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Pre-flight validates a Base/EVM payment destination address before sending, checking checksum, look-alike proximity, burn/precompile flags, and asset receivability.","exampleAgentPrompt":"Before I send 500 USDC from 0xAbCd...1234 to 0xDeF0...5678, can you run a pre-flight check on the destination — compare it against the address I expected (0xDeF0...5679) and confirm it can actually receive ERC-20 tokens at 0xA0b8...eB48?","exampleUseCases":[{"title":"Clipboard hijack detection before transfer","prompt":"I'm about to send ETH to 0xdAC17F958D2ee523a2206206994597C13D831ec7 but I originally expected 0xdAC17F958D2ee523a2206206994597C13D831eC7 — can you check if those two differ in more than just casing and flag anything suspicious, like a shared-prefix look-alike attack?"},{"title":"ERC-20 receivability check for a contract","prompt":"Check whether the address 0x0000000000000000000000000000000000000000 can receive USDC at contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 — I want to know if this is a burn address or zero address before I send anything."},{"title":"Self-send and token-as-payee sanity check","prompt":"I'm sending tokens from my wallet 0x742d35Cc6634C0532925a3b844Bc454e4438f44e and I want to pay to 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 using that same address as the asset — can you run a guard check to make sure I'm not accidentally sending a token to its own contract address?"}],"resultDescription":"Returns a structured validation report covering: EIP-55 checksum pass/fail, exact or case-only match against expected address, edit distance and look-alike (shared prefix/suffix) proximity score, flags for zero address, burn sinks, and precompiles, self-send detection when sender is provided, and an asset receivability assessment (native ETH or ERC-20). Returns 'unknown' rather than guessing when on-chain bytecode is ambiguous.","failureModes":["Address fails regex pattern — must be a valid 0x-prefixed 40-hex-character string","Normalizing address casing before submission destroys checksum evidence, producing false results","Asset address provided as its own payee triggers self-referential flag rather than receivability answer","Bytecode analysis inconclusive — endpoint returns 'unknown' for receivability rather than a definitive answer","Network unavailability of Base RPC may cause timeouts","Payment of $0.01 USDC via x402 required per call — missing payment header causes 402 rejection"],"whenToPreferThis":"Use PayeeGuard when an AI agent or automated payment flow is about to dispatch an on-chain transfer on Base and needs a lightweight pre-flight safety check: address checksum integrity, clipboard-hijack/look-alike proximity comparison, burn/precompile/zero-address filtering, and ERC-20 or native ETH receivability — all in a single call. Prefer this over generic address validators when the attacker model includes shared-prefix-and-suffix substitution attacks or when comparing a user-pasted address against an expected one. Not suitable for verifying counterparty identity, KYC, or off-chain payment rails.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-18T18:30:41.283Z","isFirstParty":false,"canonicalSlug":"payeeguard-c76adc5e"}