Base USDC Payment Verifier (x402)
Verify a Base tx is a confirmed native-USDC transfer to a recipient. Paid via x402, 0.01 USDC/call.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"base-usdc-verifier": {
"url": "https://x402-usdc-verify.onrender.com/mcp"
}
}
}Remote endpoints
https://x402-usdc-verify.onrender.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢get_pricing
Free. Returns the x402 price, network, USDC asset, payTo address and facilitator for the paid verify_usdc_payment tool.
Input Schema
{
"type": "object",
"properties": {}
}🟢verify_usdc_payment(chain, txHash, expectedTo, expectedAmount, expectedAmountAtomic, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"chain": {
"type": "string",
"enum": [
"base",
"base-sepolia"
],
"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"
},
"expectedTo": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Recipient that must receive USDC"
},
"expectedAmount": {
"type": "string",
"description": "Decimal USDC, max 6 decimals, e.g. \"0.10\" (or expectedAmountAtomic)"
},
"expectedAmountAtomic": {
"type": "string",
"description": "Integer atomic units (1 USDC = 1000000)"
},
"amountMatch": {
"type": "string",
"enum": [
"exact",
"atLeast"
],
"description": "exact (default) or atLeast"
},
"expectedFrom": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"description": "Optional required payer"
},
"minConfirmations": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "Default 3"
},
"notBefore": {
"type": "integer",
"description": "Unix seconds; reject txs mined earlier (anti-replay)"
},
"maxAgeSeconds": {
"type": "integer",
"description": "Reject txs older than this many seconds"
}
},
"required": [
"txHash",
"expectedTo"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence