Install
openclaw skills install oneshotClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
OneShot SDK for AI agent commercial transactions. Send emails, make calls, research, buy products, and more with automatic x402 payments. Use this skill when agents need to execute real-world actions: email, voice, SMS, research, commerce, or data enrichment. Supports Coinbase CDP Wallets (recommended, no private keys) or raw wallet key authentication.
openclaw skills install oneshotInfrastructure for autonomous AI agents to execute real-world commercial transactions: email, payments, e-commerce, research, and data enrichment with native x402 payments.
npm install @oneshot-agent/sdk
With CDP Wallet (Recommended — no private keys):
import { OneShot } from '@oneshot-agent/sdk';
// Reads CDP_API_KEY_ID, CDP_API_KEY_SECRET, CDP_WALLET_SECRET from env
const agent = await OneShot.create({ cdp: true });
// Send an email
await agent.email({
to: 'recipient@example.com',
subject: 'Hello from my agent',
body: 'This email was sent autonomously.'
});
With Raw Private Key:
import { OneShot } from '@oneshot-agent/sdk';
const agent = new OneShot({
privateKey: process.env.ONESHOT_WALLET_PRIVATE_KEY
});
OneShot uses x402 payments (USDC on Base). Two wallet options:
Server-side wallet managed by Coinbase — no private keys in your config. Signing happens in Coinbase's secure enclave (TEE).
export CDP_API_KEY_ID="your-api-key-id"
export CDP_API_KEY_SECRET="your-api-key-secret"
export CDP_WALLET_SECRET="your-wallet-secret"
const agent = await OneShot.create({ cdp: true });
Get credentials at Coinbase Developer Platform. The SDK auto-creates a wallet on first use. Optional: npm install @coinbase/cdp-sdk
Direct wallet control for agents managing their own keys:
export ONESHOT_WALLET_PRIVATE_KEY="0xYourPrivateKey"
const agent = new OneShot({ privateKey: process.env.ONESHOT_WALLET_PRIVATE_KEY });
Bring your own signing implementation:
const agent = await OneShot.create({
walletProvider: {
address: '0x...',
signTypedData: async (domain, types, value) => signature
}
});
Test Mode: SDK runs in test mode by default (Base Sepolia testnet). Set ONESHOT_TEST_MODE=false for production.
// Send email (~$0.01 per email, ~$10 first-time domain setup)
const result = await agent.email({
to: 'recipient@example.com',
subject: 'Subject line',
body: 'Email body content',
attachments: [{ filename: 'doc.pdf', content: base64String }]
});
// Bulk email
const result = await agent.email({
to: ['user1@example.com', 'user2@example.com'],
subject: 'Bulk message',
body: 'Sent to multiple recipients'
});
// List inbound emails (free)
const emails = await agent.inboxList();
// Get specific email
const email = await agent.inboxGet({ id: 'email_id' });
// Send SMS (~$0.035 per segment)
const result = await agent.sms({
to: '+15551234567',
body: 'Hello via SMS'
});
// List SMS inbox
const messages = await agent.smsInboxList();
// Make a call (~$0.25/min)
const result = await agent.voice({
to: '+15551234567',
objective: 'Schedule a meeting for next Tuesday',
context: 'Calling to follow up on our email exchange'
});
// Deep research ($0.50-$2.00)
const result = await agent.research({
query: 'What are the latest developments in agent commerce?',
depth: 'deep' // 'quick' or 'deep'
});
// Returns report with citations
console.log(result.report);
console.log(result.sources);
// Find email (~$0.10)
const result = await agent.findEmail({
name: 'John Doe',
company: 'Acme Corp'
});
// Verify email deliverability (~$0.01)
const result = await agent.verifyEmail({
email: 'john@acme.com'
});
// Enrich profile from LinkedIn (~$0.10)
const result = await agent.enrichProfile({
linkedin_url: 'https://linkedin.com/in/johndoe'
});
// People search (~$0.10/result)
const results = await agent.peopleSearch({
job_title: 'CTO',
company: 'Acme Corp',
location: 'San Francisco'
});
// Search products (free)
const products = await agent.commerceSearch({
query: 'wireless headphones',
max_results: 10
});
// Buy product (product price + fee)
const result = await agent.commerceBuy({
product_url: 'https://amazon.com/dp/B0...',
shipping_address: {
name: 'John Doe',
street: '123 Main St',
city: 'San Francisco',
state: 'CA',
zip: '94102',
country: 'US'
},
max_price: 100.00
});
// Build a website (~$10+)
const result = await agent.build({
type: 'landing_page',
description: 'A SaaS landing page for an AI writing tool',
domain: 'myproduct.com'
});
// Update existing site
const result = await agent.updateBuild({
build_id: 'build_abc123',
changes: 'Update the hero section headline to: Ship faster with AI'
});
// Check balance (free)
const balance = await agent.getBalance();
console.log(`Balance: ${balance.usdc} USDC`);
// Universal tool call
const result = await agent.tool('email', {
to: 'user@example.com',
subject: 'Hello',
body: 'Sent via universal tool method'
});
Use OneShot tools in Claude Desktop, Cursor, OpenClaw, or Claude Code:
npm install -g @oneshot-agent/mcp-server
With CDP Wallet (Recommended):
{
"mcpServers": {
"oneshot": {
"command": "npx",
"args": ["-y", "@oneshot-agent/mcp-server"],
"env": {
"CDP_API_KEY_ID": "your-api-key-id",
"CDP_API_KEY_SECRET": "your-api-key-secret",
"CDP_WALLET_SECRET": "your-wallet-secret"
}
}
}
}
With Raw Private Key:
{
"mcpServers": {
"oneshot": {
"command": "npx",
"args": ["-y", "@oneshot-agent/mcp-server"],
"env": {
"ONESHOT_WALLET_PRIVATE_KEY": "0xYourPrivateKey"
}
}
}
}
| Tool | Cost |
|---|---|
| ~$0.01/email (+$10 first domain) | |
| SMS | ~$0.035/segment |
| Voice | ~$0.25/minute |
| Research (quick) | ~$0.50 |
| Research (deep) | ~$2.00 |
| Find Email | ~$0.10 |
| Verify Email | ~$0.01 |
| Enrich Profile | ~$0.10 |
| People Search | ~$0.10/result |
| Product Search | Free |
| Commerce Buy | Product price + fee |
| Build Website | ~$10+ |
| Inbox/Notifications | Free |
Add USDC to your agent's wallet on Base network:
console.log(agent.address)Test mode uses Base Sepolia testnet (free test USDC).
import { OneShot, ContentBlockedError, InsufficientBalanceError } from '@oneshot-agent/sdk';
try {
const result = await agent.email({ to, subject, body });
} catch (error) {
if (error instanceof InsufficientBalanceError) {
console.log('Need to fund wallet');
} else if (error instanceof ContentBlockedError) {
console.log('Content policy violation');
}
}
Monetize your agent by listing on Soul.Markets:
Docs: https://docs.soul.mds.markets