# FairSeal Blockchain Notarization

> FairSeal Blockchain Notarization is a paid API for AI agents from x402.fairseal.io, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-23).

Anchors an AI agent decision or audit record to Base mainnet via a Merkle batch, returning a receipt immediately and a full on-chain proof once the batch settles.

## Facts

- Endpoint: POST https://x402.fairseal.io/v1/notarize?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fairseal-blockchain-notarization-ef1d8105
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Do6JS2XxpIcnxaS3wt6E7

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 fairseal-blockchain-notarization-ef1d8105 -d '<json body>'
```

Example prompt: Anchor my agent's decision record to Base mainnet — the schema is agent_decision, the payload hash is a3f1...c2d9 (64-char SHA-256), and the metadata includes agent_id 'agent-42', decided_at '2024-06-01T12:00:00Z', input_hash 'e5b2...f7a1', and decision_hash 'd8c3...9b0e'. Use an idempotency key so we don't get double-charged if the request retries.

## When to prefer this

Choose this endpoint when you need a tamper-proof, on-chain record of an AI agent decision, audit event, or probe result anchored to Base mainnet with a verifiable Merkle proof. It is ideal for compliance, governance, and accountability use cases where you need an immutable cryptographic attestation retrievable later. Use the Idempotency-Key header on retries to avoid double-charges.

## Known failure modes

- Invalid payload_hash format (not 64 lowercase hex chars) — 400 validation error
- Missing required metadata fields for the chosen schema (e.g. agent_id for agent_decision) — 400 error
- Payment failure or insufficient USDC balance — 402 Payment Required
- Duplicate submission without Idempotency-Key may result in double charges — use header to prevent
- Batch anchor delay beyond 120s in case of network congestion — proof may be temporarily unavailable
- Unknown schema type provided — 400 enum validation error

## How this service works

Anchor an AI agent decision or audit record to Base mainnet. Submit {schema, payload_hash (SHA-256 hex, 64 chars), metadata}; service queues into a Merkle batch and returns a receipt with pending_anchor status immediately. Full Merkle proof and on-chain anchor_tx available via free GET /v1/notarize/:receipt_id after batch anchors (within batch_threshold receipts or 120s). Include Idempotency-Key header to prevent double-charges on retry.

## Output

An immediate receipt object with a receipt_id and pending_anchor status. Once the Merkle batch settles (within the batch threshold or 120 seconds), a GET /v1/notarize/:receipt_id returns the full Merkle proof and the on-chain anchor transaction hash on Base mainnet.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "schema",
      "payload_hash",
      "metadata"
     ],
     "properties": {
      "schema": {
       "enum": [
        "agent_decision",
        "audit_evidence",
        "probe_record"
       ],
       "type": "string"
      },
      "metadata": {
       "type": "object",
       "description": "Schema-specific metadata. agent_decision requires {agent_id, decided_at, input_hash, decision_hash}"
      },
      "payload_hash": {
       "type": "string",
       "pattern": "^[0-9a-f]{64}$",
       "description": "SHA-256 hex of full payload (64 lowercase hex chars)"
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fairseal-blockchain-notarization-ef1d8105/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.fairseal.io](https://www.zero.xyz/host/x402.fairseal.io/llms.txt)
