Openclaw-master-skills bankofbots
git clone https://github.com/LeoYeAI/openclaw-master-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bankofbots" ~/.claude/skills/leoyeai-openclaw-master-skills-bankofbots && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/bankofbots" ~/.openclaw/skills/leoyeai-openclaw-master-skills-bankofbots && rm -rf "$T"
skills/bankofbots/SKILL.mdSetup
Download the latest
bob binary from https://github.com/bankofbots/bob-cli/releases/latest and place it on your PATH.
You need these credentials for all API calls:
— your agent API keyBOB_API_KEY
— your agent IDBOB_AGENT_ID
—BOB_API_URLhttps://api.bankofbots.ai/api/v1
All commands output structured JSON with an
ok field and next_actions that suggest follow-up commands.
Supported rails:
and lightning
(BTC only). USD and USDC rails are not available.onchain
Core concepts
- Agent: An AI agent with its own identity, wallets, and spending policies
- Wallet: Holds a BTC balance on a specific rail (lightning or onchain)
- Policy: Spend limits, rate limits, and kill switches that constrain agent behavior
- Transaction: A record of money moving in or out of a wallet
- Service Gate: A priced action that callers unlock by presenting a completed payment intent
Commands
Check your identity
bob auth me
Returns your role (agent or operator), identity details, and role-aware
next_actions.
Agent details and wallet balances
bob agent get <agent-id>
Response includes a
wallets array with each wallet's balance, currency, rail, and status.
Wallet management
# List wallets for an agent bob wallet list <agent-id> # Get/set wallet budget (sats) bob wallet budget get <agent-id> --wallet-id <id> bob wallet budget set <agent-id> --wallet-id <id> --amount <sats>
bob wallet list includes a bob_address field when a default agent address is available.
One-shot send (auto-quote + execute)
bob send <agent-id> <destination> --amount <sats> [--currency BTC]
Destination is auto-detected:
→ routes asjade@bankofbots.ai
(BTC)bob_address
→ Lightning invoicelnbc...
→ on-chain BTC addressbc1.../tb1...
| Flag | Description |
|---|---|
| Required. Satoshis |
| cheapest, fastest, or balanced (default: balanced) |
| Optional payment note |
| Maximum acceptable fee in sats |
| Pin to lightning or onchain |
| Override auto-detection: or |
Quotes then executes in one step. Returns
intent_id, payment_id, and quote_summary. On failure, next_actions includes exact recovery commands.
CLI config introspection
# Show active api_url, platform, config file path and source (env/config/default) bob config show # Update a single config value without re-init bob config set api-url <url> bob config set platform <generic|openclaw|claude>
Record a transaction (spend from your wallet)
bob tx record <agent-id> --amount <sats> --currency BTC
| Flag | Description |
|---|---|
| Required. Satoshis |
| BTC (only supported currency) |
| lightning or onchain (default: auto) |
| Target endpoint or merchant identifier |
| Specific wallet to debit (auto-selected if omitted) |
Transfer BTC to another agent
bob tx transfer <from-agent-id> --to-agent-id <to-agent-id> --amount <sats> --currency BTC
| Flag | Description |
|---|---|
| Required. Destination agent ID |
| Required. Satoshis |
| Optional note |
Quote and execute payments (intent workflow)
The intent workflow quotes routes before executing, giving you visibility into fees, ETAs, and available rails.
# Quote routes for a payment bob intent quote <agent-id> --amount <sats> --destination-type raw --destination-ref <lnbc...|bc1...> # Execute a quoted intent (uses best quote by default) bob intent execute <agent-id> <intent-id> [--quote-id <id>] # Check intent status and route details bob intent get <agent-id> <intent-id> # List recent intents bob intent list <agent-id>
| Flag | Description |
|---|---|
| Required. Satoshis |
| or |
| Lightning invoice, on-chain address, or |
| , , or (default: balanced) |
| or (default: auto) |
| Pin to or |
| Pin to a specific wallet |
| Maximum acceptable fee in sats |
Non-custodial proof submission
Submit proof of BTC payment to verify settlement and build your BOB Score:
# On-chain transaction proof bob intent submit-proof <agent-id> <intent-id> --txid <txid> # Lightning payment hash proof bob intent submit-proof <agent-id> <intent-id> --payment-hash <hash> # Lightning preimage proof (strongest verification) bob intent submit-proof <agent-id> <intent-id> --preimage <hex> --proof-ref <payment-hash> # With optional BOLT11 invoice for amount verification bob intent submit-proof <agent-id> <intent-id> --preimage <hex> --proof-ref <payment-hash> --invoice <lnbc...> # Historical proof import for credit building bob agent credit-import <agent-id> --preimage <hex> --proof-ref <payment-hash> --amount <sats> --direction inbound --invoice <lnbc...>
| Proof Type | Description |
|---|---|
| On-chain transaction ID |
| Lightning payment hash |
| Lightning preimage (SHA256 verified against payment hash, strongest proof) |
Query history
# Transactions bob tx list <agent-id> --status complete --direction outbound --limit 10 # Transfers bob tx transfers <agent-id> # Spend summary bob spend list <agent-id>
View policies
bob policy list <agent-id>
Agent credit score and history
# View credit score, tier, and effective policy limits bob agent credit <agent-id> # View credit event timeline bob agent credit-events <agent-id> [--limit 50] [--offset 0]
The BOB Score runs from 0–1000. New operators start at 350. Tiers: Legendary (925+), Elite (800+), Trusted (650+, 1.5x limits), Established (500+, 1.2x limits), Verified (400+, 1.0x limits), New (300+, 1.0x limits), Unverified (150+, 0.6x limits), Blacklisted (0+, 0.6x limits). When credit tier enforcement is enabled, the tier multiplier adjusts spend and rate limits up or down from the base policy values.
Agent routing profile (autonomous rail preference)
# Inspect current weighting and preferred rail order bob agent routing-profile <agent-id> # Update balanced-scoring weights + preferred rails bob agent routing-profile set <agent-id> \ --cost-weight 0.6 \ --eta-weight 0.4 \ --reliability-weight 0.2 \ --liquidity-weight 0.1 \ --preferred-btc lightning,onchain
Routing profile influences quote ranking for
priority=balanced and is applied during intent quote + execute.
Agent webhooks and event stream
# Create/list/get/update/delete webhooks scoped to one agent bob agent webhooks create <agent-id> --url https://example.com/hook --events payment_intent.complete,payment.failed bob agent webhooks list <agent-id> bob agent webhooks get <agent-id> <webhook-id> bob agent webhooks update <agent-id> <webhook-id> --active true bob agent webhooks delete <agent-id> <webhook-id> # Pull recent agent events (paginated) bob agent events <agent-id> --limit 30 --offset 0
Agent-scoped webhooks/events include payment intent lifecycle events (
quoted, executing, submitted, complete, failed) so agents can react asynchronously without polling.
Operator credit controls
# View current operator credit posture bob operator credit summary # Force snapshot recompute bob operator credit refresh # Toggle runtime enforcement of credit tier multipliers bob operator credit enforcement set --enabled=true
Operator payment addresses
# Create and inspect address aliases bob address create --handle ops bob address list # Bind destination endpoints bob address add-endpoint <address-id> --currency BTC --rail lightning --destination-type raw --destination-ref <lnbc...> # Enable/disable a bound endpoint bob address set-endpoint-status <address-id> <endpoint-id> --status disabled # Resolve live routing capabilities bob address resolve --address ops@bankofbots.ai --currency BTC
Service gates (pay-to-access)
# Create a priced gate (agent must have a payment address) bob gate create <agent-id> --name "premium-api" --price 1000 --currency BTC # List active gates bob gate list <agent-id> # Get gate details bob gate get <agent-id> <gate-id> # Disable/re-enable a gate bob gate update <agent-id> <gate-id> --status disabled # Unlock a gate (caller presents a completed payment intent targeting the gate owner) bob gate unlock <owner-agent-id> <gate-id> --intent-id <payment-intent-id> # View unlock history bob gate unlocks <agent-id> <gate-id> # List gates this agent has unlocked as a caller bob gate my-unlocks <agent-id> # Discover another agent's active gates bob gate discover <agent-id>
| Flag | Description |
|---|---|
| Required. Human-readable gate name |
| Required. Minimum payment amount in sats |
| BTC |
| Required for unlock. Completed payment intent ID |
| For update: active or disabled |
Output format
Every command returns JSON with this structure:
{ "ok": true, "command": "bob tx record", "data": { ... }, "next_actions": [ { "command": "bob tx list <agent-id>", "description": "View transaction history" } ] }
Always check
ok before using data. When ok is false, data.error contains the error message and next_actions provides recovery suggestions.
Error recovery
When
ok is false, next_actions provides context-aware recovery suggestions. Key patterns:
- Kill switch active: STOP all transactions immediately. Run
to confirm.bob policy list <agent-id> - Spend/rate limit exceeded: Check
to see current usage vs limits.bob spend list <agent-id> - Insufficient balance: Check
to see available funds.bob wallet list <agent-id> - 403 Forbidden: Check
to verify your identity and role.bob auth me - 409 Conflict: Resource already exists (e.g., agent already registered). Do not retry — run
to confirm current state.bob agent get <agent-id>
Important rules
- Amounts are always in satoshis (BTC).
- Policies set by your operator constrain your spending. If a transaction is denied,
explains why. Do not retry denied transactions without changing the parameters.data.error - Kill switch: If you receive a kill switch denial, stop all transaction attempts immediately. The operator has frozen your spending.
- next_actions: Every response includes suggested follow-up commands. Use them to discover what to do next.