GET /api/x402-market-pulseLive cross-provider x402 market sentiment. topProviders: the top x402 sellers ecosystem-wide, ranked by REAL on-chain activity (Agent402 included and flagged isSelf:true). Pick the lens with sort: 'usd' (revenue, default - whale-skewable), 'buyers' (distinct paying wallets - broadest adoption/reach), or 'calls' (raw volume). Every row carries all metrics plus callsPerBuyer (intensity), so revenue and actual ecosystem usage are both visible. topToolCategories: the tool-category supply mix the whole market offers (from every indexed seller's manifest). Per-tool purchase counts are not on-chain, so demand is provider-level - the honest whole-market read. ?top=10&sort=buyers
| Field | Type | Description |
|---|---|---|
top | integer | How many top providers to return (1-25, default 10) |
sort | string | Ranking lens: usd=revenue (default), buyers=distinct paying wallets (reach), calls=raw volume |
{
"asOf": "2026-07-12T00:00:00.000Z",
"window": "last 24h",
"sortedBy": "usd",
"ecosystem": {
"sellersIndexed": 1479,
"toolsIndexed": 5200
},
"topProviders": [
{
"rank": 1,
"provider": "blockrun.ai",
"usdSettled": 294.55,
"calls": 353970,
"buyers": 163,
"callsPerBuyer": 2171,
"homepage": "https://blockrun.ai"
}
],
"topToolCategories": [
{
"category": "crypto",
"sellersOffering": 246,
"tools": 812
}
]
}
curl -i "https://agent402.tools/api/x402-market-pulse?top=10&sort=usd"
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/x402-market-pulse?top=10&sort=usd");
This is a pure-CPU tool, so an agent without a wallet can pay with proof-of-work instead of USDC: fetch a challenge, solve the sha256 puzzle (16 leading zero bits — a fraction of a second of CPU, no money, no AI tokens), and resend with the X-Pow-Solution header.
import { createHash } from "node:crypto";
const lz = (b) => { let t = 0; for (const x of b) { if (!x) { t += 8; continue; } t += Math.clz32(x) - 24; break; } return t; };
const c = await (await fetch("https://agent402.tools/api/pow/challenge?slug=x402-market-pulse")).json();
let n = 0;
while (lz(createHash("sha256").update(c.challenge + ":" + n).digest()) < c.difficulty) n++;
await fetch("https://agent402.tools/api/x402-market-pulse", { method: "GET", headers: { "X-Pow-Solution": c.token + ":" + n } });
GET /api/x402-quoteProbe any URL and decode its HTTP 402 payment requirements (price, asset, network, pay-to) into clean JSON — what an age…
GET /api/usdc-balanceRead the USDC balance of any address on Base, Polygon, Arbitrum, Optimism, or Ethereum. Read-only on-chain call. ?addres…
GET /api/tx-statusCheck the confirmation status of a transaction by hash on Base/Polygon/Arbitrum/Optimism/Ethereum/Robinhood Chain: succe…