Verify x402 settlement
GET /api/x402-verify · Cached 1dConfirm a USDC payment actually settled: given a tx hash (and network), returns whether it succeeded and the USDC transfers it contains (from, to, amount). Optionally check it paid a specific address at least a minimum amount. Read-only proof of payment. ?hash=0x…&network=base&to=0x…&min=0.001
Input
| Field | Type | Description |
|---|---|---|
hash * | string | 0x transaction hash |
network | string | chain: base | polygon | arbitrum | optimism | ethereum | robinhood (default base) |
to | string | optional: expected recipient address to check |
min | number | optional: minimum USDC expected to that recipient |
Example output
{
"hash": "0x…",
"network": "base",
"settled": true,
"status": "success",
"transfers": [
{
"from": "0x…",
"to": "0x…",
"usdc": "0.001"
}
],
"matched": true
}
Try it - see the 402 challenge (free)
curl -i "https://agent402.tools/api/x402-verify?hash=0x0000000000000000000000000000000000000000000000000000000000000000&network=base"
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/x402-verify?hash=0x0000000000000000000000000000000000000000000000000000000000000000&network=base");
Related tools
x402 market pulse
GET /api/x402-market-pulseLive cross-provider x402 market sentiment. topProviders: the top x402 sellers ecosystem-wide, ranked by REAL on-chain ac…
x402 quote
GET /api/x402-quoteProbe any URL and decode its HTTP 402 payment requirements (price, asset, network, pay-to) into clean JSON - what an age…
USDC balance
GET /api/usdc-balanceRead the USDC balance of any address on Base, Polygon, Arbitrum, Optimism, or Ethereum. Read-only on-chain call. ?addres…