Check whether a mined Base transaction did what your agent meant it to do
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.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://receipt.schemasure.com/v1/tx/receipt-verify
| Category | Everything else |
|---|---|
| Provider host | receipt.schemasure.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 10 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"body": {
"expected_transfers": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"from": "0x9F2C5E4A8db1C3a7E6B0d4f8C1E2a5b7D9C0e3F4",
"to": "0x5d3e1a9b7c2f4e8a0b6d3c5f9e1a7b4d2c8f0a6e"
}
],
"tx_hash": "0x7f1c3a58e0b94d26c5af7318d0e42b96c1d85f0a3b72e648d9c05147ae2b6f30"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"description": "A mined Base transaction plus the movements you meant it to make. Both are required: with no declared intent there is nothing for a receipt to agree or disagree with.",
"properties": {
"expected_transfers": {
"description": "What you intended to move. Each entry is checked against the decoded logs and reported as matched, missing, short, or unverifiable.",
"items": {
"additionalProperties": false,
"properties": {
"amount": {
"description": "Base units, not display units: 1 USDC is \"1000000\". Must be above zero.",
"pattern": "^[0-9]+$",
"type": "string"
},
"asset": {
"description": "Token contract. Omit or null for native ETH, which emits no log and is therefore reported unverifiable rather than matched.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": [
"string",
"null"
]
},
"asset_kind": {
"description": "Optional. Inferred from asset and token_id when absent.",
"enum": [
"native",
"erc20",
"erc721",
"erc1155",
"unknown"
],
"type": "string"
},
"from": {
"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.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": [
"string",
"null"
]
},
"to": {
"description": "The intended recipient.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"token_id": {
"description": "ERC-721 or ERC-1155 token id, when the movement names one.",
"pattern": "^[0-9]+$",
"type": [
"string",
"null"
]
}
},
"required": [
"to",
"amount"
],
"type": "object"
},
"maxItems": 32,
"minItems": 1,
"type": "array"
},
"tx_hash": {
"description": "The Base transaction to check. A hash with no receipt yet answers unknown.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"tx_hash",
"expected_transfers"
],
"title": "ReceiptVerifyRequest",
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"data_versions": {
"type": "object"
},
"evidence": {
"items": {
"type": "object"
},
"type": "array"
},
"ok": {
"type": "boolean"
},
"policy_version": {
"type": "string"
},
"request_hash": {
"type": "string"
},
"result": {
"properties": {
"denylist_hits": {
"items": {
"type": "object"
},
"type": "array"
},
"effect": {
"description": "silent_success is the succeeded-but-moved-nothing case.",
"type": "object"
},
"fee_on_transfer": {
"items": {
"type": "object"
},
"type": "array"
},
"observed_approvals": {
"items": {
"type": "object"
},
"type": "array"
},
"observed_transfers": {
"items": {
"type": "object"
},
"type": "array"
},
"receipt": {
"description": "status is success, reverted, unknown, not_mined, or unavailable.",
"type": "object"
},
"revert": {
"description": "reason is null when the receipt carries none.",
"type": "object"
},
"transfer_checks": {
"description": "One per declared transfer: matched, amount