x402 Crypto Research API
Pay-per-call BTC/ETH research, paid in USDC via the x402 protocol on eip155:8453 (Base mainnet, real USDC). No accounts, no API keys.
Endpoints
GET /api/brief/btc|eth: $0.05. Price, 24h/7d change, RSI14, SMA20/50, trend signal, Fear & Greed index.GET /api/signal/btc|eth: $0.01. Compact bullish/neutral/bearish signal.GET /api/firm/risk-snapshot?address=0x…: $0.10. Public-data red-flag snapshot for a Base address (Agent Firm route).GET /api/firm/research-memo: $1.00. Latest Agent Firm research memo; 503 with no charge if none is published. Currently disabled (pending risk review).GET /api/health: free.
Firm routes settle to the Agent Firm treasury; see how to pay. Paid routes are listed in the x402 Bazaar discovery catalog.
How to pay
- Request a paid endpoint. You get HTTP 402 with a
PAYMENT-REQUIREDheader (base64 JSON) listing scheme, network, asset (USDC), amount and payTo. - Sign an EIP-3009 USDC authorization with your wallet and retry with the
PAYMENT-SIGNATUREheader. - The server verifies and settles via the facilitator, then returns JSON plus a
PAYMENT-RESPONSEheader with the tx receipt.
Easiest: use an x402 client such as @x402/fetch or @x402/axios:
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(process.env.PK) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://<host>/api/brief/btc");
console.log(await res.json());Informational only, not financial advice.