x402 market pulse

FREE with proof-of-work · or $0.001 in USDC · GET /api/x402-market-pulse

Live cross-provider x402 market sentiment. topProviders: the top x402 sellers ecosystem-wide, ranked by REAL on-chain activity (Agent402 included and flagged isSelf:true). Send GET /api/x402-market-pulse with no required fields (2 optional) and pay $0.001 per call over x402 or MPP, or call it free by solving a proof-of-work challenge. It returns a JSON object with asOf, window, sortedBy, ecosystem, topProviders and 1 more.

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

Category: Payments & x402 · Tags: x402 market sentiment leaderboard ecosystem providers intelligence discovery

TRY IN PLAYGROUND →

Parameters

NameTypeRequiredDescription
topintegernoHow many top providers to return (1-50, default 10). Agent402's own row is always included at its true rank even if it falls outside this many.
sortstring (one of: usd, buyers, calls)noRanking lens: usd=revenue (default), buyers=distinct paying wallets (reach), calls=raw volume

Example request

curl -i "https://agent402.tools/api/x402-market-pulse?top=10&sort=usd"

Without payment this returns HTTP 402 Payment Required with the exact price for x402-market-pulse; any x402 v2 or MPP client pays it and retries.

Example response

{
  "asOf": "2026-07-12T00:00:00.000Z",
  "window": "last 24h",
  "sortedBy": "usd",
  "ecosystem": {
    "sellersIndexed": 1479,
    "toolsIndexed": 33779,
    "toolsCapPerSeller": 50
  },
  "topProviders": [
    {
      "rank": 1,
      "provider": "seller.example",
      "usdSettled": 120.5,
      "calls": 10000,
      "buyers": 250,
      "callsPerBuyer": 40,
      "homepage": "https://seller.example"
    }
  ],
  "topToolCategories": [
    {
      "category": "crypto",
      "sellersOffering": 446,
      "tools": 3353
    }
  ]
}
FieldTypeAlways presentIn the example
asOfstringno2026-07-12T00:00:00.000Z
windowstringnolast 24h
sortedBystringnousd
ecosystemobjectno3 fields: sellersIndexed, toolsIndexed, toolsCapPerSeller
topProvidersarray of objectsno1 item in the example
topToolCategoriesarray of objectsno1 item in the example

From an MCP client

catalog.call {
  "slug": "x402-market-pulse",
  "params": {
    "top": 10,
    "sort": "usd"
  }
}

On the hosted connector at https://agent402.tools/mcp, catalog.call runs x402-market-pulse free (rate-limited, no wallet). Local install: npx -y agent402-mcp.

Errors and behavior

Paid call (JavaScript agent)

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();
client.setSpendControls?.(false); // keep your own spending ceiling in code
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");

No wallet? Pay with compute

Fetch a challenge, solve the sha256 puzzle (16 leading zero bits, a fraction of a second of CPU), 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?top=10&sort=usd", { method: "GET", headers: { "X-Pow-Solution": c.token + ":" + n } });

Related tools

x402 trending sellers

$0.005 · GET /api/x402-trending

Momentum radar for the x402 seller ecosystem - which sellers are heating up, graded for wash-trade resistance. Reads the…

x402 quote

$0.002 · GET /api/x402-quote

Probe any URL and decode its HTTP 402 payment requirements (price, asset, network, pay-to) into clean JSON - what an age…

New B20 tokens

$0.005 · GET /api/b20-new-tokens

Recently deployed B20 tokens on Base: scans the factory's B20Created logs over a block window, locates each new token by…

Rate a call you paid for

$0.001 · POST /api/feedback

Tell this server whether a call you paid for delivered what it promised. Bound to the receipt: give it the settlement tr…

My usage (wallet-keyed purchase history)

$0.005 · POST /api/my-usage

Your own purchase history, keyed to the wallet that pays for the call - no wallet parameter, no signup: the x402 payment…

Build USDC transfer authorization

$0.003 · POST /api/transfer-authorization

Build the EIP-3009 transferWithAuthorization typed data for a gasless USDC transfer on Base/Polygon/Arbitrum/Optimism/Et…