Skip to main content

Install

pip install langchain-boltzpay
Requires Node.js 20+ (the tools call npx @boltzpay/cli under the hood).

Quick Start

from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
from langchain_boltzpay import (
    BoltzPayFetchTool,
    BoltzPayCheckTool,
    BoltzPayDiscoverTool,
)

tools = [BoltzPayDiscoverTool(), BoltzPayCheckTool(), BoltzPayFetchTool()]
llm = ChatOpenAI(model="gpt-4o-mini")

prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a researcher. Use BoltzPay to access paid APIs."),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])

agent = create_tool_calling_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools)

result = executor.invoke({"input": "Check the price of invy.bot/api"})

Enable Payments

Set Coinbase CDP environment variables before running:
export COINBASE_API_KEY_ID="your-key-id"
export COINBASE_API_KEY_SECRET="your-key-secret"
export COINBASE_WALLET_SECRET="your-wallet-secret"
from langchain_boltzpay import BoltzPayFetchTool

fetch = BoltzPayFetchTool()
result = fetch._run(url="https://invy.bot/api")
print(result)  # Paid API response with payment receipt

Tools

ToolNameDescriptionCredentials
BoltzPayFetchToolboltzpay_fetchFetch data from a paid API, auto-pay with USDCYes
BoltzPayCheckToolboltzpay_checkCheck if a URL requires paymentNo
BoltzPayQuoteToolboltzpay_quoteGet price quote without payingNo
BoltzPayDiscoverToolboltzpay_discoverBrowse available paid APIsNo
BoltzPayBudgetToolboltzpay_budgetShow remaining spending budgetNo
BoltzPayHistoryToolboltzpay_historyShow payment historyNo
BoltzPayWalletToolboltzpay_walletShow wallet and config infoNo

Error Handling

All tools set handle_tool_error=True, so agents recover gracefully. You can also catch errors directly:
from langchain_boltzpay import BoltzPayFetchTool
from langchain_boltzpay.errors import (
    BoltzPayBridgeError,
    BoltzPayNodeNotFoundError,
    BoltzPayTimeoutError,
)

try:
    tool = BoltzPayFetchTool()
    tool._run(url="https://example.com/api")
except BoltzPayNodeNotFoundError:
    print("Install Node.js 20+ from https://nodejs.org")
except BoltzPayTimeoutError:
    print("CLI command timed out (default: 30s)")
except BoltzPayBridgeError as e:
    print(f"CLI error [{e.code}]: {e.message}")
A Jupyter notebook is included at notebooks/getting-started.ipynb for a step-by-step walkthrough.