{"uid":"cap_eJq8ao5bgYWSKliRm3GvA","slug":"aiskills402-base-receipt-verify-f4ef8a94","name":"AISkills402: Base Receipt Verify","description":"Base Receipt Verify API: checks on Base mainnet that a transaction really paid USDC to an address - status, transfer, amount, payer and EIP-3009 nonce from the chain logs, never from the relayer. Base mainnet USDC only. $0.005 USDC per check, a live measurement. POST JSON {tx, pay_to, amount_micro?, from?, nonce?}; free example at https://api.aiskills402.com/v1/run/base-receipt-verify/example","url":"https://api.aiskills402.com/v1/run/base-receipt-verify?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"tx":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Transaction hash on Base mainnet."},"from":{"type":["string","null"],"pattern":"^0x[0-9a-fA-F]{40}$","description":"Expected payer (the transfer sender, not the relayer); null = do not check."},"nonce":{"type":["string","null"],"pattern":"^0x[0-9a-fA-F]{64}$","description":"Expected EIP-3009 authorization nonce; with from, also asked of the chain when the receipt is unknown."},"pay_to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The address that should have received USDC."},"amount_micro":{"type":["string","null"],"pattern":"^[0-9]{1,30}$","description":"Expected amount in USDC micro-units (6 decimals); null = do not check."}}},"responseSchema":{"type":"json","example":{"ok":true,"skill":"base-receipt-verify","engine":"1.0.0","replay":false,"result":{"block":52689216,"found":true,"checks":{"to_matches":true,"from_matches":null,"nonce_matches":null,"amount_matches":true,"status_success":true,"asset_is_usdc_base":true},"status":"success","verdict":"confirmed","findings":[],"transfer":{"to":"0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4","from":"0xa340966d806f114483d671f6bf934daebbdff8dc","value_micro":"3000"},"checked_at":"2026-10-16T17:26:09.575Z","answered_by":"base.drpc.org","nodes_asked":1,"nonce_state":null,"latest_block":52691111,"authorization":{"nonce":"0x61a1b7ac2ab9f8c22da20dc2802be3c298f8a7e5d598fc8c5d09d7b5de28f1ca","authorizer":"0xa340966d806f114483d671f6bf934daebbdff8dc"},"confirmations":1895},"receipt":{"tx":"0x<settlement transaction>","settled":true},"refusal":null,"input_sha256":"<sha256 of the request>"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_nfAxOH1q2mVXvh_PZXGDS","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Verifies on Base mainnet that a specific transaction genuinely paid USDC to an address, returning status, transfer details, payer, amount, and EIP-3009 nonce from chain logs","exampleAgentPrompt":"Can you verify on Base mainnet that transaction 0x3a7f...c21d actually paid 3000 micro-USDC (0.003 USDC) to address 0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4 — confirm the status, amount, and who sent it, straight from the chain logs?","exampleUseCases":[{"title":"Confirm customer USDC payment received","prompt":"A customer says they paid us 5000 micro-USDC on Base — here's the tx hash 0xa1b2c3...f9e8, and our receiving address is 0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4. Can you verify on-chain that the payment actually went through and hit the right address for the right amount?"},{"title":"Audit agent-relayed payment without trusting relayer","prompt":"I have a transaction 0xd4e5f6...1a2b from a relayer claiming they forwarded 10000 micro-USDC to 0xabc123...def456 on Base — don't trust the relayer's word, go check the actual chain logs and tell me if the transfer really happened, who the original sender was, and whether the EIP-3009 nonce matches 0x61a1b7ac2ab9f8c22da20dc2802be3c298f8a7e5d598fc8c5d09d7b5de28f1ca."},{"title":"Validate payment before releasing digital goods","prompt":"Before I release the download link, check Base mainnet transaction 0x7c8d9e...0f1a2b and confirm it paid exactly 50000 micro-USDC to our wallet 0x1234abcd...5678efgh — I need to know it succeeded, wasn't replayed, and came from address 0xsender...address."}],"resultDescription":"Returns a JSON object with a 'verdict' field (e.g. 'confirmed'), a 'checks' sub-object showing whether the recipient, sender, nonce, amount, transaction status, and asset type each match, a 'transfer' object with the actual on-chain from/to/value_micro values, block number, confirmation count, latest block, EIP-3009 authorization details including nonce and authorizer, timestamp of the check, and which node answered. Also includes a top-level 'ok' boolean and 'replay' flag.","failureModes":["Transaction hash not found on Base mainnet — returns found:false","Transaction found but status is not success (e.g. reverted) — verdict will not be 'confirmed'","Amount mismatch — amount_matches check returns false if on-chain value differs from amount_micro","Recipient mismatch — to_matches check returns false if pay_to doesn't match actual recipient","Asset is not Base USDC — asset_is_usdc_base returns false","Invalid transaction hash format — schema validation error on tx field","Network or RPC node unavailable — upstream error from base.drpc.org","Payment for the API call itself insufficient — x402 402 response if USDC not sent"],"whenToPreferThis":"Use this endpoint when you need to independently verify a USDC payment on Base mainnet directly from chain logs without relying on a relayer's report. It is ideal for trustless payment confirmation in agentic workflows, release-on-payment automation, and fraud prevention where a relayer or counterparty could falsify receipts. Prefer it over reading relayer state when EIP-3009 nonce verification is needed or when the amounts/addresses must be cryptographically confirmed on-chain.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-17T12:39:33.252Z","isFirstParty":false,"canonicalSlug":"aiskills402-base-receipt-verify-f4ef8a94"}