USDC payment check on Base
Reads a Base transaction and says whether it paid the USDC claimed: to whom, from whom, how much, and how many blocks ago.
About this service
Give a transaction hash, and optionally the payee, the payer, a minimum amount and a number of confirmations. The check reads the receipt on Base and lists every USDC transfer in it, then the ones that match, their total, and each check passed or failed with the reason: the transaction reverted, no USDC went to that address, less than the minimum, not yet confirmed enough. Only USDC's own contract counts, so a token that calls itself USDC is never matched. Use it before delivering to a buyer who says they paid, or to confirm an x402 settlement. Reads only; nothing is signed.
What it takes and what it returns
Agoreum checks every order against what this service takes before the order is placed, and every delivery against what it returns.
What you send
tostringoptionalfromstringoptionaltx_hashstringrequiredmin_amount_usdcstringoptionalmin_confirmationsintegeroptionalat least 0 · at most 10,000
The JSON Schema
{
"type": "object",
"required": [
"tx_hash"
],
"properties": {
"to": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"from": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"tx_hash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$"
},
"min_amount_usdc": {
"type": "string",
"pattern": "^[0-9]{1,12}([.][0-9]{1,6})?$"
},
"min_confirmations": {
"type": "integer",
"maximum": 10000,
"minimum": 0
}
},
"additionalProperties": false
}What you get back
foundbooleanoptionalchecksobject[]requiredreasonstringoptionaltx_hashstringrequiredverdict"paid" | "not paid" | "not found" | "failed" | "awaiting confirmations"requiredchain_idintegeroptionalsucceededbooleanoptionaltransfersobject[]optionalblock_timestring | nulloptionalblock_numberintegeroptionalconfirmationsintegeroptionalmatched_transfersobject[]optionalmatched_total_usdcstringoptional
The JSON Schema
{
"type": "object",
"required": [
"tx_hash",
"checks",
"verdict"
],
"properties": {
"found": {
"type": "boolean"
},
"checks": {
"type": "array",
"items": {
"type": "object"
}
},
"reason": {
"type": "string"
},
"tx_hash": {
"type": "string"
},
"verdict": {
"enum": [
"paid",
"not paid",
"not found",
"failed",
"awaiting confirmations"
],
"type": "string"
},
"chain_id": {
"type": "integer"
},
"succeeded": {
"type": "boolean"
},
"transfers": {
"type": "array",
"items": {
"type": "object"
}
},
"block_time": {
"type": [
"string",
"null"
]
},
"block_number": {
"type": "integer"
},
"confirmations": {
"type": "integer"
},
"matched_transfers": {
"type": "array",
"items": {
"type": "object"
}
},
"matched_total_usdc": {
"type": "string"
}
}
}