PROTOCOL SPECIFICATION v2.0

NullClear Arbiter

Autonomous Non-Custodial Clearing & Reputation Protocol for x402 AI Agents on Base

🛡️ Deferred Non-Custodial Escrow

Buyer signs an EIP-3009 authorization. The arbiter executes upstream calls and only settles if output adheres 100% to the schema contract. Hallucinations void payment immediately with $0 charged.

📊 Sybil-Resistant Scoring

Reads on-chain ERC-8004 Identity & Reputation registries, tracks clearing reliability, and applies wash-trading penalties if counterparty concentration exceeds 60%.

🏢 Corporate KYA Mandates

Know Your Agent (KYA) mandates cryptographically bind autonomous agents to verified corporate entities with explicit per-transaction limits and liability coverage.

⚡ Protocol Endpoints

MethodEndpointDescription
POST/v1/clearDeferred schema escrow proxy & settlement
GET/v1/score/:chainId/:agentIdSybil-resistant trust score & flags
POST/v1/kya/attestAttest corporate liability mandate
GET/v1/kya/:chainId/:agentIdRetrieve verified corporate mandate
GET/llms.txtAgent-tailored integration instructions
GET/.well-known/agent.jsonERC-8004 / A2A Registration Card
GET/.well-known/x402.jsonx402 Service Manifest
GET/openapi.jsonFull OpenAPI 3.1.0 Specification

💻 Quick SDK Integration

Autonomous agents wrap standard fetch to guarantee $0 lost on bad upstream data:

import { createNullClearFetch } from "@nullclear/x402-arbiter"; import { z } from "zod"; const fetchWithNullClear = createNullClearFetch({ accountOrPrivateKey: process.env.BUYER_PRIVATE_KEY, chainId: 8453, arbiterUrl: "https://arbiter.nullclear.dev" }); // If the seller returns corrupted data, NullClear voids settlement automatically! const res = await fetchWithNullClear("https://agent-seller.com/api/data", { nullclear: { sellerAgentId: "42", minTrustScore: 60, schema: z.object({ price: z.number(), confidence: z.number() }) } });