{
  "x402Version": 2,
  "id": 36444,
  "slug": "36444",
  "resource": "https://tokencheck.402api.dev/v1/seller-check",
  "description": "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.",
  "type": "http",
  "serviceName": "402api Seller Check",
  "resourceType": "Monitoring",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x8C8A81E2acEc6ed62421f1f4E7125B0b84FFffdE",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "20000",
      "amountUsd": 0.02,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "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"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "discoverable": true,
          "method": "GET",
          "queryParams": {
            "url": "https://tokencheck.402api.dev/v1/token-check"
          },
          "type": "http"
        },
        "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"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "discoverable": {
                "const": true
              },
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "payTo": {
                    "description": "A seller's Base payTo address (reputation + its most-called Bazaar resource is probed). Give this or url.",
                    "pattern": "^0x[0-9a-fA-F]{40}$",
                    "type": "string"
                  },
                  "url": {
                    "description": "The x402 resource URL you are about to pay (http/https). Give this or payTo.",
                    "maxLength": 2048,
                    "pattern": "^https?://",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "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"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "x402",
    "seller-reputation",
    "trust",
    "provider-selection",
    "pre-payment-check",
    "bazaar"
  ],
  "sourceHost": "tokencheck.402api.dev",
  "lastUpdated": "2026-10-10T15:25:21.104Z",
  "quality": {
    "calls30d": 2,
    "uniquePayers30d": 1,
    "lastCalledAt": "2026-10-10T15:26:19.487Z"
  },
  "metadata": {
    "serviceName": "402api Seller Check",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "discoverable": true,
            "method": "GET",
            "queryParams": {
              "url": "https://tokencheck.402api.dev/v1/token-check"
            },
            "type": "http"
          },
          "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"
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "discoverable": {
                  "const": true
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "properties": {
                    "payTo": {
                      "description": "A seller's Base payTo address (reputation + its most-called Bazaar resource is probed). Give this or url.",
                      "pattern": "^0x[0-9a-fA-F]{40}$",
                      "type": "string"
                    },
                    "url": {
                      "description": "The x402 resource URL you are about to pay (http/https). Give this or payTo.",
                      "maxLength": 2048,
                      "pattern": "^https?://",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method"
              ],
              "type": "object"
            },
            "output": {
              "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"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "tokencheck.402api.dev",
    "manifest_name": "tokencheck.402api.dev",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {},
    "type": "string"
  }
}