# Agent Buyer Identity Preflight | x402 Purchase Governance

> Agent Buyer Identity Preflight | x402 Purchase Governance is a paid API for AI agents from base-agent-preflight.bytoken2023.workers.dev, paid per call via x402, $0.5/call, status unknown (last checked 2026-09-14).

Performs a pre-purchase risk and identity assessment for an AI agent attempting to buy an x402-gated API, dataset, or tool on Base.

## Facts

- Endpoint: GET https://base-agent-preflight.bytoken2023.workers.dev/v1/x402/transaction/preflight-plus
- Price: $0.5/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-buyer-identity-preflight-x402-purchase-governance-e528c9cc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CGxP4C0OquD4_zT8eC6l7

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 agent-buyer-identity-preflight-x402-purchase-governance-e528c9cc
```

Example prompt: Before my agent wallet 0xABC...123 pays merchant 0xDEF...456 the expected 5.00 USDC for that x402 API, run the SignGate preflight check to make sure the buyer role, price, and approval policy all clear.

## When to prefer this

Use this endpoint when an AI agent is about to execute an x402 micropayment and you need a governance gate — specifically to verify buyer identity, check price/sensitivity thresholds, and confirm approval policy before committing funds. Prefer this over a generic transaction validator when the purchase involves an x402-gated resource on Base and you need a structured risk_score plus flags rather than just a boolean pass/fail.

## Known failure modes

- Missing or malformed merchant_address returns a 400 validation error
- Invalid Ethereum address format (not matching ^0x[a-fA-F0-9]{40}$) rejected at input
- High risk_score or non-empty flags array indicates agent should not proceed with purchase
- Endpoint unavailable or Cloudflare Worker error returns 5xx with no assessment
- expected_amount not matching on-chain allowance may trigger a flag in the assessment
- Unknown or unregistered merchant address may return risk_level 'unknown' or elevated score

## How this service works

Machine-payable service intelligence for discovering, verifying, and monitoring identity, risk, authorization, execution-preflight, and evidence APIs before autonomous agents spend.

## Output

Returns a JSON object containing the network (e.g. eip155:8453 for Base), product identifier, risk_score (numeric), risk_level (e.g. 'low'), and a flags array listing any governance or identity issues detected. May also include identity, activity, and provenance sub-objects describing the buyer agent's profile and transaction history.

## 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": [
      "merchant_address"
     ],
     "properties": {
      "tx": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{64}$"
      },
      "owner": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      },
      "since": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}T.+Z$"
      },
      "token": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      },
      "spender": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      },
      "gas_limit": {
       "type": "string",
       "pattern": "^[0-9]+$"
      },
      "from_block": {
       "type": "string",
       "pattern": "^[0-9]+$"
      },
      "wallet_address": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      },
      "expected_amount": {
       "type": "string",
       "pattern": "^[0-9]+(?:\\.[0-9]{1,6})?$"
      },
      "contract_address": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      },
      "merchant_address": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      },
      "expected_recipient": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "network": {
       "type": "string"
      },
      "product": {
       "type": "string"
      },
      "activity": {
       "type": "object"
      },
      "identity": {
       "type": "object"
      },
      "assessment": {
       "type": "object"
      },
      "provenance": {
       "type": "object"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "network": "eip155:8453",
  "product": "x402-transaction-preflight-plus",
  "assessment": {
   "flags": [],
   "risk_level": "low",
   "risk_score": 0
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-buyer-identity-preflight-x402-purchase-governance-e528c9cc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from base-agent-preflight.bytoken2023.workers.dev](https://www.zero.xyz/host/base-agent-preflight.bytoken2023.workers.dev/llms.txt)
