x402 payment verify on Base (chain 8453, $0.02)
x402 payment verify on Base (chain 8453, $0.02): tx hash (your PAYMENT-RESPONSE transaction) or from + nonce of the EIP-3009 authorization you signed -> settled yes/no from the chain (AuthorizationUsed + adjacent USDC Transfer): payer, payTo, amount, block, confirmations, safe/finalized, relayer label, fee, matches vs your expected payTo/amount. Phrases: x402 payment verify, did my payment settle, verify usdc payment, settlement proof. GET or POST. Not found -> 404, never charged.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://agents.avasis.ai/v1/base/payment-verify
| Category | Everything else |
|---|---|
| Provider host | agents.avasis.ai |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"amount": "2000",
"network": "base",
"payTo": "0x6264191d6dd5427435b5e829077842e130ef1fc8",
"tx": "0x058bc61d196b9d6ea4cc15315711ef075a0c7e9a3224c19e3deb44eaa4f568ec",
"wait": 0
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"amount": {
"description": "optional expected amount in atomic units (USDC: 20000 = $0.02, the accepts[].amount you paid) or a decimal with a dot (0.02): sets matches.amount",
"type": "string"
},
"asset": {
"description": "optional token contract (0x + 40 hex; default USDC on Base)",
"type": "string"
},
"from": {
"description": "with nonce: the payer address of the EIP-3009 authorization you signed (payload.authorization.from)",
"type": "string"
},
"lookback": {
"description": "for from + nonce: blocks to search back (default 50000, about 28 h on Base; max 150000)",
"maximum": 150000,
"minimum": 1000,
"type": "integer"
},
"network": {
"description": "optional; must be base / eip155:8453 (x402 USDC settles on Base)",
"type": "string"
},
"nonce": {
"description": "with from: the 32-byte authorization nonce (payload.authorization.nonce, 0x + 64 hex)",
"type": "string"
},
"payTo": {
"description": "optional expected recipient (the 402's accepts[].payTo): sets matches.payTo",
"type": "string"
},
"tx": {
"description": "the settle transaction hash (0x + 64 hex): the `transaction` of your x402 PAYMENT-RESPONSE / settle receipt. Or pass from + nonce instead",
"type": "string"
},
"wait": {
"description": "seconds to keep looking for the settle before answering (default 5, max 25; 0 = one read). Unknown after that -> 404, not charged",
"maximum": 25,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"advice": {
"type": "string"
},
"also_available": {
"type": "object"
},
"asset": {
"type": "object"
},
"authorizations": {
"type": "integer"
},
"block": {
"type": [
"object",
"null"
]
},
"chain": {
"type": "string"
},
"chain_id": {
"type": "integer"
},
"confirmations": {
"type": [
"integer",
"null"
]
},
"expected": {
"type": "object"
},
"finality": {
"type": "object"
},
"found": {
"type": "boolean"
},
"headline": {
"type": "string"
},
"kind": {
"type": "string"
},
"latest_block": {
"type": [
"integer",
"null"
]
},
"lookup": {
"type": "string"
},
"matches": {
"type": "object"
},
"method": {
"type": "object"
},
"mined": {
"type": "boolean"
},
"network": {
"type": "string"
},
"payment": {
"type": [
"object",
"null"
]
},
"polls": {
"type": "integer"
},
"rail": {
"type": "string"
},
"searched": {
"type": "object"
},
"settled": {
"type": "boolean"
},
"submitter": {
"type": "object"
},
"transfers": {
"type": "array"
},
"transfers_total": {
"type": "integer"
},
"tx": {
"type": "object"
},
"tx_hash": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string"
},
"waited_ms": {
"type": "integer"
}
},
"required": [
"chain",
"network",
"found",
"settled",
"verdict",
"headline",
"matches",
"waited_ms",
"polls"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}