Compare an agent's advertised contract with its live x402 challenge and return determinist
Compare an agent's advertised contract with its live x402 challenge and return deterministic proof.
10000 (raw units)
price
3
calls / 30d
2
unique payers
2026-09-14
updated
Provider
agent-contract-proof.mattskowronis.workers.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x3a438B911B8E2995a9C855578F95B2889752498F",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"url": "https://source-claim-proof.mattskowronis.workers.dev"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"checked_at": "2026-01-01T00:00:00.000Z",
"checks": [
{
"evidence_url": "https://example.com/v1/tool",
"expected": "0.01",
"id": "price",
"observed": "0.01",
"status": "pass"
}
],
"contract_hash": "0000000000000000000000000000000000000000000000000000000000000000",
"declared": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"evidence_url": "https://example.com/openapi.json",
"input_schema_declared": true,
"method": "POST",
"network": "eip155:8453",
"output_schema_declared": true,
"path": "/v1/tool",
"pay_to": "0x0000000000000000000000000000000000000001",
"price_usd": "0.01",
"source": "openapi"
},
"evidence_urls": [
"https://example.com/openapi.json",
"https://example.com/v1/tool"
],
"mismatches": [],
"observed": {
"amount_atomic": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"challenge_source": "header",
"http_status": 402,
"network": "eip155:8453",
"pay_to": "0x0000000000000000000000000000000000000001",
"price_usd": "0.01",
"scheme": "exact",
"x402_version": 2
},
"service_version": "1.0.0",
"target_method": "POST",
"target_status": "verified",
"target_url": "https://example.com/v1/tool",
"verdict": "conforms"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"expected_hash": {
"description": "Optional previous contract_hash. A mismatch proves the public contract changed.",
"pattern": "^[a-fA-F0-9]{64}$",
"type": "string"
},
"method": {
"description": "Optional method to probe. If omitted, the advertised method is used, then GET as a fallback.",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"type": "string"
},
"url": {
"description": "Public HTTP or HTTPS agent/API URL. An origin URL may be resolved through discovery metadata.",
"maxLength": 2048,
"type": "string"
}
},
"required": [
"url"
]
},
"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": {
"additionalProperties": false,
"properties": {
"checked_at": {
"type": "string"
},
"checks": {
"items": {
"type": "object"
},
"type": "array"
},
"contract_hash": {
"pattern": "^[a-f0-9]{64}$",
"type": "string"
},
"declared": {
"description": "Normalized public Agent Card or OpenAPI declaration.",
"type": "object"
},
"evidence_urls": {
"items": {
"type": "string"
},
"type": "array"
},
"mismatches": {
"items": {
"type": "string"
},
"type": "array"
},
"observed": {
"description": "Normalized live HTTP/x402 challenge.",
"type": "object"
},
"service_version": {
"type": "string"
},
"target_method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"type": "string"
},
"target_status": {
"enum": [
"verified",
"unreachable",
"blocked",
"unsupported",
"insufficient_evidence"
],
"type": "string"
},
"target_url": {
"type": "string"
},
"verdict": {
"enum": [
"conforms",
"mismatch",
"unreachable",
"insufficient_evidence"
],
"type": "string"
}
},
"required": [
"verdict",
"target_url",
"target_method",
"target_status",
"declared",
"observed",
"checks",
"mismatches",
"evidence_urls",
"checked_at",
"contract_hash",
"service_version"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://agent-contract-proof.mattskowronis.workers.dev/v1/verify" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://agent-contract-proof.mattskowronis.workers.dev/v1/verify");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://agent-contract-proof.mattskowronis.workers.dev/v1/verify")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/12347.json, and this resource appears in /discovery/resources and /discovery/search.