# x402 Payment-Gated USDC Wallet Balance Preflight

> x402 Payment-Gated USDC Wallet Balance Preflight is a paid API for AI agents from nova5-x402.yesterdays-signal.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-16).

Checks whether an EVM wallet on Base has sufficient USDC balance to cover a requested payment amount, returning a proceed/fund decision with balance details

## Facts

- Endpoint: GET https://nova5-x402.yesterdays-signal.workers.dev/x402-preflight
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-payment-gated-usdc-wallet-balance-preflight-b5be8baa
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ml9CR0TfgUkmN0ysRvrzk

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 x402-payment-gated-usdc-wallet-balance-preflight-b5be8baa
```

Example prompt: Before we proceed with the payment, check if wallet address 0xAbC123...def456 has enough USDC to cover a $0.05 charge — tell me whether it can pay or needs to be funded.

## When to prefer this

Use this endpoint when you need a live, on-chain preflight check of an EVM wallet's USDC balance on Base before initiating any payment flow — especially within x402-gated agent pipelines. Prefer this over static balance reads when you need a decision signal (PROCEED vs FUND_USDC) with reasoning, not just a raw balance number. Best suited for automated agent workflows that need to gate downstream actions on payment feasibility.

## Known failure modes

- Invalid or malformed EVM address returns an error or empty result
- Amount field missing or non-numeric causes a validation failure
- RPC node unavailable may cause a timeout or empty block_number
- Wallet with zero USDC returns can_pay: false and decision: FUND_USDC
- Payment for the preflight itself (0.01 USDC) fails if calling agent lacks funds

## How this service works

Live Base wallet intelligence paid with USDC via x402

## Output

Returns a JSON object with: the wallet's available USDC balance, remaining USDC after the requested deduction, a boolean 'can_pay' flag, a decision enum of either PROCEED or FUND_USDC, the asset and chain identifiers, the RPC endpoint used, current block number, timestamp, and a list of human-readable reasons explaining the decision.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "amount",
  "address"
 ],
 "properties": {
  "amount": {
   "type": "string",
   "description": "Requested USDC payment amount"
  },
  "address": {
   "type": "string",
   "description": "EVM wallet address"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "asset": {
   "type": "string"
  },
  "chain": {
   "type": "string"
  },
  "address": {
   "type": "string"
  },
  "can_pay": {
   "type": "boolean"
  },
  "network": {
   "type": "string"
  },
  "reasons": {
   "type": "array",
   "items": {
    "type": "string"
   }
  },
  "service": {
   "type": "string"
  },
  "decision": {
   "enum": [
    "PROCEED",
    "FUND_USDC"
   ],
   "type": "string"
  },
  "rpc_used": {
   "type": "string"
  },
  "timestamp": {
   "type": "string"
  },
  "provenance": {
   "type": "string"
  },
  "block_number": {
   "type": "number"
  },
  "asset_address": {
   "type": "string"
  },
  "available_usdc": {
   "type": "string"
  },
  "remaining_usdc": {
   "type": "string"
  },
  "requested_usdc": {
   "type": "string"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-payment-gated-usdc-wallet-balance-preflight-b5be8baa/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from nova5-x402.yesterdays-signal.workers.dev](https://www.zero.xyz/host/nova5-x402.yesterdays-signal.workers.dev/llms.txt)
