80trust / 100

Bazaar Check

by Horizon Pulse in Onchain & crypto

x402 APIPassing, checked 3 h ago

x402 developer tool. Use to find out whether an x402 seller is listed in Coinbase CDP Bazaar and, if not, why. GET with required url (host or https URL). Reads CDP discovery and the host's /.well-known/x402, then sends one unpaid request per route; never pays. Returns JSON: verdict, per-route indexed status and networks (Base, Solana), and fail/warn findings each with a fix line. https only; private targets blocked. Errors are not charged.

GET https://horizonpulse.dev/api/bazaar-check

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
273 ms typical, 273 ms slowest 5%
Last check
3 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://horizonpulse.dev/api/bazaar-check?url=horizonpulse.dev"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.03:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fhorizonpulse.dev%2Fapi%2Fbazaar-check
const res = await pay("https://horizonpulse.dev/api/bazaar-check?url=horizonpulse.dev");
console.log(await res.json());

Example input

{
  "url": "horizonpulse.dev"
}

Example output

{
  "asOf": "2026-10-09T16:38:45.681Z",
  "elapsedMs": 1707,
  "findings": [],
  "index": {
    "payTos": [
      {
        "indexedOnHost": 13,
        "indexedTotalForPayTo": 13,
        "network": "eip155:8453",
        "payTo": "0x5b32c973596078a967562ca652761404f19be0e9"
      },
      {
        "indexedOnHost": 13,
        "indexedTotalForPayTo": 13,
        "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "payTo": "BjY98A6dS3GGLZdz2zHy8wK7XAwnQgNhCc66mfmBTRPz"
      }
    ],
    "searchHitsOnHost": 13
  },
  "ok": true,
  "routes": [
    {
      "advertisedNetworks": [
        "base",
        "solana"
      ],
      "findings": [],
      "indexed": true,
      "indexedNetworks": [
        "base",
        "solana"
      ],
      "lastIndexed": "2026-10-08T21:10:33.046Z",
      "methods": [
        "GET"
      ],
      "probed": true,
      "url": "https://horizonpulse.dev/api/pulse"
    },
    {
      "advertisedNetworks": [
        "base",
        "solana"
      ],
      "findings": [],
      "indexed": true,
      "indexedNetworks": [
        "base",
        "solana"
      ],
      "lastIndexed": "2026-10-09T15:20:10.271Z",
      "methods": [
        "GET"
      ],
      "probed": true,
      "url": "https://horizonpulse.dev/api/signals"
    }
  ],
  "source": "bazaar-check",
  "summary": {
    "fail": 0,
    "indexed": 13,
    "indexedOnBase": 13,
    "indexedOnSolana": 13,
    "notIndexed": 0,
    "routesListed": 13,
    "routesProbed": 13,
    "warn": 0
  },
  "target": {
    "host": "horizonpulse.dev",
    "input": "horizonpulse.dev",
    "origin": "https://horizonpulse.dev"
  },
  "verdict": "fully_indexed",
  "wellKnown": {
    "entries": 15,
    "found": true,
    "httpStatus": 200,
    "url": "https://horizonpulse.dev/.well-known/x402"
  }
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
3 h agoPassed402273 ms$0.01