langchain-oneshot
LangChain tools for OneShot — commercial actions for AI agents.
Provides 43 tools as LangChain BaseTool subclasses with automatic x402 payment handling via USDC on Base.
Installation
pip install langchain-oneshot
Quick Start
from langchain_oneshot import OneShotToolkit
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
toolkit = OneShotToolkit.from_private_key(
private_key="0x...",
)
# Use all 43 tools with a LangGraph agent
tools = toolkit.get_tools()
llm = ChatOpenAI(model="gpt-4o")
agent = create_react_agent(llm, tools)
result = agent.invoke({
"messages": [("user", "Research the latest AI agent frameworks")]
})
Individual Tools
from langchain_oneshot import OneShotClient, ResearchTool
client = OneShotClient(private_key="0x...")
research = ResearchTool(client=client)
result = research.invoke({"topic": "AI agent frameworks 2026"})
Available Tools
| Tool | Description |
|---|---|
oneshot_email |
Send emails |
oneshot_voice |
Make phone calls |
oneshot_sms |
Send SMS messages |
oneshot_research |
Deep web research |
oneshot_web_search |
Search the web |
oneshot_web_read |
Read a web page as markdown |
oneshot_people_search |
Search for people |
oneshot_enrich_profile |
Enrich a profile |
oneshot_find_email |
Find email address |
oneshot_verify_email |
Verify email |
oneshot_deep_research_person |
Full dossier on a person |
oneshot_social_profiles |
Find all social accounts |
oneshot_article_search |
Find articles about a person |
oneshot_person_newsfeed |
Recent social posts |
oneshot_person_interests |
Analyze interests |
oneshot_person_interactions |
Map followers/following |
oneshot_commerce_search |
Search products |
oneshot_commerce_buy |
Purchase product |
oneshot_build |
Build a website |
oneshot_update_build |
Update a website |
oneshot_browser |
Browser automation task |
oneshot_browser_create_profile |
Create a browser profile |
oneshot_browser_list_profiles |
List browser profiles |
oneshot_browser_delete_profile |
Delete a browser profile |
oneshot_inbox_list |
List inbox emails |
oneshot_inbox_get |
Get email by ID |
oneshot_sms_inbox_list |
List SMS inbox |
oneshot_sms_inbox_get |
Get SMS by ID |
oneshot_notifications |
List notifications |
oneshot_mark_notification_read |
Mark read |
oneshot_get_balance |
USDC balance |
oneshot_budget_status |
Today's spend vs the configured budget (read-only) |
oneshot_linkedin_connect |
Hosted login link for a human to connect their LinkedIn account (free) |
oneshot_linkedin_accounts |
Connected LinkedIn accounts / pending connection status (free) |
oneshot_linkedin_sync |
One bounded, resumable LinkedIn history-sync run (paid) |
oneshot_linkedin_conversations |
Synced LinkedIn conversations with coverage state (free) |
oneshot_linkedin_messages |
Synced LinkedIn messages, filterable by direction / since (free) |
oneshot_linkedin_reply |
Send a reply through the connected account (paid, idempotent) |
oneshot_linkedin_view_profile |
View a profile through the connected account (paid) |
oneshot_linkedin_react |
React to a post through the connected account (paid) |
oneshot_list_domains |
Sending domains + reputation/rotation state |
oneshot_pause_domain |
Take a domain out of rotation |
oneshot_resume_domain |
Put a paused domain back into rotation |
Paid tools are priced in USDC via x402. See Pricing for current rates.
How Payments Work
Paid tools use the x402 protocol. When a tool requires payment:
- The client POSTs to the tool endpoint
- The API returns
402 Payment Requiredwith a quote - The client signs a USDC
TransferWithAuthorization(EIP-3009) using your private key - The client re-POSTs with the signed payment header
- The API processes the request and returns the result
All payment signing happens locally — your private key never leaves your machine.
Read tools (inbox, SMS inbox, notifications, balance, browser profiles) additionally send a signed EIP-712 read proof (x-agent-proof) so the API can verify you control the X-Agent-ID wallet before returning private data. This is handled by the underlying oneshot-python client — no extra code. Requires oneshot-python >= 0.18.0 (already the dependency floor).
Configuration
toolkit = OneShotToolkit.from_private_key("0x...")
# Custom API URL
toolkit = OneShotToolkit.from_private_key("0x...", base_url="https://custom-api.example.com")
The SDK operates on Base Mainnet with real USDC. Fund your wallet before making paid tool calls.
Spend budget
toolkit = OneShotToolkit.from_private_key(
"0x...",
budgets={"daily": 50, "per_transaction": 5, "alert_at": 0.8},
alert_email="you@example.com",
)
Enforced server-side on every paid call (403 budget_exceeded → oneshot.BudgetExceededError). The agent can read its utilization with oneshot_budget_status but cannot change the cap. Requires oneshot-python >= 0.20.0.
Requirements
- Python 3.10+
langchain-core >= 0.3.0oneshot-python >= 0.18.0pydantic >= 2.0
Links
- Documentation
- oneshot-python on PyPI — Core HTTP client (dependency)
- TypeScript SDK
- MCP Server
- GitHub
License
MIT
Metadata
Release files for langchain-oneshot 0.14.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_oneshot-0.14.0.tar.gz | 132.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_oneshot-0.14.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 159.3 kB
Release files / langchain_oneshot-0.14.0.tar.gz
| Download URL | langchain_oneshot-0.14.0.tar.gz |
|---|---|
| Size | 132.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eff32145e8c1d6459395581d61d3683189b72700c2b41010bf403826590b1b37
|
|
BLAKE2b-256 checksum How to use checksums |
928bb9c3a7bea77707cf9b8e6ad4d3d6f9601788a053611b206fd68ca0f5bb76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / langchain_oneshot-0.14.0-py3-none-any.whl
| Download URL | langchain_oneshot-0.14.0-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7b86e3f63b50bb03b5d4455ce10c3aedf3fa557e308a14d6193cf39be6e337bd
|
|
BLAKE2b-256 checksum How to use checksums |
a96773cce7195941650ddd142abc7f851831ec008f331aab64415d0f6cc6b297
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|