{"slug":"modelmarket-dev-x402-x402-check-1127b0","title":"Debug an x402 payment before you submit it — why does USDC answer invalid signat","host":"modelmarket.dev","method":"POST","resource":"https://modelmarket.dev/x402/x402-check","category":"market","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 ma","price_listed":0.003,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":2,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"authorization":{"from":"0x9993C13EBBC4B98441E38585eA47fe17625f04f3","nonce":"0x52293a780cf1f48ea8a555187c01b15124c41cfef04114b44f3e5463ce8b30eb","to":"0x1218ff36C5d2e3B6A565CdB1A8B1AcCFc606Ad0a","validAfter":"0","validBefore":"1893456000","value":"3000"},"network":"base","signature":"0xe0949d03ce604032721cf706d05897c9b5b34dbc0d3f4a76848724c1e20473330238f0dde1ea3cccffce4c1d1f5a6dfbfb0012ec42a9fd2165bc9723b14b56381b"},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"properties":{"authorization":{"description":"from, to, value, validAfter, validBefore, nonce","type":"object"},"network":{"description":"base, base-sepolia, … or eip155:<chain id>","type":"string"},"now":{"description":"unix seconds, to check the validity window","type":"integer"},"requirements":{"description":"the 402's accepts entry (payTo, amount, asset, network)","type":"object"},"signature":{"description":"65-byte hex signature","type":"string"},"x_payment":{"description":"the X-PAYMENT header (base64) — or authorization + signature + network","type":"string"}},"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"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.","last_updated":"2026-10-05T16:44:55.095Z","schemes":["exact"]}