Skip to content
clusters: prooflayer · edgemarket · edgefinance · synthforge · mediakit · wordmint · webprobe · locale · comppoint · rollforge · bestiary · statline · matchpoint · retail · agentops · browserworkflow · modelrouter · compose
$ man agentutility-start

start

Fund a wallet, pick an on-ramp, call an endpoint. That's the whole setup for 789 live endpoints across 17 product clusters. No signup, no dashboard, no API key.

§ 0   walletthe only prerequisite

You need one thing: an EVM private key holding USDC on Base (chain 8453, token 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913). That's it. No ETH for gas. x402 payments settle through EIP-3009 transferWithAuthorization, which is gasless for the buyer. You sign a message, the facilitator submits the transaction and pays the gas itself. No RPC key either; every snippet on this page defaults to the public https://mainnet.base.org endpoint.

A dollar of USDC covers hundreds of calls. Prices across the 789-endpoint catalog run $0.001 – $5 per call, so even the pricier composites leave room for a long test session.

§ I   claude codeinstall the catalog as a skill
mkdir -p ~/.claude/skills/agentutility && curl -fsSL https://agentutility.ai/skill.md -o ~/.claude/skills/agentutility/SKILL.md

The skill teaches Claude how to discover endpoints, check a price before calling one, and run the payment pattern against any of the 789 endpoints in the catalog.

§ II   any agentno Claude, no MCP client, no problem
curl https://agentutility.ai/prompt.txt

Paste the output into the agent's system prompt. It works for any harness that can run shell or Node.

§ III   mcpone stdio server per cluster
claude mcp add prooflayer -e X402_PRIVATE_KEY=0x... -- npx -y @agentutility/mcp-prooflayer

There are 17 live clusters, each shipping as its own package. Cursor and Claude Desktop configs live at /mcp/.

§ IV   code~60 seconds, any Node project
npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { ExactEvmScheme, toClientEvmSigner } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
import { createPublicClient, http } from "viem";
import { base } from "viem/chains";

const account = privateKeyToAccount(process.env.X402_PRIVATE_KEY);
const signer = toClientEvmSigner(
  account,
  createPublicClient({ chain: base, transport: http("https://mainnet.base.org") }),
);
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(signer));
const paidFetch = wrapFetchWithPayment(fetch, client);

const res = await paidFetch("https://x402.agentutility.ai/cve", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ "cve_id": "CVE-2021-44228" }),
});
console.log(await res.json());

That's the whole flow. The first request gets a 402, wrapFetchWithPayment signs a USDC transferWithAuthorization for the amount the server asked for, and retries automatically. The paid response comes back in the same await paidFetch(...) call. Nothing else to wire up.

Runnable examples for more endpoints: github.com/agentutilityai/x402-recipes.

§ V   raw protocolcurl-level detail

Want to see the 402 handshake byte by byte before you trust a library with it? /docs walks the raw HTTP exchange. Schemas and prices for every endpoint live at /registry.json.

SEE ALSO
agentutility · docs · mcp · skill.md · prompt.txt · bazaar.x402.org · x402-recipes