40
Monitoring · x402 · early usage

Call before paying an unfamiliar x402 endpoint, or to pick between providers

Call before paying an unfamiliar x402 endpoint, or to pick between providers. $0.02, usually <1 s plus one probe: live unpaid probe (status, latency, TLS, PAYMENT-REQUIRED decoded and sanity-checked), seller reputation from indexed on-chain USDC payments to i…

by tokencheck.402api.dev · discovered, not yet claimed by its owner · updated 2026-10-10

30d calls2
30d payers1
MethodGET
Outputjson

Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.

What it does

Call before paying an unfamiliar x402 endpoint, or to pick between providers. $0.02, usually <1 s plus one probe: live unpaid probe (status, latency, TLS, PAYMENT-REQUIRED decoded and sanity-checked), seller reputation from indexed on-chain USDC payments to its Base payTo (24 h/7 d count, distinct payers, total and median USD, top-payer share), Bazaar listing and price, and a looks legit/caution/avoid verdict citing each fact. Errors: 400/503 JSON {error}, not charged.

Tags: x402 · seller-reputation · trust · provider-selection · pre-payment-check · bazaar

Call contract

Method
GET
Input
query parameters
Output
json
Last paid call
2026-10-10
Input example from Bazaar metadata
{
  "url": "https://tokencheck.402api.dev/v1/token-check"
}
Output example
{
  "bazaar": {
    "catalogRefreshedAt": "2026-10-09T23:20:22.525Z",
    "catalogSize": 34791,
    "listed": true,
    "listing": {
      "amount": "5000",
      "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
      "calls30d": 4581,
      "description": "Health check ping",
      "firstSeenByIndexer": "2026-10-09T23:20:21.000Z",
      "lastCalledAt": "2026-10-09T18:46:08.848Z",
      "lastSeenByIndexer": "2026-10-09T23:20:21.000Z",
      "lastUpdated": "2026-10-09T21:29:46.127Z",
      "method": "GET",
      "network": "eip155:8453",
      "payTo": "0x589a2314a2e05f45e40c4823da3ba58d421db3d8",
      "payers30d": 110,
      "resource": "https://www.api-xpay.com/x402/ping",
      "serviceName": "X Pay"
    },
    "listingsForPayTo": 14,
    "otherListings": [
      {
        "calls30d": 4539,
        "description": "Payment receipt with transaction details",
        "resource": "https://www.api-xpay.com/x402/payment"
      },
      {
        "calls30d": 4357,
        "description": "Service status and payment configuration",
        "resource": "https://www.api-xpay.com/x402/status"
      }
    ]
  },
  "index": {
    "indexedThroughBlock": 52401878,
    "indexedThroughTime": "2026-10-10T00:45:03.000Z",
    "payTosFullyBackfilled": 1494,
    "payTosTracked": 1494
  },
  "measuredAt": "2026-10-10T00:45:31.943Z",
  "notes": [
    "Measured facts, not advice. Incoming USDC counts every transfer to the payTo, not only x402 settlements; distinct payers can still be one operator with many wallets."
  ],
  "payTo": "0x589a2314a2e05f45e40c4823da3ba58d421db3d8",
  "probe": {
    "measuredAt": "2026-10-10T00:45:30.978Z",
    "method": "GET",
    "methodNote": "GET without payment",
    "ms": 890,
    "ok": true,
    "status": 402,
    "tls": {
      "daysLeft": 61,
      "issuer": "Let's Encrypt",
      "ok": true,
      "validTo": "2026-12-10T09:14:50.000Z"
    },
    "url": "https://www.api-xpay.com/x402/ping",
    "x402": {
      "accepts": [
        {
          "amountAtomic": "5000",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "maxTimeoutSeconds": 60,
          "network": "eip155:8453",
          "payTo": "0x589a2314a2e05f45e40c4823da3ba58d421db3d8",
          "problems": [],
          "recognised": "USDC on Base",
          "scheme": "exact",
          "usd": 0.005
        }
      ],
      "description": "Health check ping",
      "problems": [],
      "resourceUrl": "https://www.api-xpay.com/x402/ping",
      "source": "PAYMENT-REQUIRED header",
      "valid": true,
      "version": 2
    }
  },
  "query": {
    "payTo": null,
    "url": "https://www.api-xpay.com/x402/ping"
  },
  "reasons": [
    "Unpaid GET answered 402 with valid x402 v2 requirements (PAYMENT-REQUIRED header): $0.005 USDC on Base to 0x589a2314a2e05f45e40c4823da3ba58d421db3d8 in 890 ms.",
    "Listed in the CDP Bazaar as \"X Pay\" (Bazaar reports 4,581 calls / 110 payers in 30 d).",
    "20,049 USDC payment(s) from 137 distinct payer(s), $2,276.68 total, in the last 7 d."
  ],
  "reputation": {
    "firstPaymentSeen": "2026-10-03T00:45:15.000Z",
    "indexed": true,
    "indexedThroughBlock": 52401878,
    "last24h": {
      "complete": true,
      "coveredSince": "2026-10-09T00:45:05.000Z",
      "distinctPayers": 17,
      "medianUsd": 0.005,
      "payments": 1930,
      "topPayerShare": 0.29,
      "totalUsd": 409.22096
    },
    "last7d": {
      "complete": true,
      "coveredSince": "2026-10-03T00:45:05.000Z",
      "distinctPayers": 137,
      "medianUsd": 0.005,
      "payments": 20049,
      "topPayerShare": 0.073,
      "totalUsd": 2276.67891
    },
    "method": "USDC Transfer events on Base whose recipient is this address, indexed continuously by 402api from eth_getLogs (every incoming USDC transfer counts, not only x402 settlements; amounts in USD at 1 USDC = $1)",
    "payTo": "0x589a2314a2e05f45e40c4823da3ba58d421db3d8"
  },
  "verdict": "looks legit"
}

