Api Endpoint

HALOWERK x402werk

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

Open interactive test console

Offering

Provider
x402.halowerk.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Security
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://x402.halowerk.com/channel/audit
MIME type
application/json
First seen
2026-10-16T01:52:52.778Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.006 USDC
Atomic price: 6000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "6000",
    "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
  }
]

Observed health

Status
Healthy
Latest latency
318 ms
Average latency
319 ms
HTTP status
204
Last checked
Reachability
100% over 8 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

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

Output schema

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