Quick start
Install the lnbot CLI, create a wallet, receive your first payment, check the balance and send bitcoin to another Lightning address.
These steps take a new wallet from empty to its first payment out, in a terminal. To fund it you need ₿1,000 in any other Lightning wallet.
1. Install & create wallet
curl -fsSL https://ln.bot/install.sh | bash
lnbot initThe installer puts lnbot in /usr/local/bin, or in ~/.local/bin when it can't use sudo. For Windows, Homebrew or Go, see the install options. lnbot init registers an account and creates its first wallet:
Registering account... done
Creating wallet... done
✓ Account and wallet created
Wallet: x4k7m2 (wal_c7i0hnuoxxupuwej)
Address: x4k7m2@ln.bot
API key: uk_9Qf3Lx7Tz...6bHc
⚠ Recovery passphrase, shown only once. Keep it safe:
orbit garden pilot smoke valley ticket museum hollow drift cabin lemon fragile
Config saved to /home/you/.config/lnbot/config.jsonSave the recovery passphrase before you go on. It is printed this once, and it is how you get back into the account if the key is lost (lnbot restore recovery). Anyone who has it can take the account over, so keep it offline. x4k7m2@ln.bot is the wallet's Lightning address; the key and the wallet ID stay in the config file.
2. Create an invoice
lnbot invoice create --amount 1000 --memo "first invoice" Amount: ₿1,000
Status: Pending
BOLT11:
lnbc10u1p5x8k2a...
Waiting for payment... (Ctrl+C to stop)Pay the lnbc... invoice from any Lightning wallet. The command waits for the payment, then prints:
✓ Payment received: +₿1,000--amount is in sats, the unit this site writes as ₿, so --amount 1000 is ₿1,000. If you stop waiting with Ctrl+C, the invoice can still be paid until it expires. A payer whose wallet supports Lightning addresses can skip the invoice and send to x4k7m2@ln.bot.
3. Check balance
lnbot balance Balance: ₿1,000
Available: ₿1,000
On hold: ₿0Available is what the wallet can spend now; On hold is reserved for payments that are still in flight.
4. Make a payment
Paying needs a funded wallet, which you now have. To try it without the money leaving your account, create a second wallet and pay its address:
lnbot wallet create✓ Wallet created
ID: wal_x8j2knroyyqpvwfh
Name: k3p9tq
Address: k3p9tq@ln.botlnbot pay k3p9tq@ln.bot --amount 500 Amount: ₿500
Fees: ₿0 (to an ln.bot wallet)
Total: ₿500
Send ₿500 to k3p9tq@ln.bot? (y/N) y
✓ Payment settled in 414ms
Amount: ₿500
Fees: ₿0
Available: ₿500pay shows what the payment costs before it asks. The new wallet doesn't become the active one, so pay spends from x4k7m2, and Available: is what it has left. Transfers between ln.bot wallets are free. Any Lightning address, LNURL or BOLT11 invoice works as the target; paying one outside ln.bot costs 0.25%, at least ₿1, plus the network fee, which is another 0.25% and the routing fee.
pay asks before it sends. In a script or an agent, add --yes: when nothing answers the prompt, pay prints Cancelled. and exits with status 0 without paying. If the payment is still in flight when the API answers, pay prints Waiting for settlement... and waits for the result.
5. Connect an agent
lnbot mcp config --remoteThis prints an MCP config block for the active wallet, with your user key in it. MCP server shows where it goes in Claude Code, Cursor and other clients. The MCP tools can spend the whole balance, so point an agent at a wallet that holds only what it may spend: lnbot mcp config --remote --wallet k3p9tq prints the block for the second wallet.
What's next
- CLI reference: every command, with its flags and its output
- MCP server: connect an AI agent to a wallet
- REST API: call the API directly
- SDKs: TypeScript, Python, Go, Rust and C#