Use with an agent

  1. Discover. Agents find this listing with GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP tool search_resources, or /discovery/resources.
  2. Inspect. Fetch /resources/36444.json for the price and payment options.
  3. Pay. Call GET https://tokencheck.402api.dev/v1/seller-check. The provider answers 402 with its payment requirements. An x402 client signs one of the options below and retries with PAYMENT-SIGNATURE.
  4. Execute. The provider returns 200 with the data. Agent Bazaar is not in the request path and never sees your payment.

For humans

You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.

Pricing & payment

Price
$0.02 / request
Protocol
x402 v2
Auth
No account or API key. Pay per request.
Networks
Base
Demand
2 calls · 1 unique payers in 30d (public x402 Bazaar data)

x402 payment requirements

SchemeNetworkAssetAmountPay toTimeout
exactBase
eip155:8453
USDC$0.020x8C8A81E2acEc6ed62421f1f4E7125B0b84FFffdE300s
accepts[] (raw JSON)
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x8C8A81E2acEc6ed62421f1f4E7125B0b84FFffdE",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "20000",
    "amountUsd": 0.02,
    "maxTimeoutSeconds": 300
  }
]

Schemas

Output schema (JSON Schema)
{
  "properties": {
    "example": {
      "oneOf": [
        {
          "description": "HTTP 200: the seller report",
          "properties": {
            "bazaar": {
              "description": "listed, listing (description, amount, 30-day calls/payers), other listings for the payTo",
              "type": "object"
            },
            "cached": {
              "type": "boolean"
            },
            "index": {
              "type": "object"
            },
            "measuredAt": {
              "type": "string"
            },
            "notes": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "payTo": {
              "type": [
                "string",
                "null"
              ]
            },
            "probe": {
              "description": "status, ms, tls, x402 (version, valid, accepts with recognised asset, usd, payTo)",
              "type": [
                "object",
                "null"
              ]
            },
            "query": {
              "type": "object"
            },
            "reasons": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "reputation": {
              "description": "last24h / last7d: payments, distinctPayers, totalUsd, medianUsd, topPayerShare, complete",
              "type": [
                "object",
                "null"
              ]
            },
            "verdict": {
              "enum": [
                "looks legit",
                "caution",
                "avoid"
              ]
            }
          },
          "required": [
            "verdict",
            "reasons",
            "bazaar",
            "measuredAt"
          ],
          "type": "object"
        },
        {
          "description": "Error body. HTTP 400 = bad or missing input; HTTP 503 = check failed or timed out (25 s). The payment is not settled on errors, so the caller is not charged.",
          "example": {
            "error": "query parameter `token` must be a 0x-prefixed 40-hex-digit Base token address"
          },
          "properties": {
            "error": {
              "description": "What went wrong, in plain words",
              "type": "string"
            }
          },
          "required": [
            "error"
          ],
          "type": "object"
        }
      ],
      "type": "object"
    },
    "type": {
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "type": "object"
}
Example shape — generated from the schema, not a captured live response
{
  "example": {},
  "type": "string"
}

Examples

curl
curl "https://tokencheck.402api.dev/v1/seller-check"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://tokencheck.402api.dev/v1/seller-check");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}
Python
import httpx
res = httpx.get("https://tokencheck.402api.dev/v1/seller-check")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Details

Provider
tokencheck.402api.dev
Endpoint
https://tokencheck.402api.dev/v1/seller-check
Machine-readable
/resources/36444.json