# Plainchain x402 Receipt Verifier

> Plainchain x402 Receipt Verifier is a paid API for AI agents from plainchain.appin60.com, paid per call via x402, $0.002942/call, status unknown (last checked 2026-10-14).

Verifies an x402 USDC payment receipt on-chain by checking a settlement transaction hash, confirming the payer, recipient, and amount match expectations.

## Facts

- Endpoint: GET https://plainchain.appin60.com/v1/x402/receipt?utm_source=zero.xyz
- Price: $0.002942/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/plainchain-x402-receipt-verifier-52ddbaff
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_FxXcFgZRCBH2p7F7ZM6n7

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 plainchain-x402-receipt-verifier-52ddbaff
```

Example prompt: Can you verify that the x402 payment with transaction hash 0xabc123...def456 on Base actually settled to my wallet 0x36c3... for at least 0.01 USDC?

## When to prefer this

Use this endpoint when you need cryptographic on-chain confirmation that an x402 USDC micropayment settled correctly before delivering a service or resource. It is purpose-built for the x402 pay-per-call protocol and supports EIP-3009 transferWithAuthorization semantics across Base, Arbitrum, Ethereum, and Optimism — making it the right choice over generic block explorers when you need structured, agent-friendly verification with optional recipient and amount assertions.

## Known failure modes

- Transaction hash not found or not yet indexed — returns unverified or error
- Hash does not match a USDC x402 settlement transaction
- payTo address mismatch — checks.payToMatches returns false
- Amount below minimum threshold — checks.amountMatches returns false
- Unsupported chain specified — returns error
- Malformed transaction hash (not 0x + 64 hex chars) — schema validation error

## How this service works

Gas, balances, token data, address type, approvals, transaction decoding, x402 receipt verification and verifiable randomness on Base, Arbitrum, Ethereum and Optimism. No API key: pay $0.001-$0.01 per call in USDC on Base via x402.

## Output

Returns a JSON object with a `verified` boolean, the `scheme` (EIP-3009 transferWithAuthorization), full `payment` details (payer, payTo, amount, symbol), number of `confirmations`, and `checks` flags indicating whether the payTo address and amount match the expected values.

## 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": [
      "hash"
     ],
     "properties": {
      "hash": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{64}$",
       "description": "settlement transaction hash"
      },
      "chain": {
       "type": "string",
       "description": "base (default), arbitrum, ethereum or optimism; chain ids 8453, 42161, 1, 10 also work"
      },
      "payTo": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "optional expected recipient"
      },
      "amount": {
       "type": "string",
       "description": "optional minimum expected amount in token units, e.g. 0.01"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "checks": {
   "payToMatches": true,
   "amountMatches": true
  },
  "scheme": "EIP-3009 transferWithAuthorization (x402 exact)",
  "payment": {
   "payTo": "0x36c3...",
   "payer": "0x4c29...",
   "amount": "0.01",
   "symbol": "USDC"
  },
  "verified": true,
  "confirmations": 3820001
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/plainchain-x402-receipt-verifier-52ddbaff/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from plainchain.appin60.com](https://www.zero.xyz/host/plainchain.appin60.com/llms.txt)
