{
  "x402Version": 2,
  "id": 6767,
  "slug": "6767",
  "resource": "https://enclave402.com/api/seller/vet",
  "description": "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.",
  "type": "http",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0xbeF3e7CFd486C14dD8c3aA5911134bF361B973C5",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "10000",
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "resource": "https://seller.example/api/route"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "attestation": null,
            "bazaar": {
              "callsPerPayer": 20,
              "indexed": true,
              "totalCalls30d": 240,
              "uniquePayers30d": 12
            },
            "challenge": {
              "accept": {
                "network": "eip155:8453",
                "priceUsdc": 0.01
              },
              "isV2": true,
              "reachable": true,
              "status": 402
            },
            "changes": [
              {
                "field": "verdict",
                "from": "STALE",
                "to": "LIVE"
              },
              {
                "field": "score",
                "from": 70,
                "to": 90
              }
            ],
            "checkedAt": "2026-01-01T00:00:00.000Z",
            "findings": [
              {
                "code": "thin-listing",
                "message": "Bazaar entry lacks tags.",
                "severity": "low"
              }
            ],
            "method": "GET",
            "previous": {
              "checkedAt": "2025-12-31T18:00:00.000Z",
              "score": 70,
              "usagePattern": "evaluation",
              "verdict": "STALE"
            },
            "resource": "https://seller.example/api/route",
            "score": 90,
            "settled": true,
            "trust": {
              "/.well-known/security.txt": true,
              "/.well-known/x402": true,
              "/llms.txt": true,
              "/transparency": true
            },
            "ts": 1767225600000,
            "usagePattern": "repeat",
            "verdict": "LIVE"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "method": {
                    "default": "GET",
                    "description": "HTTP method the resource expects; POST resources are probed with an empty JSON body.",
                    "enum": [
                      "GET",
                      "POST"
                    ],
                    "type": "string"
                  },
                  "resource": {
                    "description": "Absolute https URL of the x402 resource to vet (the paid route itself, not the seller homepage).",
                    "examples": [
                      "https://seller.example/api/route"
                    ],
                    "maxLength": 2048,
                    "pattern": "^https://",
                    "type": "string"
                  }
                },
                "required": [
                  "resource"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "additionalProperties": false,
                "properties": {
                  "attestation": {
                    "description": "EIP-712 signature over resource, checkedAt, verdict, score, usagePattern and changes by the published attestor, verifiable offline; null when the attestor is unconfigured",
                    "type": [
                      "object",
                      "null"
                    ]
                  },
                  "bazaar": {
                    "description": "CDP Bazaar index entry for the resource: indexed, lastCalledAt, uniquePayers30d, totalCalls30d, callsPerPayer",
                    "type": "object"
                  },
                  "challenge": {
                    "description": "What the target 402 actually said: status, x402Version, accepts[0], description length, WWW-Authenticate presence, networks offered",
                    "type": "object"
                  },
                  "changes": {
                    "description": "Fields that differ from the previous verdict (verdict, score, usagePattern, findingCodes, priceUsdc, payTo, indexed, uniquePayers30d, totalCalls30d, lastCalledAt); empty when unchanged or first check",
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "field": {
                          "type": "string"
                        },
                        "from": {},
                        "to": {}
                      },
                      "required": [
                        "field",
                        "from",
                        "to"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "checkedAt": {
                    "description": "ISO-8601 time of the probe",
                    "type": "string"
                  },
                  "findings": {
                    "description": "Every deduction, machine-coded and human-readable",
                    "items": {
                      "additionalProperties": false,
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "severity": {
                          "enum": [
                            "critical",
                            "high",
                            "medium",
                            "low",
                            "info"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "severity",
                        "message"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "method": {
                    "enum": [
                      "GET",
                      "POST"
                    ],
                    "type": "string"
                  },
                  "previous": {
                    "description": "Summary of the last verdict this gateway issued for the same resource (checkedAt, verdict, score, usagePattern); null on first check. Call on a schedule and this is your watch.",
                    "type": [
                      "object",
                      "null"
                    ]
                  },
                  "resource": {
                    "description": "Normalized resource URL that was vetted",
                    "type": "string"
                  },
                  "score": {
                    "description": "40 challenge shape + 40 Bazaar usage + 20 trust surfaces",
                    "maximum": 100,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "settled": {
                    "description": "true when an x402 payment settled for this response",
                    "type": "boolean"
                  },
                  "trust": {
                    "description": "Which of /.well-known/x402, /llms.txt, /.well-known/security.txt, /transparency the origin publishes",
                    "type": "object"
                  },
                  "ts": {
                    "description": "Response timestamp, UNIX milliseconds",
                    "type": "integer"
                  },
                  "usagePattern": {
                    "description": "repeat = calls/payer at or above the repeat threshold; evaluation = buyers try once and leave",
                    "enum": [
                      "none",
                      "evaluation",
                      "repeat",
                      "unknown"
                    ],
                    "type": "string"
                  },
                  "verdict": {
                    "description": "LIVE = payable, indexed, recently called. STALE = indexed but not called within VET_STALE_DAYS. UNLISTED = payable but never counted by the Bazaar. MISCONFIGURED = an x402 buyer cannot pay it as served. UNREACHABLE = no answer.",
                    "enum": [
                      "LIVE",
                      "STALE",
                      "UNLISTED",
                      "MISCONFIGURED",
                      "UNREACHABLE"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "resource",
                  "method",
                  "checkedAt",
                  "verdict",
                  "score",
                  "usagePattern",
                  "findings",
                  "challenge",
                  "bazaar",
                  "trust",
                  "previous",
                  "changes",
                  "settled",
                  "ts"
                ],
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "bazaar"
  ],
  "sourceHost": "enclave402.com",
  "lastUpdated": "2026-09-18T16:32:12.246Z",
  "quality": {
    "calls30d": 5,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-09-18T16:32:17.685Z"
  },
  "liveness": {},
  "verified": false,
  "featured": false,
  "provider": {
    "host": "enclave402.com",
    "manifest_name": "enclave402.com",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-09-18T22:00:31.484Z"
  }
}