Verify a Base tx is a confirmed native-USDC transfer to a recipient. Paid via x402, 0.01 USDC/call.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Free. Returns the x402 price, network, USDC asset, payTo address and facilitator for the paid verify_usdc_payment tool.
This tool takes no arguments.
Free. Returns the x402 price, network, USDC asset, payTo address and facilitator for the paid verify_usdc_payment tool.
No arguments.
{
"type": "object",
"properties": {}
}Verify a Base (mainnet, default) or Base Sepolia transaction is a successful, confirmed transfer of native Circle USDC (not a look-alike token) to an expected recipient for an exact or minimum amount. Checks receipt status, canonical block, confirmations, optional payer, notBefore/maxAge windows; returns verdict valid|invalid|pending|not_found with machine-readable reasons and the matched Transfer log. Not charged on 4xx/5xx errors. PAID: 0.01 USD in USDC per successful call via x402 (eip155:8453). Malformed input is rejected before payment.
| Argument | Type | Description |
|---|---|---|
| chain | string | Chain of the tx being verified (default base) |
| txHash* | string | 0x-prefixed 32-byte transaction hash |
| notBefore | integer | Unix seconds; reject txs mined earlier (anti-replay) |
| expectedTo* | string | Recipient that must receive USDC |
| amountMatch | string | exact (default) or atLeast |
| expectedFrom | string | Optional required payer |
| maxAgeSeconds | integer | Reject txs older than this many seconds |
| expectedAmount | string | Decimal USDC, max 6 decimals, e.g. "0.10" (or expectedAmountAtomic) |
| minConfirmations | integer | Default 3 |
| expectedAmountAtomic | string | Integer atomic units (1 USDC = 1000000) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"txHash",
"expectedTo"
],
"properties": {
"chain": {
"enum": [
"base",
"base-sepolia"
],
"type": "string",
"description": "Chain of the tx being verified (default base)"
},
"txHash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"description": "0x-prefixed 32-byte transaction hash"
},
"notBefore": {
"type": "integer",
"description": "Unix seconds; reject txs mined earlier (anti-replay)"
},
"expectedTo": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Recipient that must receive USDC"
},
"amountMatch": {
"enum": [
"exact",
"atLeast"
],
"type": "string",
"description": "exact (default) or atLeast"
},
"expectedFrom": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Optional required payer"
},
"maxAgeSeconds": {
"type": "integer",
"description": "Reject txs older than this many seconds"
},
"expectedAmount": {
"type": "string",
"description": "Decimal USDC, max 6 decimals, e.g. \"0.10\" (or expectedAmountAtomic)"
},
"minConfirmations": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Default 3"
},
"expectedAmountAtomic": {
"type": "string",
"description": "Integer atomic units (1 USDC = 1000000)"
}
},
"additionalProperties": false
}