# Exhibit402 Certificate Re-Verification

> Exhibit402 Certificate Re-Verification is a paid API for AI agents from exhibit402.dylan-caponi.workers.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-14).

Re-verifies an exhibit402 proof-of-publication certificate by recomputing SHA-256 hashes and checking them against on-chain ERC-721 records, returning a machine-readable verdict with per-check detail.

## Facts

- Endpoint: GET https://exhibit402.dylan-caponi.workers.dev/verify
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/exhibit402-certificate-re-verification-79daef9b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Tw9Z4URuRm43qaZoaVqui

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 exhibit402-certificate-re-verification-79daef9b
```

Example prompt: Can you re-verify the exhibit402 proof-of-publication certificate for token id 42 and tell me if all the SHA-256 checks pass and the on-chain record matches?

## When to prefer this

Use this endpoint when you need to independently validate an exhibit402 proof-of-publication certificate without trusting the original issuer — ideal for legal, compliance, or due-diligence workflows where tamper-evidence and cryptographic auditability of a screenshot record matter. Prefer this over manual inspection when you need a machine-readable verdict with granular per-check detail across hash recomputation, Arweave storage, and ERC-721 on-chain anchoring.

## Known failure modes

- Invalid or non-existent id returns an error or unverified verdict
- Arweave network unavailability causes re-download failure
- On-chain record mismatch results in verified: false with failing check details
- Malformed id format (not digits, 43-char Arweave tx, or UUID) triggers input validation error
- Payment failure (x402 protocol) blocks the request before processing

## How this service works

Re-verify any exhibit402 proof-of-publication certificate for $0.02. Pass id = ERC-721 token id, Arweave tx id, or job id. The service re-downloads the permanently stored screenshot and signed manifest, recomputes every SHA-256, and checks them against the manifest and the on-chain record (immutable screenshotSha256, tokenURI, owner). Returns a machine-readable verdict with per-check detail, so an agent can confirm a certificate is genuine without trusting the issuer.

## Output

A JSON object with a boolean 'verified' field indicating overall certificate validity, a 'checks' array containing per-check details (hash recomputation results, tokenURI match, owner confirmation), plus metadata fields including token_id, url, tier, and a human-readable note.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "id"
     ],
     "properties": {
      "id": {
       "type": "string",
       "description": "Certificate identifier: ERC-721 token id (digits), Arweave tx id (43 chars), or exhibit402 job id (uuid)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "url": {
       "type": "string"
      },
      "note": {
       "type": "string"
      },
      "tier": {
       "type": "string"
      },
      "checks": {
       "type": "array"
      },
      "token_id": {
       "type": "string"
      },
      "verified": {
       "type": "boolean"
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/exhibit402-certificate-re-verification-79daef9b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from exhibit402.dylan-caponi.workers.dev](https://www.zero.xyz/host/exhibit402.dylan-caponi.workers.dev/llms.txt)
