{"uid":"cap_e6WXR9Qqrm7-4E0J7lymE","slug":"arn-x402-payguard-payment-security-preflight-d66ecdc8","name":"ARN x402 PayGuard – Payment Security Preflight","description":"Agent Reliability Network: ARN x402 PayGuard provides x402 payment security for autonomous AI agents. Check the seller before you pay with payment preflight and payment-challenge validation. Returns ALLOW, CAUTION, or BLOCK.","url":"https://arn-x402-payguard-payment-security.rajdeep-dutta-in.workers.dev/preflight","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"HTTPS URL of the x402 seller endpoint to inspect live"},"authorization":{"type":"object","properties":{"asset":{"type":"string","description":"Payment asset the buyer is about to authorize"},"payTo":{"type":"string","description":"Payment recipient the buyer is about to authorize"},"payer":{"type":"string","description":"Optional expected EIP-3009 authorization payer; distinct from a transaction relayer"},"network":{"type":"string","description":"CAIP-2 payment network the buyer is about to authorize"},"resource":{"type":"string","format":"uri","description":"Seller resource the authorization is intended to purchase"},"transaction":{"type":"object","properties":{"to":{"type":"string","description":"EVM call target; must match the challenged payment asset"},"data":{"type":"string","pattern":"^0x(?:[0-9a-fA-F]{2})+$","description":"Non-empty hex calldata for the unsigned simulation"},"from":{"type":"string","description":"Optional EVM caller address for eth_call"},"value":{"type":"string","pattern":"^0x(?:0|[1-9a-fA-F][0-9a-fA-F]*)$","description":"Optional hexadecimal native-value quantity for eth_call"}},"description":"Optional unsigned Base eth_call input reused for transaction simulation and supported canonical USDC authorization decoding","additionalProperties":false},"valid_after":{"type":["integer","string"],"description":"Optional authorization valid-after Unix timestamp"},"valid_before":{"type":["integer","string"],"description":"Optional authorization expiry Unix timestamp"},"amount_atomic":{"type":"string","pattern":"^[0-9]+$","description":"Atomic token amount the buyer is about to authorize"}},"description":"Optional unsigned payment authorization context to compare with the live x402 challenge","additionalProperties":false},"intended_spend_usdc":{"type":"number","description":"Optional maximum USDC amount the buyer intends to authorize","exclusiveMinimum":0}}},"responseSchema":{"type":"json","example":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x1111111111111111111111111111111111111111","checks":{"https":true,"x402_v2":true,"http_402":true,"reachable":true,"x402_valid":true,"exact_payment":true,"canonical_usdc":true,"positive_amount":true,"challenge_stable":true,"resource_binding":true,"content_type_sane":true,"supported_network":true,"no_unsafe_redirect":true,"reasonable_timeout":true,"asset_address_valid":true,"pay_to_address_valid":true,"pay_to_safe_receiver":true,"within_intended_spend":true,"structured_response_sane":true,"response_size_within_limit":true},"errors":[],"scheme":"exact","network":"eip155:8453","decision":"ALLOW","warnings":[],"reachable":true,"latency_ms":42,"x402_valid":true,"methodology":"live-security-v1","reason_codes":[],"x402_version":2,"payment_required":true,"quoted_price_usdc":0.03,"intended_spend_usdc":0.03,"quoted_price_atomic":"30000"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.001","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.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_j6dz5g0OioFG00iTjn1te","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Performs live preflight security checks on an x402 seller endpoint to return an ALLOW, CAUTION, or BLOCK decision before an AI agent authorizes payment.","exampleAgentPrompt":"Before my agent pays https://api.example-seller.com/premium-data, run a live x402 PayGuard preflight check against it — I'm about to authorize 0.03 USDC on Base (eip155:8453) in USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) payable to 0x1111111111111111111111111111111111111111, and I want an ALLOW/CAUTION/BLOCK verdict with all security checks before I sign anything.","exampleUseCases":[{"title":"Safe payment check before agent purchase","prompt":"My AI agent is about to pay https://api.dataseller.xyz/report using x402. Before it authorizes 0.05 USDC on Base to address 0xAbCd...1234, can you run a PayGuard preflight to confirm it's safe — check the price, payTo, asset, network, and any redirect risks?"},{"title":"Detecting price mismatch in x402 challenge","prompt":"I told my agent to spend at most 0.01 USDC on https://api.aitools.io/search but I'm worried the seller's x402 challenge might quote a higher price. Run a preflight security check and flag any price or amount inconsistency before we authorize."},{"title":"Auditing unknown seller before first payment","prompt":"We've never paid https://unknown-api.io/endpoint before and I want to make sure it's a legitimate x402 seller. Do a live security preflight — check that the HTTPS, payment challenge, payTo address, canonical USDC asset, and network all look clean before we authorize anything."}],"resultDescription":"A JSON object containing a top-level 'decision' of ALLOW, CAUTION, or BLOCK; a map of boolean check results (https, x402_valid, no_unsafe_redirect, exact_payment, canonical_usdc, supported_network, pay_to_safe_receiver, within_intended_spend, etc.); quoted_price_usdc and quoted_price_atomic; latency_ms; lists of errors, warnings, and reason_codes; and metadata fields including x402_version, methodology, and reachable status.","failureModes":["Seller URL unreachable — reachable: false, decision likely BLOCK","x402 challenge returns inconsistent or malformed data — x402_valid: false","payTo address does not match authorization context — BLOCK with reason code","Quoted price exceeds intended_spend_usdc — within_intended_spend: false, CAUTION or BLOCK","Unsafe redirect detected on the seller endpoint — no_unsafe_redirect: false, BLOCK","Non-canonical USDC asset address used — canonical_usdc: false","Invalid or unsupported CAIP-2 network — supported_network: false","Challenge changes between calls — challenge_stable: false, CAUTION"],"whenToPreferThis":"Use this endpoint whenever an AI agent is about to authorize an x402 payment and needs a live, multi-dimensional security verdict before signing. It is specifically designed for the x402 protocol and checks properties (challenge stability, canonical USDC, EIP-3009 payTo binding, redirect safety) that generic HTTP validators do not cover. Prefer it over manual inspection or generic security scanners when operating autonomously with real USDC on Base.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:35:44.572Z","isFirstParty":false}