Reads the receipt of a transaction on Ethereum, Base, Base Sepolia, OP Mainnet,
Reads the receipt of a transaction on Ethereum, Base, Base Sepolia, OP Mainnet, Arbitrum One, Polygon PoS or Avalanche C-Chain and compares it with what you expected to be paid. The comparison runs against the ERC-20 transfer events in the receipt, not against the transaction recipient, because in a token payment the transaction recipient is the token contract and never the seller. Returns every transfer event with sender, recipient, token, raw amount and human amount computed with that token de
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://x402.halowerk.com/settlement/verify
| Category | Market data |
|---|---|
| Provider host | x402.halowerk.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-11 | valid payment request | 402 | $0.002 | 1232 ms |
Example input (from the provider)
{
"body": {
"chain": "arb",
"expected": {
"amount_units": "1000000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
},
"tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
"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": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Chain of the transaction, as CAIP-2 (\"eip155:8453\"), as a short name (\"base\") or as the chain id (\"8453\").",
"enum": [
"arb",
"arbitrum",
"arbitrum-one",
"avalanche",
"avax",
"base",
"base-mainnet",
"base-sepolia",
"basesepolia",
"eip155:1",
"eip155:10",
"eip155:137",
"eip155:42161",
"eip155:43114",
"eip155:8453",
"eip155:84532",
"eth",
"ethereum",
"ethereum-mainnet",
"mainnet",
"matic",
"op",
"op-mainnet",
"optimism",
"polygon"
],
"type": "string"
},
"expected": {
"additionalProperties": false,
"properties": {
"amount_units": {
"description": "Expected amount as an integer in the smallest unit of the token. Omit to skip the amount comparison; amount_matches is then null.",
"pattern": "^[0-9]{1,78}$",
"type": "string"
},
"asset": {
"description": "Expected token contract address, or \"native\" for the chain coin. Omit to accept any token; asset_matches is then null.",
"type": "string"
},
"pay_to": {
"description": "Address that was supposed to receive the payment \u2014 the seller, not the token contract.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
}
},
"required": [
"pay_to"
],
"type": "object"
},
"tx_hash": {
"description": "Hash of the settlement transaction.",
"pattern": "^0x[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"chain",
"tx_hash",
"expected"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}