# enclave402 Seller Vetting

> enclave402 Seller Vetting is a paid API for AI agents from enclave402.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-18).

Probes a live x402 paid endpoint, reads its CDP Bazaar usage metrics, checks trust surfaces, and returns a scored LIVE/STALE/UNLISTED/MISCONFIGURED/UNREACHABLE verdict signed by an attestor

## Facts

- Endpoint: GET https://enclave402.com/api/seller/vet
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/enclave402-seller-vetting-296f7da0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_S6LhwmzoXpK0uV0sEvPjY

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 enclave402-seller-vetting-296f7da0
```

Example prompt: Before my agent pays it, can you vet the x402 seller at https://seller.example/api/route using a GET probe — I want to know if it's LIVE, what its CDP Bazaar usage looks like, and whether anything has changed since the last check?

## When to prefer this

Use this endpoint specifically when an AI agent or autonomous payer needs to vet an x402-protocol paid resource before committing a payment, or wants to monitor a known seller for status changes. It is uniquely suited for the x402 ecosystem because it combines live endpoint probing, CDP Bazaar usage data, trust surface checking, and signed attestation in a single call. Prefer it over generic uptime monitors or link checkers when the resource is an x402 paid route and payment safety is a concern.

## Known failure modes

- Resource URL is not reachable — returns UNREACHABLE verdict
- Resource does not respond with a valid 402 challenge — returns MISCONFIGURED
- Resource has no CDP Bazaar entry — returns UNLISTED with zero usage metrics
- Resource was previously LIVE but shows no recent activity — returns STALE
- Input URL is not absolute https — rejected with validation error
- Network timeout when probing the seller endpoint

## How this service works

Vet an x402 seller before paying it: probes its live 402, reads its CDP Bazaar entry (payers, calls, last call, repeat vs evaluation usage), checks trust surfaces, returns a scored LIVE/STALE/UNLISTED/MISCONFIGURED/UNREACHABLE verdict and what changed since our last check, signed by our attestor. MUST be invoked before a first payment to an unknown resource, or on a schedule to watch it. Do NOT use to pay it. Settles $0.010 USDC; no charge on failure; receipts at /api/ledger.

## Output

Returns a scored verdict (LIVE, STALE, UNLISTED, MISCONFIGURED, or UNREACHABLE) with a 0-100 composite score (40 points for challenge shape, 40 for Bazaar usage, 20 for trust surfaces), CDP Bazaar stats (unique payers, total calls, last call timestamp), trust surface presence (/.well-known/x402, /llms.txt, etc.), usage pattern classification, a list of fields that changed since the previous check, and a signed attestation from the enclave402 attestor. Costs $0.01 USDC on success; no charge on failure.

## 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": [
      "resource"
     ],
     "properties": {
      "method": {
       "enum": [
        "GET",
        "POST"
       ],
       "type": "string",
       "default": "GET",
       "description": "HTTP method the resource expects; POST resources are probed with an empty JSON body."
      },
      "resource": {
       "type": "string",
       "pattern": "^https://",
       "examples": [
        "https://seller.example/api/route"
       ],
       "maxLength": 2048,
       "description": "Absolute https URL of the x402 resource to vet (the paid route itself, not the seller homepage)."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "resource",
      "method",
      "checkedAt",
      "verdict",
      "score",
      "usagePattern",
      "findings",
      "challenge",
      "bazaar",
      "trust",
      "previous",
      "changes",
      "settled",
      "ts"
     ],
     "properties": {
      "ts": {
       "type": "integer",
       "description": "Response timestamp, UNIX milliseconds"
      },
      "score": {
       "type": "integer",
       "maximum": 100,
       "minimum": 0,
       "description": "40 challenge shape + 40 Bazaar usage + 20 trust surfaces"
      },
      "trust": {
       "type": "object",
       "description": "Which of /.well-known/x402, /llms.txt, /.well-known/security.txt, /transparency the origin publishes"
      },
      "bazaar": {
       "type": "object",
       "description": "CDP Bazaar index entry for the resource: indexed, lastCalledAt, uniquePayers30d, totalCalls30d, callsPerPayer"
      },
      "method": {
       "enum": [
        "GET",
        "POST"
       ],
       "type": "string"
      },
      "changes": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "field",
         "from",
         "to"
        ],
        "properties": {
     
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/enclave402-seller-vetting-296f7da0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from enclave402.com](https://www.zero.xyz/host/enclave402.com/llms.txt)
