# AISkills402: Base Receipt Verify

> AISkills402: Base Receipt Verify is a paid API for AI agents from api.aiskills402.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-17).

Verifies on Base mainnet that a specific transaction genuinely paid USDC to an address, returning status, transfer details, payer, amount, and EIP-3009 nonce from chain logs

## Facts

- Endpoint: POST https://api.aiskills402.com/v1/run/base-receipt-verify?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/aiskills402-base-receipt-verify-f4ef8a94
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_eJq8ao5bgYWSKliRm3GvA

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 aiskills402-base-receipt-verify-f4ef8a94 -d '<json body>'
```

Example prompt: Can you verify on Base mainnet that transaction 0x3a7f...c21d actually paid 3000 micro-USDC (0.003 USDC) to address 0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4 — confirm the status, amount, and who sent it, straight from the chain logs?

## When to prefer this

Use this endpoint when you need to independently verify a USDC payment on Base mainnet directly from chain logs without relying on a relayer's report. It is ideal for trustless payment confirmation in agentic workflows, release-on-payment automation, and fraud prevention where a relayer or counterparty could falsify receipts. Prefer it over reading relayer state when EIP-3009 nonce verification is needed or when the amounts/addresses must be cryptographically confirmed on-chain.

## Known failure modes

- Transaction hash not found on Base mainnet — returns found:false
- Transaction found but status is not success (e.g. reverted) — verdict will not be 'confirmed'
- Amount mismatch — amount_matches check returns false if on-chain value differs from amount_micro
- Recipient mismatch — to_matches check returns false if pay_to doesn't match actual recipient
- Asset is not Base USDC — asset_is_usdc_base returns false
- Invalid transaction hash format — schema validation error on tx field
- Network or RPC node unavailable — upstream error from base.drpc.org
- Payment for the API call itself insufficient — x402 402 response if USDC not sent

## How this service works

Base Receipt Verify API: checks on Base mainnet that a transaction really paid USDC to an address - status, transfer, amount, payer and EIP-3009 nonce from the chain logs, never from the relayer. Base mainnet USDC only. $0.005 USDC per check, a live measurement. POST JSON {tx, pay_to, amount_micro?, from?, nonce?}; free example at https://api.aiskills402.com/v1/run/base-receipt-verify/example

## Output

Returns a JSON object with a 'verdict' field (e.g. 'confirmed'), a 'checks' sub-object showing whether the recipient, sender, nonce, amount, transaction status, and asset type each match, a 'transfer' object with the actual on-chain from/to/value_micro values, block number, confirmation count, latest block, EIP-3009 authorization details including nonce and authorizer, timestamp of the check, and which node answered. Also includes a top-level 'ok' boolean and 'replay' flag.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "tx": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{64}$",
   "description": "Transaction hash on Base mainnet."
  },
  "from": {
   "type": [
    "string",
    "null"
   ],
   "pattern": "^0x[0-9a-fA-F]{40}$",
   "description": "Expected payer (the transfer sender, not the relayer); null = do not check."
  },
  "nonce": {
   "type": [
    "string",
    "null"
   ],
   "pattern": "^0x[0-9a-fA-F]{64}$",
   "description": "Expected EIP-3009 authorization nonce; with from, also asked of the chain when the receipt is unknown."
  },
  "pay_to": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{40}$",
   "description": "The address that should have received USDC."
  },
  "amount_micro": {
   "type": [
    "string",
    "null"
   ],
   "pattern": "^[0-9]{1,30}$",
   "description": "Expected amount in USDC micro-units (6 decimals); null = do not check."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "skill": "base-receipt-verify",
  "engine": "1.0.0",
  "replay": false,
  "result": {
   "block": 52689216,
   "found": true,
   "checks": {
    "to_matches": true,
    "from_matches": null,
    "nonce_matches": null,
    "amount_matches": true,
    "status_success": true,
    "asset_is_usdc_base": true
   },
   "status": "success",
   "verdict": "confirmed",
   "findings": [],
   "transfer": {
    "to": "0x8e37022edcf0f21cf3c9f93fee9d4d32519f36f4",
    "from": "0xa340966d806f114483d671f6bf934daebbdff8dc",
    "value_micro": "3000"
   },
   "checked_at": "2026-10-16T17:26:09.575Z",
   "answered_by": "base.drpc.org",
   "nodes_asked": 1,
   "nonce_state": null,
   "latest_block": 52691111,
   "authorization": {
    "nonce": "0x61a1b7ac2ab9f8c22da20dc2802be3c298f8a7e5d598fc8c5d09d7b5de28f1ca",
    "authorizer": "0xa340966d806f114483d671f6bf934daebbdff8dc"
   },
   "confirmations": 1895
  },
  "receipt": {
   "tx": "0x<settlement transaction>",
   "settled": true
  },
  "refusal": null,
  "input_sha256": "<sha256 of the request>"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/aiskills402-base-receipt-verify-f4ef8a94/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.aiskills402.com](https://www.zero.xyz/host/api.aiskills402.com/llms.txt)
