# x402 Payment Channel Voucher Auditor

> x402 Payment Channel Voucher Auditor is a paid API for AI agents from x402.halowerk.com, paid per call via x402, $0.006/call, status unknown (last checked 2026-10-17).

Cryptographically audits vouchers in a payment channel by verifying signatures and detecting double-spending, without redeeming or modifying any state.

## Facts

- Endpoint: POST https://x402.halowerk.com/channel/audit?utm_source=zero.xyz
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-payment-channel-voucher-auditor-20c1a06d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Nr6qFPPNv80QaLdpUyjHe

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability x402-payment-channel-voucher-auditor-20c1a06d -d '<json body>'
```

Example prompt: Can you audit all the vouchers in this x402 payment channel for me — verify each signature against its claimed signer address using EIP-712 typed data, flag any duplicate voucher IDs with their amounts, and give me a total sum? I just want the analysis, no redemptions or claims.

## When to prefer this

Use this endpoint when you need a pure cryptographic audit of payment channel vouchers with zero side effects — it never touches on-chain state, claims nothing, and redeems nothing. Prefer it over stateful settlement or claim endpoints when you want to validate integrity before committing, detect fraud in received vouchers, or reconcile channel amounts offline. Best when EIP-712 typed data is available for stronger signature verification, though plain message signatures are also supported.

## Known failure modes

- Invalid or malformed EIP-712 typed data causes signature verification failure
- Missing voucher fields result in parsing errors
- Vouchers with mismatched signer addresses are flagged as invalid signatures
- Large batches of vouchers with many duplicates may increase computation time
- Malformed input JSON returns a 400-level error

## How this service works

Checks vouchers of a payment channel by computation only - nothing is ever claimed, redeemed or refunded. Signatures are verified cryptographically against the address each voucher claims to be signed by, in EIP-712 form when the typed data is supplied, otherwise as a plain message signature. Double spending is the expensive case and is checked in full: every voucher id occurring more than once is reported with all its occurrences and whether the duplicates agree on the amount. Sums are added up

## Output

Returns cryptographic verification results for each voucher including whether the signature is valid against the claimed signer address (in EIP-712 or plain message form), a report of all duplicate voucher IDs with every occurrence listed and whether duplicates agree on the amount, and a running total of all voucher amounts. No on-chain state is changed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "chain": {
   "type": "string",
   "description": "Optional chain, needed only to read the on-chain state, as CAIP-2 such as eip155:8453."
  },
  "vouchers": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "amount"
    ],
    "properties": {
     "id": {
      "type": "string",
      "description": "Voucher identifier."
     },
     "amount": {
      "type": "string",
      "description": "Amount in the smallest unit, as a decimal string."
     },
     "expiry": {
      "type": "string",
      "description": "Optional expiry as a unix timestamp in seconds."
     },
     "claimed": {
      "type": "boolean",
      "description": "Whether the caller considers this voucher already claimed."
     },
     "message": {
      "type": "string",
      "description": "The signed message, for a plain message signature."
     },
     "signature": {
      "type": "string",
      "description": "The signature, 0x-prefixed."
     },
     "signed_by": {
      "type": "string",
      "description": "Address that is claimed to have signed."
     },
     "typed_data": {
      "type": "object",
      "description": "EIP-712 payload with domain, types, primaryType and message."
     }
    },
    "additionalProperties": false
   },
   "maxItems": 200,
   "minItems": 1,
   "description": "The vouchers to audit."
  },
  "deposited": {
   "type": "string",
   "description": "Optional deposit in the smallest unit, used when the contract cannot be read."
  },
  "channel_id": {
   "type": "string",
   "description": "Optional channel identifier as bytes32."
  },
  "channel_contract": {
   "type": "string",
   "description": "Optional channel contract address."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-payment-channel-voucher-auditor-20c1a06d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.halowerk.com](https://www.zero.xyz/host/x402.halowerk.com/llms.txt)
