# 402 Guard — x402 Payment Requirement Linter

> 402 Guard — x402 Payment Requirement Linter is a paid API for AI agents from x402.momentbolt.com, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

Validates x402 v2 PaymentRequired envelopes against caller policy rules, returning a structured lint report with errors, warnings, risk score, and a pass/fail verdict.

## Facts

- Endpoint: POST https://x402.momentbolt.com/api/lint
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/402-guard-x402-payment-requirement-linter-69334ad5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_i4Avv00YuL-uSKvKbL8oQ

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 402-guard-x402-payment-requirement-linter-69334ad5 -d '<json body>'
```

Example prompt: Before my agent pays this x402 invoice, lint the PaymentRequired envelope against my policy — max $0.05 USD, pay-to must be 0x1111111111111111111111111111111111111111, USDC on Base only — and tell me if it passes or has any errors.

## When to prefer this

Use this endpoint when an AI agent needs to programmatically validate an x402 v2 PaymentRequired envelope before authorizing a payment — especially when enforcing caller-side policy controls like address allowlists, USD amount caps, asset restrictions, or network restrictions. Prefer this over manual inspection when operating autonomously at scale, since it returns machine-readable verdicts and risk scores. It is purpose-built for x402 payment safety and is not a general-purpose DNS or domain auditing tool.

## Known failure modes

- Malformed or missing paymentRequired object returns validation errors in the issues array
- Policy fields with incompatible types may cause a 400-level rejection
- Pay-to address not on allowlist returns a policy violation issue
- Amount exceeding maxAmountUsd cap triggers a warning or error
- Unsupported asset or network returns a disallowed-asset/network issue
- Network or service unavailability returns a non-200 HTTP error

## How this service works

Lint x402 payment requirements or audit live DNS and email-security posture with tiny USDC payments on Base.

## Output

A JSON object with an 'ok' boolean, an 'issues' array listing individual lint findings, a 'summary' object with error and warning counts and the number of requirements checked, a 'verdict' string ('pass' or 'fail'), a numeric 'riskScore', a 'policyApplied' object reflecting which allowlist rules were enforced, and a disclaimer about the scope of the check.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "policy": {
   "type": "object",
   "description": "Optional local allowlists and caps"
  },
  "paymentRequired": {
   "type": "object",
   "description": "x402 v2 PaymentRequired envelope"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "issues": [],
  "summary": {
   "errors": 0,
   "warnings": 0,
   "requirementsChecked": 1
  },
  "verdict": "pass",
  "riskScore": 0,
  "disclaimer": "This validates payment-requirement structure and caller policy; it does not establish counterparty legitimacy or provide financial advice.",
  "policyApplied": {
   "allowedPayTo": [
    "0x1111111111111111111111111111111111111111"
   ],
   "maxAmountUsd": 0.05,
   "allowedAssets": [
    "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
   ],
   "allowedNetworks": [
    "eip155:8453"
   ],
   "maxTimeoutSeconds": 300
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/402-guard-x402-payment-requirement-linter-69334ad5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.momentbolt.com](https://www.zero.xyz/host/x402.momentbolt.com/llms.txt)
