Wallet
init, balance, info, history, address, send (with drain), list-utxos. BIP-39 seed, encrypted or plaintext. GPG backup option.
Agent wallet
bitkit-cli runs Bitcoin and Lightning from the command line. Your agent creates a wallet, opens channels, sends and receives payments, and reads structured output, all without an API key or a custodial account.
$ curl -sSL https://raw.githubusercontent.com/synonymdev/bitkit-cli/main/install.sh | shQuick start
One shell command. Downloads a static binary, no runtime dependencies. Also builds from source with cargo build --release (Rust 1.85+).
bitkit init --no-password --accept-tos --json creates a BIP-39 wallet. Seed is AES-256-GCM + Argon2id encrypted, or plaintext for automation.
bitkit address gives you an on-chain address. Fund it, then use bitkit lsp cjit to get a zero-conf Lightning channel via Blocktank.
For AI agents
Every command wraps output in a JSON envelope with typed exit codes (0 through 5). Agents parse structured data, not terminal formatting. Daemon mode keeps the LDK node hot so commands execute instantly instead of cold-starting each time.
$ bitkit init --no-password --accept-tos --json
{"ok":true,"data":{"seed_created":true}}
$ bitkit start --json
{"ok":true,"data":{"port":3457}}
$ bitkit invoice 5000 --json
{"ok":true,"data":{"bolt11":"lnbc50n1..."}}
$ bitkit pay lnbc... --json
{"ok":true,"data":{"preimage":"a1b2c3..."}}# ~/.bitkit/mainnet/config.toml
[node]
webhook_url = "https://agent.example.com/hook"
webhook_secret = "hmac-secret"
# events: payment_received, payment_sent,
# payment_failed, channel_ready, channel_closed
# HMAC-SHA256 signed, 3x retry with backoffDaemon mode
bitkit start runs a background daemon on port 3457. All subsequent commands proxy through its HTTP API instead of cold-starting. Configure webhooks in config.toml to get HMAC-signed POSTs on payment and channel events. Real-time stream at ws://localhost:3457/events.
What it does
Rust, LDK under the hood, Blocktank as the LSP. Mainnet by default, regtest with --network regtest.
init, balance, info, history, address, send (with drain), list-utxos. BIP-39 seed, encrypted or plaintext. GPG backup option.
invoice (with --wait and --qr), pay, keysend. BOLT 11 invoices, max-fee and timeout controls.
LNURL-pay, LNURL-withdraw, Lightning Addresses. Pay user@domain directly from the CLI.
open-channel, close-channel, force-close, update-channel-config, list-channels. Full lifecycle management.
lsp create-order, lsp open-channel, lsp cjit for zero-conf instant channels. Auto-liquidity mode reorders inbound capacity when it drops below threshold.
start, stop, status. HTTP API on :3457 with Basic Auth. Webhooks (HMAC-SHA256, 3x retry) and WebSocket event stream.
--json on every command. Exit codes 0-5 (success, user error, network, insufficient funds, ToS, geoblocked). Shell completions for bash, zsh, fish, PowerShell.
E2E encrypted messages via Pubky. message send, read, listen, whoami. Agent-to-agent communication over an authenticated channel.
Why this
Your agent holds the keys. No API token from a third-party wallet provider, no custodial account that can freeze funds or require KYC to withdraw. A static Rust binary that talks to the Bitcoin network directly.
The seed phrase lives on the machine running the agent. Nobody else can recover or freeze those funds. Back it up with GPG if the agent environment is ephemeral.
Each command cold-starts the LDK node and shuts down on exit. Or run the daemon for instant execution. Same binary, same commands either way.
Short alias. bk balance --json does exactly what bitkit balance --json does. Fewer characters in agent prompts.
Compare
Single Rust binary, no runtime dependencies. phoenixd needs JVM (JRE 11+).
JSON envelope on every CLI command with typed exit codes (0-5). phoenixd gives JSON only on API responses, exit code is 0 or 1.
Blocktank (Synonym). Lowest channel-open fees in our benchmarks. phoenixd uses ACINQ, which charges more.
RBF + CPFP. phoenixd does CPFP only.
E2E encrypted via Pubky. phoenixd has no messaging.
HMAC-SHA256 signed with 3x retry and backoff. phoenixd fires once, no retry.
MIT licensed. Works with OpenClaw, NanoClaw, Moltis, Claude Code, or any harness that can run shell commands.