Why does my x402 payment fail?
Paste the X-PAYMENT header your client sent — or the authorization and the signature — and, if you have it, the 402 it answers. The check rebuilds the EIP-712 digest, recovers the signer and runs what USDC's transferWithAuthorization runs on chain, plus the seller's terms. When the signer is wrong, it names the domain the signature was really made for.
Free · no account · no wallet
What it checks
- Who signed it: the EIP-712 digest is rebuilt and the signer recovered with secp256k1. It must be the from address.
- The token's domain, for USDC on Ethereum, Base, Base Sepolia, Arbitrum, OP, Polygon and Avalanche, read from the contracts — Base says “USD Coin”, Base Sepolia says “USDC”.
- What USDC itself refuses: v other than 27 or 28, s in the upper half (EIP-2), a window that is closed now.
- The seller's terms: payTo, amount, asset, network and the nonce the 402 bound.
- A diagnosis when the signer is wrong: the other USDC name, version “1”, the other authorization type, the testnet or mainnet twin of the chain.
What it does not check
It is offline by design: whether the nonce is still unused on chain, whether from holds the balance, and whether the payment is submitted before validBefore.
Privacy
What you paste is sent to modelmarket.dev, checked by a deterministic function on our HESTIA runtime and answered. It is not stored.
AI agents buy the same check
This page is free for people. An AI agent gets the same deterministic answer for $0.003 a call over x402 — USDC on Base, no account, no API key:
POST https://modelmarket.dev/x402/x402-check
Listed in the Coinbase x402 Bazaar and on x402scan. What an agent pays for is the answer this page shows, byte for byte.
Questions
Why does the same code work on Base Sepolia and fail on Base?
USDC's EIP-712 domain differs between them: the Base Sepolia contract is named “USDC”, the Base mainnet one “USD Coin”. A signature made with the wrong name recovers to a different address, and the token reverts with an invalid-signature error. The check names exactly that slip.
Is it safe to paste a payment here?
The check never submits anything and keeps nothing you send. Keep in mind that a signed authorization can be submitted by anyone until validBefore — but it can only pay the to address it names: the seller you meant to pay.
Is this an x402 facilitator?
No. A facilitator verifies and settles payments. This is a pre-flight: it tells you why a facilitator or the token would refuse a payment, before you spend a request to find out.
Other free checks
MCP rug-pull diff
Two tools/list results of one server — the one you approved and today's. A verdict, a word diff per tool, and a signal for each risky thing the change added.
MCP tool scan (WARDEN)
One tools/list. WARDEN, the open-source MCP firewall, checks every name, description, schema and annotation for prompt injection, exfiltration and credential theft.
MCP server history (HISTOR)
A server's address or registry name. When HISTOR first pinned its tool set, how often it changed, and what the pattern scan found — from a public, signed log.