Buyer documentation

Pay from your agent, per successful call.

The wallet stays on your machine. Start with the free sample, set explicit spending limits, and reuse one payment identifier for each logical request and all its network retries.

JavaScript buyer (@x402/fetch)

import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.BUYER_PRIVATE_KEY);
const paidFetch = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }]
});
const response = await paidFetch("https://api.prospect402.com/v1/prospect", {
  method: "POST", headers: { "content-type": "application/json" },
  body: JSON.stringify({ url: "https://www.stridetechworks.com/" })
});
if (!response.ok) throw new Error(`Prospect402 ${response.status}: ${await response.text()}`);
console.log(await response.json());

First inspect the free sample. Cap the selected challenge at $0.02 for Signals or $0.10 for Briefs and Base mainnet (eip155:8453). Generate one payment identifier per logical request; reuse it for timeouts and transport retries so a settled retry returns the cached response. Never retry validation, robots, rate-limit, or model-validation errors blindly.

Local stdio MCP bridge

git clone <your Prospect402 repository URL>
cd prospect402 && npm install

# MCP client configuration
{
  "mcpServers": {
    "prospect402": {
      "command": "npm",
      "args": ["run", "mcp"],
      "cwd": "/absolute/path/to/prospect402",
      "env": {
        "PROSPECT402_ALLOW_PAYMENTS": "true",
        "PROSPECT402_MAX_TOTAL_USD": "0.12",
        "PROSPECT402_WALLET_PRIVATE_KEY": "${BUYER_PRIVATE_KEY}"
      }
    }
  }
}

Tools: prospect402_sample, prospect402_signals, and prospect402_brief. Paid tools are disabled unless explicitly opted in. Their hard per-call caps cannot be raised by configuration, and the bridge never logs wallet material.