bolthub
PricingBlogDocs
bolthub

Rail-agnostic pay-per-call for MCP tools and APIs. Agents pay per call and you keep custody. Lightning today, more rails next. Built for tool builders and AI teams.

contact@bolthub.ai

Product

All productsbolthub Pay SDKHosted platformToolClientAPI HubNode LauncherPricingFor tool buildersFor agentsCharge for your toolsDocs

Legal

Terms of ServicePrivacy PolicySecurityAcceptable Use

Resources

API HubBlogWhat is L402?L402 vs x402RSS feed

Packages

npm

@bolthub/​payTool-payment SDK@bolthub/​agentL402 payment client@bolthub/​cliCLI@bolthub/​mcp-registryRegistry MCP@bolthub/​mcp-bridgeBridge MCP@bolthub/​verifyWebhook verifier

PyPI

bolthubPython SDKbolthub-verifyPython verifier
bolthub

© 2026 Signal Tech Pty Ltd. All rights reserved.

products / toolclient

Free · part of @bolthub/payProxy coming in 0.3.0

A hard budget between your agent and the bill.

Your agent calls every tool through ToolClient: free tools pass through untouched, paid tools just work inside the budget you set. Nothing can be spent that you didn't explicitly allow, including zero.

Buyer quickstartFor agent builders
client.ts
import { ToolClient, l402Payer } from "@bolthub/pay";
const client = new ToolClient({
payers: [l402Payer({ wallet })],
maxTotal: { sat: 10_000 }, // lifetime ceiling, per asset
maxPerCall: { sat: 500 }, // per-call ceiling
onPaid: ({ amount, asset, resource }) =>
console.log(`paid ${amount} ${asset} for ${resource}`),
});
// Free tools pass through untouched. Paid tools are paid within the
// budget and retried with proof — or refused if they'd exceed it.
const result = await client.callTool(mcp, "get_satellite_image", {
lat: 47.4979,
lon: 19.0402,
});

Why wrap free tools too?

Because the day a tool starts charging, or your agent wanders into a paid one, is not the day you want to discover your spend controls don’t exist. With ToolClient in the path from day one, paid tools are a budget line you already control instead of an integration project — and until then it does nothing but pass calls through.

A budget it cannot exceed

Per-asset ceilings, lifetime and per call, enforced before any payment leaves. Configure zero and the agent can't spend at all — free tools still work.

Trustable by construction

Open source (MIT) with zero runtime dependencies. You can audit exactly what sits between your agent and its tools — and there isn't much.

Every payment observable

onPaid and stage callbacks report what was paid, to whom, on which rail, so spend is loggable and alertable like any other telemetry.

A budget, not a card on file.

Budgets are per asset because sats and stablecoins aren’t comparable. Reservations are taken synchronously, so concurrent calls can’t race past the ceiling.

terminal
bun add @bolthub/pay

Not limited to bolthub sellers

ToolClient speaks the open wire formats, not a bolthub API. The L402 payer answers any conforming Lightning challenge, and the x402 payer signs the standard stablecoin authorization used across the x402 ecosystem, so tools that have never heard of bolthub can still get paid. Read L402 vs x402 for how the rails differ.

Coming in @bolthub/pay 0.3.0

One config entry for all your MCP servers

The next release adds a proxy: a single entry in Cursor or Claude Desktop that wraps every MCP server you use. Free tools pass straight through; payment challenges are handled inside your budget. It runs locally, stays open source, and any telemetry is opt-in only.

Real-world use

A research agent with a 10,000-sat allowance

Your agent pulls from a dozen MCP tools; two charge per call. Give ToolClient a 10,000-sat lifetime budget and a 500-sat per-call cap. The agent works normally, pays the two paid tools as it goes, refuses anything above the cap, and stops spending at 10,000 sats no matter what it decides to do. You read the spend from the onPaid log like any other metric.

Where to go deeper

  • Buyer quickstartToolClient, payers, and budgets in about a minute.
  • API HubFind paid tools worth giving a budget to.

start calling

Copy one config. Start calling.

Wire bolthub into Cursor, Claude Desktop, or your own orchestrator. Add your wallet, set a budget, and your agent can discover and call any listed tool. Building in code? Python and TypeScript SDKs call any hub API directly.

Set up your agentBrowse the hub

hub / btc-intel

  • GET /v1/derivatives/cme-basis3 sats/req
  • GET /v1/market/multi_exchange3 sats/req

LIVE32 endpoints · btc-intel.gw.bolthub.ai

browse the hub →