{"uid":"cap_YAeMoQR9lEPcSokQxNNPM","slug":"receiptsure-transaction-verification-c463f137","name":"ReceiptSure Transaction Verification","description":"Check whether a mined Base transaction did what your agent meant it to do. Fetches the receipt, decodes its ERC-20, ERC-721 and ERC-1155 transfer and approval logs, and reports each declared movement as matched, missing or short, with the observed amount beside the expected one. Catches reverts, success with no effect, fee-on-transfer skims and transfers to recipients you never named. Returns unknown rather than guessing. Not a guarantee that a transaction was safe.","url":"https://receipt.schemasure.com/v1/tx/receipt-verify?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"tx_hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"The Base transaction to check. A hash with no receipt yet answers unknown."},"expected_transfers":{"type":"array","items":{"type":"object","required":["to","amount"],"properties":{"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The intended recipient."},"from":{"type":["string","null"],"pattern":"^0x[0-9a-fA-F]{40}$","description":"The sender, when you know it. Naming it is what lets undeclared recipients be judged: outflows are only held against you when they leave the account that signed the transaction, or leave a declared sender in the asset you said it would send."},"asset":{"type":["string","null"],"pattern":"^0x[0-9a-fA-F]{40}$","description":"Token contract. Omit or null for native ETH, which emits no log and is therefore reported unverifiable rather than matched."},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Base units, not display units: 1 USDC is \"1000000\". Must be above zero."},"token_id":{"type":["string","null"],"pattern":"^[0-9]+$","description":"ERC-721 or ERC-1155 token id, when the movement names one."},"asset_kind":{"enum":["native","erc20","erc721","erc1155","unknown"],"type":"string","description":"Optional. Inferred from asset and token_id when absent."}},"additionalProperties":false},"maxItems":32,"minItems":1,"description":"What you intended to move. Each entry is checked against the decoded logs and reported as matched, missing, short, or unverifiable."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_oKih2n3e0B1SA76Aj4LsQ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Verifies that a mined Base blockchain transaction executed the intended token transfers and approvals by decoding receipt logs and comparing them against declared expected movements.","exampleAgentPrompt":"Can you check whether Base transaction 0xabc123...def456 actually sent 1000000 USDC (that's 1 USDC in base units) to 0xRecipient...address? I want to know if it matched, was short, or missed entirely.","exampleUseCases":[{"title":"Post-payment USDC transfer audit","prompt":"I just sent a USDC payment on Base — transaction hash is 0x4f3a...b82c — and I need to confirm exactly 5000000 base units (5 USDC) landed at 0xBuyer...addr. Can you check if the transfer matched, was short, or got skimmed by the token contract?"},{"title":"NFT delivery confirmation after sale","prompt":"Check if Base tx 0x9d2e...c14f actually transferred ERC-721 token ID 4217 from contract 0xNFTContract...addr to buyer 0xBuyer...addr — I need to know if the transfer shows as matched or missing in the receipt logs."},{"title":"DeFi swap unexpected recipient detection","prompt":"My DeFi swap transaction on Base was 0x7b1c...e039 — I expected 2000000000000000000 base units of token 0xTokenContract...addr to go to my wallet 0xMyWallet...addr, but I'm worried something went to an address I didn't intend. Can you decode the logs and flag any transfers to recipients I didn't declare?"}],"resultDescription":"Returns a per-transfer verdict for each declared expected movement: matched (log found and amount correct), missing (no matching log found), short (log found but transferred less than expected), or unverifiable (native ETH transfers that emit no log). Also reports any token outflows to undeclared recipients, whether the transaction reverted, and the observed amount alongside the expected amount for each entry. Returns 'unknown' rather than guessing when information is ambiguous.","failureModes":["Transaction hash has no receipt yet (not yet mined) — returns unknown status","Transaction reverted on-chain — reported as revert with no matched transfers","Fee-on-transfer tokens deliver less than declared amount — reported as short","Native ETH transfers cannot be verified via logs — reported as unverifiable","Recipient address not found in any log — reported as missing","Undeclared recipient appears in logs — flagged as unexpected outflow","Malformed transaction hash (not 64 hex chars) — schema validation error","More than 32 expected_transfers entries — rejected by schema","Amount declared as zero — rejected by schema validation"],"whenToPreferThis":"Use this endpoint when an AI agent has just submitted or observed a Base transaction and needs programmatic confirmation that token movements matched intent — especially before releasing goods, updating records, or proceeding to the next workflow step. Prefer it over simple success/fail checks when fee-on-transfer tokens, multi-hop DeFi, or unexpected recipient risk is a concern. It is the right choice when you need per-transfer granularity with matched/missing/short/unverifiable verdicts rather than a binary confirmation. Not suited for Ethereum mainnet or other EVM chains — Base only.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T06:36:19.756Z","isFirstParty":false,"canonicalSlug":"receiptsure-transaction-verification-c463f137"}