For AI agents that pay per call

Check the bill before your agent pays.

x402 Precheck reads any HTTP 402 payment request — network, token, amount, recipient, facilitator — and gives your agent a clear verdict: looks ok, review or do not pay.

1,024free checks / day
0.002 USDCper check after
No signupno API key
Never paysthe target
x402 in 60 seconds

The web finally has a “pay here” button for robots.

HTTP has had a status code called 402 Payment Required since the 1990s. x402 puts it to work: an API can charge a few cents per call, and an AI agent pays instantly in USDC (a dollar-pegged stablecoin) — no account, no card, no subscription.

1

Agent asks

Your agent calls an API. Instead of data, the server answers 402 with a small “bill”: how much, in which token, on which network, paid to whom.

2

Agent pays

The agent signs a USDC payment for exactly that amount — often $0.001 to $0.05 — and sends the request again with the signature attached.

3

Server delivers

A facilitator verifies and settles the payment on-chain, and the server returns the data. One round trip, a few seconds.

// what a 402 “challenge” looks like (decoded)
{
  "x402Version": 2,
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "2000",
    "payTo": "0xfD2af2efFAF08877a98A3a02F7ee28D8191A3952",
    "maxTimeoutSeconds": 120,
    "extra": { "name": "USD Coin", "version": "2" }
  }]
}

Reading the bill

  • network — which blockchain. eip155:8453 is Base.
  • asset — the token contract. This one is the real USDC on Base.
  • amount — in the token's smallest unit. USDC has 6 decimals, so 2000 = $0.002.
  • payTo — who receives the money.
  • maxTimeoutSeconds — how long the signed payment stays valid.
  • extra — details the agent needs to sign correctly.
Why check first

Agents pay automatically. That's exactly why the bill needs a second look.

A typo, a misconfigured server or a malicious one can make an agent send money to the wrong place. Precheck catches the common traps in one cheap call.

Wrong or test network

Paying on a chain you didn't expect, or a testnet the seller can't settle.

Look-alike token

An “asset” that isn't the real USDC contract — worthless or a scam token.

Suspicious recipient

Zero address, broken checksum, or not the payTo you were told to expect.

Absurd amount

$25 for a lookup, or a decimal mistake. Set your own max price too.

Dead facilitator

No reachable facilitator that supports this scheme and network: payment can't settle.

Broken signing details

Wrong EIP-712 domain or a day-long validity window on a signed payment.

Try it

Check a payment request in three steps.

1. Paste an x402 endpoint URL, or the 402 challenge itself. 2. Optionally set your max price or expected recipient. 3. Press Check and read the verdict. Free for 1,024 checks per day.

Examples:
Optional policy checks
No signup. We never pay the target.
For developers

One endpoint. One MCP tool.

Call it from code before every x402 payment. After the free quota, pay 0.002 USDC per check with any x402 client. Invalid input gets a fast 400 and is never charged.

curl "https://x402-precheck.w0arvg81zlgf.workers.dev/v1/precheck?url=https://api.example.com/paid&maxPriceUsd=0.05"
# already have the 402? send the PAYMENT-REQUIRED header value
curl "https://x402-precheck.w0arvg81zlgf.workers.dev/v1/precheck?challenge=$PAYMENT_REQUIRED"
{
  "mcpServers": {
    "x402-precheck": { "url": "https://x402-precheck.w0arvg81zlgf.workers.dev/mcp" }
  }
}
// tool: x402_precheck { url | challenge, maxPriceUsd?, expectPayTo? }

Machine-readable: llms.txt · OpenAPI · .well-known/x402 · MCP server.json · health

FAQ

Questions, answered.

Does Precheck pay the endpoint I check?

No. It only reads the unpaid 402 response (or the challenge you paste). It never signs or sends a payment to the target.

What does each verdict mean?

looks ok: no problems found. review: usable, but something deserves a look (e.g. a testnet or a long validity window). do not pay: every payment option has at least one hard failure.

Is it really free?

Each IP gets 1,024 free checks per UTC day (shared between the API and MCP), within a service-wide daily cap. After that, a check costs 0.002 USDC paid via x402. Invalid input is rejected before the paywall and never uses your free checks.

Is a “looks ok” a guarantee?

No. It means the payment terms are well-formed and consistent. It can't prove the seller will deliver a good response.

Do you store what I check?

Requests are logged briefly for operations with a hashed IP. Don't paste secrets; a 402 challenge has none.

Who runs this?

It is an experiment built and operated with AI assistance, with a human owner reviewing it. Payments go to 0xfD2af2efFAF08877a98A3a02F7ee28D8191A3952 on Base.