Verify any XDR-1 receipt — free, stateless, any issuer
receipt_verifyVerifies a signed XDR-1 receipt from ANY x402 service: recomputes the canonical digest and recovers the signer, then compares it to the declared signer. Free forever — no account, no quota, no storage (stateless). A valid receipt proves the signer signed that tool call at that timestamp; it does NOT prove funds moved or any business claim.
Example tool call
This call uses example arguments supplied in the tool’s input schema.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"receipt": {
"v": "XDR-1",
"ts": 0,
"tier": "free",
"tool": "iban-check",
"nonce": "0x…",
"payer": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"amount": "0",
"signer": "0xa036e2e3e19c6d02f30b3a9eb0acd057e6d9a5c8",
"recipient": "0xc59c85e661d34084a7769f955d17fd38254a6235",
"signature": "0x…",
"input_hash": "0x…",
"output_hash": "0x…",
"tool_version": "1"
}
},
"name": "receipt_verify"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | The full XDR-1 receipt object: v, tool, tool_version, input_hash, output_hash, payer, recipient, amount, nonce, ts, tier, signer, signature (optional successor/stream_state). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| valid | No | ||
| digest | No | ||
| canonical | No | ||
| declared_signer | No | ||
| signer_recovered | No |