{"uid":"cap_RwyFtz9q9X1OeAmJwDAPc","slug":"aimarket-x402-payment-authorization-checker-0e09380c","name":"AIMarket x402 Payment Authorization Checker","description":"Debug an x402 payment before you submit it — why does USDC answer invalid signature? Verifies the EIP-3009 transferWithAuthorization (EIP-712 signer, v, low s, validity window) and the seller's terms (payTo, amount, asset, network, bound nonce), and names the domain a failing signature was really made for, e.g. Base Sepolia's 'USDC' used for Base mainnet's 'USD Coin', the commonest reason an x402 payment reverts. Offline, deterministic, signed answer.","url":"https://modelmarket.dev/x402/x402-check?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"now":{"type":"integer","description":"unix seconds, to check the validity window"},"network":{"type":"string","description":"base, base-sepolia, … or eip155:<chain id>"},"signature":{"type":"string","description":"65-byte hex signature"},"x_payment":{"type":"string","description":"the X-PAYMENT header (base64) — or authorization + signature + network"},"requirements":{"type":"object","description":"the 402's accepts entry (payTo, amount, asset, network)"},"authorization":{"type":"object","description":"from, to, value, validAfter, validBefore, nonce"}}},"responseSchema":{"type":"json","example":{"result":{},"status":"ok","receipt":{},"service":"x402-check","capability_id":"x402.authorization.check@v1"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","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.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_KhhrVKUF61EvgmCbkhrYx","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Debugs and validates an x402 EIP-3009 payment authorization offline before submission, identifying signature mismatches, domain errors, and invalid fields.","exampleAgentPrompt":"My x402 USDC payment on Base mainnet keeps reverting with 'invalid signature' — can you check this X-PAYMENT header and authorization to tell me what's wrong and which domain the signature was actually made for?","exampleUseCases":[{"title":"Debugging Base vs Sepolia domain mismatch","prompt":"I built a payment flow for Base mainnet but my USDC x402 authorization keeps failing — I think the signature was made for Base Sepolia's 'USDC' contract instead of mainnet's 'USD Coin'. Can you check my X-PAYMENT header and tell me exactly which domain it was signed for?"},{"title":"Validating x402 payment before agent submission","prompt":"Before my agent submits this x402 payment, can you verify the EIP-3009 authorization — check the signature, nonce, and validity window against the seller's requirements (payTo, amount, asset, network) so we don't waste a failed on-chain transaction?"},{"title":"Diagnosing low-s signature or expired window","prompt":"My x402 payment is being rejected and I don't know if it's a low-s violation, an expired validBefore, or a nonce that's already been used — here's the authorization object and signature, can you tell me exactly which check is failing?"}],"resultDescription":"A JSON object with a status field ('ok' or error), a result object detailing each validation check (EIP-712 signer recovery, v and low-s correctness, validity window, payTo/amount/asset/network match, nonce binding), a named diagnosis of any failing domain (e.g. 'Base Sepolia USDC vs Base mainnet USD Coin'), and a receipt — all computed offline without submitting anything on-chain.","failureModes":["Missing required fields (authorization or signature) returns a validation error","Unrecognized network identifier returns an unknown network error","Malformed base64 X-PAYMENT header returns a parse error","Signature shorter than 65 bytes returns an invalid signature format error","now timestamp outside validity window is flagged as expired rather than a service error"],"whenToPreferThis":"Use this endpoint when you need to pre-flight an x402 EIP-3009 payment authorization before submitting it on-chain, especially to diagnose 'invalid signature' reverts caused by signing for the wrong EIP-712 domain (e.g. Base Sepolia USDC vs Base mainnet USD Coin). It is deterministic and offline, so it adds zero latency to your payment flow and costs only $0.003 USDC. Prefer it over trial-and-error on-chain submission whenever a payment is reverting for an unclear reason.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-12T12:42:01.187Z","isFirstParty":false,"canonicalSlug":"aimarket-x402-payment-authorization-checker-0e09380c"}