x402 Primitives Catalog
The full-stack pay-per-call API for crypto infrastructure. Every endpoint is x402-native — agents and developers pay USDC per request on Base & Solana. No API keys, no accounts, no subscriptions.
The full-stack pay-per-call API for crypto infrastructure. Every endpoint is x402-native — agents and developers pay USDC per request on Base & Solana. No API keys, no accounts, no subscriptions.
// ── Option A · MCP server (recommended) ────────────────── // One line. Works in Claude Code, Cursor, Cline & any MCP client — 183 tools. claude mcp add spraay -s user -- npx -y spraay-x402-mcp // First run auto-creates a wallet at ~/.spraay/.session — no // EVM_PRIVATE_KEY needed. It also checks for updates on startup. // Fund that wallet with USDC on Base, then just call any tool. // ── Option B · Direct x402 client ──────────────────────── import { createClient } from "x402-client"; const client = createClient({ baseUrl: "https://gateway.spraay.app", // Optional — omit to use the auto-provisioned ~/.spraay/.session wallet privateKey: process.env.EVM_PRIVATE_KEY, }); // Fetch live ETH price — pays $0.005 USDC automatically const prices = await client.get("/api/v1/oracle/prices"); console.log(prices); // { ETH: 2847.50, BTC: ... }
Index of every free-to-call endpoint with paths and params. No wallet, no payment.
const result = await client.get( "/free" );
USDC / ETH / SOL / USDG spot prices (cached 60s).
const result = await client.get( "/free/prices" );
Live gas prices across 8 EVM chains via Alchemy (cached 15s).
const result = await client.get( "/free/gas" );
Block height & liveness for 8 EVM chains (cached 30s).
const result = await client.get( "/free/chain-status" );
EVM nonce / transaction count for any address.
const result = await client.get( "/free/nonce" );
ENS & Basename → address resolution.
const result = await client.get( "/free/resolve" );
Multi-chain address checksum validation.
const result = await client.get( "/free/validate-address" );
Fiat ↔ crypto conversion (unit math + spot rates).
const result = await client.get( "/free/convert" );
Generate up to 100 UUID v4 identifiers.
const result = await client.get( "/free/uuid" );
Current Unix timestamp.
const result = await client.get( "/free/timestamp" );
Probe any URL for x402 payment support.
const result = await client.post( "/free/x402-check", {...} );
BPA 1.0 payload schema validation (dry run).
const result = await client.post( "/free/validate-batch", {...} );
Rough batch-payment cost estimate (no live quote).
const result = await client.get( "/free/estimate-batch" );
ERC-8004 agent registry lookup.
const result = await client.get( "/free/agent-card" );
Free AI chat (open-weight models)
const result = await client.post( "/free/chat", {...} );
Free model catalog
const result = await client.get( "/free/chat/models" );
Full model catalog (free mirror of the paid list).
const result = await client.get( "/free/models" );
Trending tokens & pairs across DEXes via DexScreener.
const result = await client.get( "/free/dex/trending" );
Search DEX pairs across all chains via DexScreener.
const result = await client.get( "/free/dex/search" );
All DEX pairs for a given token address.
const result = await client.get( "/free/dex/tokens" );
Detailed data for a specific DEX pair on a chain.
const result = await client.get( "/free/dex/pairs" );
exact scheme, same EIP-3009 wire format as USDC on Base — only network, asset and payTo differ.
1. Call any paid endpoint with no payment → the 402 lists three accepts[] entries: Base USDC, Solana USDC and Robinhood USDG.
2. Pick the eip155:4663 entry and sign an EIP-712 TransferWithAuthorization (EIP-3009) with the USDG domain { name: "Global Dollar", version: "1", chainId: 4663, verifyingContract: 0x5fc5…d168 }. to must equal the entry's payTo, value the entry's amount.
3. Retry with PAYMENT-SIGNATURE (base64 JSON: { x402Version: 2, resource, accepted, payload: { signature, authorization } }).
4. The gateway verifies (signature, balance, nonce) before the handler runs, then relays the transfer on chain after the handler succeeds. The settlement tx hash comes back in the PAYMENT-RESPONSE header.
USDG on Robinhood Chain implements EIP-3009, so there is no allowance to grant and no Permit2 step. The payer wallet needs USDG only — the gateway's facilitator pays the gas. Any x402 v2 client that already pays USDC on Base (e.g. @x402/fetch with a viem signer on chainId 4663) works unchanged.
// 1) read the 402 and pick the Robinhood entry const ch = await (await fetch("https://gateway.spraay.app/api/v1/models")).json(); const a = ch.accepts.find(x => x.network === "eip155:4663"); // 2) sign EIP-3009 with the USDG domain advertised in a.extra const auth = { from: wallet.address, to: a.payTo, value: a.amount, validAfter: "0", validBefore: String(Math.floor(Date.now()/1000) + 300), nonce: ethers.hexlify(ethers.randomBytes(32)) }; const signature = await wallet.signTypedData( { name: a.extra.name, version: a.extra.version, chainId: 4663, verifyingContract: a.asset }, { TransferWithAuthorization: [ {name:"from",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"}, {name:"validAfter",type:"uint256"},{name:"validBefore",type:"uint256"},{name:"nonce",type:"bytes32"} ] }, { ...auth, value: BigInt(auth.value), validAfter: 0n, validBefore: BigInt(auth.validBefore) }); // 3) pay const { scheme, network, asset, amount, payTo, maxTimeoutSeconds, extra } = a; const header = btoa(JSON.stringify({ x402Version: 2, resource: ch.resource, accepted: { scheme, network, asset, amount, payTo, maxTimeoutSeconds, extra }, payload: { signature, authorization: auth } })); const res = await fetch("https://gateway.spraay.app/api/v1/models", { headers: { "PAYMENT-SIGNATURE": header } }); // res.headers.get("payment-response") → base64 { success, transaction, network, payer }
The same rail is exposed under the Machine Payments Protocol as the spec evm/charge method (credential type authorization, nonce = keccak256(challenge.id ‖ challenge.realm)). See mpp.json → paymentMethods.evm.
OpenAI-compatible chat completions. 200+ models via BlockRun + OpenRouter. Streaming, function calling, vision.
const result = await client.post( "/api/v1/chat/completions", {...} );
List all available AI models with pricing and capability metadata.
const result = await client.get( "/api/v1/models" );
List decentralized AI models on Bittensor. OpenAI /v1/models compatible.
const result = await client.get( "/bittensor/v1/models" );
Chat completions via Bittensor SN64 (Chutes). 43+ models, fully OpenAI-compatible.
const result = await client.post( "/bittensor/v1/chat/completions", {...} );
Image generation via Bittensor SN19 (Nineteen AI). OpenAI-compatible.
const result = await client.post( "/bittensor/v1/images/generations", {...} );
Text embeddings via Bittensor. OpenAI /v1/embeddings compatible.
const result = await client.post( "/bittensor/v1/embeddings", {...} );
Aggregated oracle price feed across multiple sources.
const result = await client.get( "/api/v1/oracle/prices" );
Real-time gas prices for Base and other supported EVM chains.
const result = await client.get( "/api/v1/oracle/gas" );
Stablecoin FX rates: USDC, USDT, DAI, EURC, pyUSD, and more.
const result = await client.get( "/api/v1/oracle/fx" );
Multi-token price feed across major assets. Cached, low-latency.
const result = await client.get( "/api/v1/prices" );
Wallet profile: balances, top tokens, activity tier, age, risk signals.
const result = await client.get( "/api/v1/analytics/wallet" );
Transaction history for any address across supported chains.
const result = await client.get( "/api/v1/analytics/txhistory" );
Multi-chain balance lookup for any address.
const result = await client.get( "/api/v1/balances" );
FREE — list of supported tokens across all chains.
const result = await client.get( "/api/v1/tokens" );
Web search powered by Tavily. Returns ranked URLs with snippets.
const result = await client.post( "/api/v1/search/web", {...} );
Extract clean readable content from one or more URLs.
const result = await client.post( "/api/v1/search/extract", {...} );
Question-answering over fresh web results. RAG out of the box.
const result = await client.post( "/api/v1/search/qna", {...} );
Classify a wallet address: exchange, contract, EOA, MEV bot, etc.
const result = await client.post( "/api/v1/inference/classify-address", {...} );
Classify a transaction by intent: swap, transfer, mint, exploit, etc.
const result = await client.post( "/api/v1/inference/classify-tx", {...} );
AI-generated plain-English explanation of a smart contract.
const result = await client.post( "/api/v1/inference/explain-contract", {...} );
Intelligence briefing: AI summary of arbitrary on-chain context.
const result = await client.post( "/api/v1/inference/summarize", {...} );
Send transactional email (payment confirmations, alerts, receipts). AgentMail-backed.
const result = await client.post( "/api/v1/notify/email", {...} );
Send SMS notification for payment confirmations and alerts.
const result = await client.post( "/api/v1/notify/sms", {...} );
Check delivery status of a sent email or SMS notification.
const result = await client.get( "/api/v1/notify/status" );
Register a webhook URL to receive event notifications (payments, escrows, etc.).
const result = await client.post( "/api/v1/webhook/register", {...} );
Send a test event to a registered webhook to verify delivery.
const result = await client.post( "/api/v1/webhook/test", {...} );
List all webhooks registered to your account/wallet.
const result = await client.get( "/api/v1/webhook/list" );
Delete a registered webhook by ID.
const result = await client.post( "/api/v1/webhook/delete", {...} );
Send an end-to-end encrypted XMTP message to any wallet address.
const result = await client.post( "/api/v1/xmtp/send", {...} );
Read XMTP messages from your inbox.
const result = await client.get( "/api/v1/xmtp/inbox" );
Create an on-chain escrow agreement between two parties.
const result = await client.post( "/api/v1/escrow/create", {...} );
List your active and historical escrows.
const result = await client.get( "/api/v1/escrow/list" );
Fetch escrow details and status by ID.
const result = await client.get( "/api/v1/escrow/:id" );
Fund an existing escrow agreement with USDC or supported token.
const result = await client.post( "/api/v1/escrow/fund", {...} );
Release escrow funds to the recipient after conditions are met.
const result = await client.post( "/api/v1/escrow/release", {...} );
Cancel an escrow before funding or by mutual agreement.
const result = await client.post( "/api/v1/escrow/cancel", {...} );
Get a swap quote across Uniswap V3, Aerodrome, and other DEXes on Base.
const result = await client.get( "/api/v1/swap/quote" );
List supported swap tokens with addresses, decimals, and metadata.
const result = await client.get( "/api/v1/swap/tokens" );
Execute a token swap on Base via the MangoSwap router.
const result = await client.post( "/api/v1/swap/execute", {...} );
Cross-chain bridge quote across LiFi-aggregated routes.
const result = await client.get( "/api/v1/bridge/quote" );
List supported source/destination chains for bridging.
const result = await client.get( "/api/v1/bridge/chains" );
Execute a payroll run — batch USDC/stablecoin payments to employees.
const result = await client.post( "/api/v1/payroll/execute", {...} );
Estimate payroll batch cost and fees before execution.
const result = await client.post( "/api/v1/payroll/estimate", {...} );
List supported payroll tokens (USDC, USDT, DAI, EURC, etc.).
const result = await client.get( "/api/v1/payroll/tokens" );
Create an x402 payment-gated invoice. Shareable link, auto-settles to wallet.
const result = await client.post( "/api/v1/invoice/create", {...} );
List your created invoices with status and payment history.
const result = await client.get( "/api/v1/invoice/list" );
Fetch invoice details and payment status by ID.
const result = await client.get( "/api/v1/invoice/:id" );
These endpoints implement Batch Payments for Agents (BPA) 1.0 — the open specification for agent batch disbursement. Read the spec →
Execute a batch payment on any of 10 EVM chains (Base, Ethereum, Arbitrum, Polygon, BNB, Avalanche, Unichain, Plasma, BOB, Robinhood Chain). Native + ERC-20, incl. USDG on Robinhood Chain.
const result = await client.post( "/api/v1/batch/execute", {...} );
Estimate gas cost and fees for an EVM batch payment before execution.
const result = await client.post( "/api/v1/batch/estimate", {...} );
Execute a batch payment on the XRP Ledger. Native XRP + issued currencies.
const result = await client.post( "/api/v1/xrp/batch", {...} );
Estimate XRPL ledger fee + reserve for a batch payment.
const result = await client.post( "/api/v1/xrp/estimate", {...} );
XRPL network info: server state, fee tier, ledger index.
const result = await client.get( "/api/v1/xrp/info" );
Execute a batch payment on the Stellar network. XLM + Stellar assets.
const result = await client.post( "/api/v1/stellar/batch", {...} );
Estimate Stellar base fee and operation count for a batch payment.
const result = await client.post( "/api/v1/stellar/estimate", {...} );
Forward a JSON-RPC call to any of 7 supported chains via Alchemy-backed nodes.
const result = await client.post( "/api/v1/rpc/call", {...} );
List supported RPC chains with chain IDs and capabilities.
const result = await client.get( "/api/v1/rpc/chains" );
Pin content to IPFS via Pinata. Returns CID and gateway URL.
const result = await client.post( "/api/v1/storage/pin", {...} );
Fetch pinned content by CID from IPFS.
const result = await client.get( "/api/v1/storage/get" );
Check pin status for a stored CID.
const result = await client.get( "/api/v1/storage/status" );
Schedule a recurring or one-shot job (payments, webhooks, calls).
const result = await client.post( "/api/v1/cron/create", {...} );
List your active scheduled jobs.
const result = await client.get( "/api/v1/cron/list" );
Cancel a scheduled job by ID.
const result = await client.post( "/api/v1/cron/cancel", {...} );
Ingest a structured log entry for audit and observability.
const result = await client.post( "/api/v1/logs/ingest", {...} );
Query ingested logs with filters (time range, level, tags).
const result = await client.get( "/api/v1/logs/query" );
Append an immutable entry to the on-chain audit trail.
const result = await client.post( "/api/v1/audit/log", {...} );
Query the audit trail by actor, action, or time range.
const result = await client.get( "/api/v1/audit/query" );
Calculate crypto tax gain/loss using FIFO method.
const result = await client.post( "/api/v1/tax/calculate", {...} );
Retrieve a tax report with IRS Form 8949-compatible data.
const result = await client.get( "/api/v1/tax/report" );
Initiate KYC/KYB verification for compliance-gated payments.
const result = await client.post( "/api/v1/kyc/verify", {...} );
Check KYC verification status by wallet or session ID.
const result = await client.get( "/api/v1/kyc/status" );
Create an authenticated session with scoped permissions.
const result = await client.post( "/api/v1/auth/session", {...} );
Verify a session token and check its permissions.
const result = await client.get( "/api/v1/auth/verify" );
Resolve an ENS, Basename, or address to its canonical identity.
const result = await client.get( "/api/v1/resolve" );
Run GPU inference via Replicate. Image, video, audio, LLM workloads.
const result = await client.post( "/api/v1/gpu/run", {...} );
Check status of a GPU prediction job by ID.
const result = await client.get( "/api/v1/gpu/status/:id" );
FREE — list curated GPU model shortcuts (Flux, SDXL, Whisper, etc.).
const result = await client.get( "/api/v1/gpu/models" );
GPU inference via a Spraay Direct operator — instant USDC settlement to the GPU host.
const result = await client.post( "/api/v1/gpu-direct/run", {...} );
FREE — Register a robot to the RTP network with capabilities.
const result = await client.post( "/api/v1/robots/register", {...} );
Dispatch a paid task to a robot (RTP). Pays the robot operator on completion.
const result = await client.post( "/api/v1/robots/task", {...} );
FREE — Robot reports task completion (called by the robot, not the buyer).
const result = await client.post( "/api/v1/robots/complete", {...} );
Discover registered robots by capability, location, or status.
const result = await client.get( "/api/v1/robots/list" );
Poll the status of an in-flight robot task.
const result = await client.get( "/api/v1/robots/status" );
Fetch a robot's public profile: capabilities, reputation, history.
const result = await client.get( "/api/v1/robots/profile" );
FREE — Update a robot's profile or capability list.
const result = await client.patch( "/api/v1/robots/update", {...} );
FREE — Remove a robot from the RTP network.
const result = await client.post( "/api/v1/robots/deregister", {...} );
Register a supplier in the Supply Chain Task Protocol.
const result = await client.post( "/api/v1/sctp/supplier", {...} );
Fetch supplier profile by ID.
const result = await client.get( "/api/v1/sctp/supplier/:id" );
Create a purchase order (PO) with line items and payment terms.
const result = await client.post( "/api/v1/sctp/po", {...} );
Fetch purchase order by ID.
const result = await client.get( "/api/v1/sctp/po/:id" );
Submit a supplier invoice against a purchase order.
const result = await client.post( "/api/v1/sctp/invoice", {...} );
Fetch supplier invoice by ID.
const result = await client.get( "/api/v1/sctp/invoice/:id" );
AI-powered invoice verification: matches PO line items and flags discrepancies.
const result = await client.post( "/api/v1/sctp/invoice/verify", {...} );
Execute a supplier payment via Spraay batch contracts.
const result = await client.post( "/api/v1/sctp/pay", {...} );
Provision an ERC-4337 agent wallet on Base for an AI agent.
const result = await client.post( "/api/v1/agent-wallet/provision", {...} );
Add a scoped session key to an agent wallet (permissions, spend limit, expiry).
const result = await client.post( "/api/v1/agent-wallet/session-key", {...} );
Fetch agent wallet metadata: keys, owner, balances.
const result = await client.get( "/api/v1/agent-wallet/info" );
Revoke a session key from an agent wallet.
const result = await client.post( "/api/v1/agent-wallet/revoke-key", {...} );
Predict the deterministic address of an agent wallet before deployment.
const result = await client.get( "/api/v1/agent-wallet/predict" );
List agent wallets with pagination.
const result = await client.get( "/api/v1/wallet/list" );
Get agent wallet details by wallet ID.
const result = await client.get( "/api/v1/wallet/:walletId" );
Get chain-specific addresses for a wallet.
const result = await client.get( "/api/v1/wallet/:walletId/addresses" );
Sign a message with an agent wallet.
const result = await client.post( "/api/v1/wallet/sign-message", {...} );
Sign and broadcast a transaction from an agent wallet.
const result = await client.post( "/api/v1/wallet/send-transaction", {...} );
LLM text inference across 11 models. Auto-routed, pay per call.
const result = await client.post( "/api/v1/compute/text-inference", {...} );
AI image generation (FLUX, SDXL). Pay per image.
const result = await client.post( "/api/v1/compute/image-generation", {...} );
AI video generation. Pay per render.
const result = await client.post( "/api/v1/compute/video-generation", {...} );
Text to speech (TTS). Pay per synthesis.
const result = await client.post( "/api/v1/compute/text-to-speech", {...} );
Speech to text (STT). Pay per transcription.
const result = await client.post( "/api/v1/compute/speech-to-text", {...} );
Text embeddings for RAG pipelines.
const result = await client.post( "/api/v1/compute/embeddings", {...} );
Batch compute — up to 50 jobs, 10% discount.
const result = await client.post( "/api/v1/compute/batch", {...} );
Poll the status of a compute job by ID.
const result = await client.get( "/api/v1/compute/status/:jobId" );
Free discovery endpoint listing all compute models across text, image, video, speech, and embeddings with pricing. Call first to pick the right model and provider.
const result = await client.get( "/api/v1/compute/models" );
Free price estimation for a compute job before committing. Returns expected cost by model and input size. Call before any paid compute request to validate budget.
const result = await client.post( "/api/v1/compute/estimate", {...} );
Get a Jupiter swap quote on Solana.
const result = await client.get( "/api/v1/solana/jupiter/quote" );
Build a Jupiter swap transaction on Solana.
const result = await client.post( "/api/v1/solana/jupiter/swap-tx", {...} );
Fetch Helius DAS assets owned by an address.
const result = await client.get( "/api/v1/solana/helius/assets-by-owner" );
Fetch a single Helius DAS asset by ID.
const result = await client.get( "/api/v1/solana/helius/asset" );
Pyth price feed for a single asset.
const result = await client.get( "/api/v1/solana/pyth/price" );
Pyth batch price feed for multiple assets.
const result = await client.get( "/api/v1/solana/pyth/prices" );
Full token portfolio for an address across supported chains.
const result = await client.get( "/api/v1/portfolio/tokens" );
NFT holdings for an address across supported chains.
const result = await client.get( "/api/v1/portfolio/nfts" );
Read from any smart contract via a view/pure call.
const result = await client.post( "/api/v1/contract/read", {...} );
Submit a state-changing smart contract transaction.
const result = await client.post( "/api/v1/contract/write", {...} );
Open DeFi positions for an address across supported protocols.
const result = await client.get( "/api/v1/defi/positions" );
Deposit USDC to open a prepaid compute credit account. Tier discounts: $10+ (5%), $50+ (10%), $200+ (15%). Draw down per inference, refund unused balance anytime.
const result = await client.post( "/api/v1/compute-futures/deposit", {...} );
Check remaining compute credit balance, tier, discount, and usage stats for a futures account.
const result = await client.get( "/api/v1/compute-futures/balance" );
Run a compute job (text-inference, image-gen, video-gen, TTS, STT, embeddings) and deduct cost from the prepaid balance instead of paying per call. Tier discount applied automatically.
const result = await client.post( "/api/v1/compute-futures/execute", {...} );
Full usage ledger for a compute futures account — every job, model, price, and balance change. For accounting and reconciliation.
const result = await client.get( "/api/v1/compute-futures/history" );
Refund the unused compute credit balance back to the original depositor. Only the depositor can request a refund.
const result = await client.post( "/api/v1/compute-futures/refund", {...} );
Compute futures pricing — tier discounts, per-model costs, and bulk discount info. Call before deposit to evaluate tiers.
const result = await client.get( "/api/v1/compute-futures/pricing" );
Dictionary definition with phonetics and examples.
const result = await client.get( "/api/v1/research/dictionary/define" );
Synonyms and antonyms for a word.
const result = await client.get( "/api/v1/research/dictionary/synonyms" );
Phonetic transcription and audio URL.
const result = await client.get( "/api/v1/research/dictionary/phonetics" );
Search 250M+ academic papers (OpenAlex CC0).
const result = await client.get( "/api/v1/research/papers/search" );
Paper metadata by DOI (OpenAlex).
const result = await client.get( "/api/v1/research/papers/by-doi" );
Papers by author name or ORCID (OpenAlex).
const result = await client.get( "/api/v1/research/papers/by-author" );
Citation graph — cited-by count and references.
const result = await client.get( "/api/v1/research/papers/citations" );
Trending papers by topic in the last N days.
const result = await client.get( "/api/v1/research/papers/trending" );
Search arXiv preprints by keyword and category.
const result = await client.get( "/api/v1/research/preprints/search" );
arXiv preprint metadata by ID.
const result = await client.get( "/api/v1/research/preprints/by-id" );
Latest arXiv preprints by category.
const result = await client.get( "/api/v1/research/preprints/recent" );
Full Crossref metadata for any DOI.
const result = await client.get( "/api/v1/research/scholarly/by-doi" );
Search 150M+ works via Crossref (CC0).
const result = await client.get( "/api/v1/research/scholarly/search" );
Citation count and references for a DOI.
const result = await client.get( "/api/v1/research/scholarly/citations-count" );
Journal metadata by ISSN.
const result = await client.get( "/api/v1/research/scholarly/journal-info" );
PubChem compound by name, formula, or CID.
const result = await client.get( "/api/v1/research/chemistry/compound" );
Find structurally similar compounds in PubChem.
const result = await client.get( "/api/v1/research/chemistry/similarity" );
Biological assay results for a PubChem compound.
const result = await client.get( "/api/v1/research/chemistry/bioactivity" );
Search 36M+ biomedical papers in PubMed.
const result = await client.get( "/api/v1/research/biomedical/search" );
Paper metadata by PubMed ID.
const result = await client.get( "/api/v1/research/biomedical/by-pmid" );
US Census data by state, county, or zip.
const result = await client.get( "/api/v1/research/demographics/census" );
Search Data.gov datasets by keyword.
const result = await client.get( "/api/v1/research/demographics/datasets" );
Free address safety screen — phishing, sanctions, exploits, mixer usage, malicious contracts. Screen recipients before sending funds.
const result = await client.get( "/api/v1/address/safety" );
Free pre-trade token safety check — honeypot, sell tax, mint/blacklist, proxy risk. GoPlus-powered with Spraay severity scoring. Called before every trade.
const result = await client.get( "/api/v1/token/safety" );
Free transaction decoder — plain-English summary + structured token transfers for any EVM tx. Covers swaps, transfers, approvals, wraps, NFTs, batch payments. Blockscout-powered.
const result = await client.get( "/api/v1/tx/decode" );
Multi-dimensional wallet/agent trust score via ProofLayer. Financial, reliability, trust, social axes + XMTP reputation + on-chain signals. Counterparty due diligence for agent-to-agent payments.
const result = await client.get( "/api/v1/trust/score" );
Search prediction markets across Polymarket & Kalshi in one query. Returns matching markets from all sources with prices and source labels.
const result = await client.get( "/api/v1/markets/search" );
List Polymarket events with their markets, outcomes, and current prices.
const result = await client.get( "/api/v1/markets/polymarket/events" );
Single Polymarket market by condition ID — outcomes, prices, volume, resolution status.
const result = await client.get( "/api/v1/markets/polymarket/market" );
Live CLOB order book (bids/asks with sizes) for a Polymarket outcome token.
const result = await client.get( "/api/v1/markets/polymarket/orderbook" );
Recent trades for a Polymarket market — price, size, side, and timestamp.
const result = await client.get( "/api/v1/markets/polymarket/trades" );
List Kalshi event contracts (regulated US markets) with tickers and prices.
const result = await client.get( "/api/v1/markets/kalshi/events" );
Single Kalshi market by ticker — yes/no prices, volume, and settlement info.
const result = await client.get( "/api/v1/markets/kalshi/market" );
Real-time stock quote via Finnhub — current price, daily open/high/low, previous close, and change.
const result = await client.get( "/api/v1/stocks/price" );
Historical OHLC candles via Finnhub — open/high/low/close/volume series for the requested resolution and range.
const result = await client.get( "/api/v1/stocks/history" );
Company profile via Finnhub — name, exchange, industry, market cap, IPO date, and more.
const result = await client.get( "/api/v1/stocks/company" );
Search a stock symbol by company name or partial ticker via Finnhub.
const result = await client.get( "/api/v1/stocks/search" );
Generate images from a text prompt (DALL-E 3, FLUX, or SDXL). Returns the image directly or a job ID to poll with Status.
const result = await client.post( "/api/v1/image/generate", {...} );
Edit an existing image with a text prompt and optional mask — transparent mask areas are replaced.
const result = await client.post( "/api/v1/image/edit", {...} );
Poll an image generation or edit job by ID — returns progress/state and the result URL(s) once complete.
const result = await client.get( "/api/v1/image/status" );
One line: claude mcp add spraay -s user -- npx -y spraay-x402-mcp. Auto-creates a wallet at ~/.spraay/.session — no private key needed. Works in Claude Code, Cursor & Cline; also on Smithery.
Merged into the official Coinbase x402 ecosystem registry.
Official community tool — merged via ADK PR #95.
Community tool — merged into the Strands Agents docs (PR #825).
Hit endpoints directly with any x402 client. USDC on Base & Solana.
TypeScript SDK, Solana SDK, Python CLI. Open source on GitHub.
Robot Task Protocol v1.0 — open standard for AI agents hiring robots via x402.
Batch Payments for Agents 1.0 — the open standard our batch endpoints implement.
Real-time gateway traffic and settlement metrics.