Quick start

Install the lnbot CLI, create a wallet, receive your first payment, check the balance and send bitcoin to another Lightning address.

Updated View as Markdown

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 init
bash

The 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.json

Save 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"
bash
  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
bash
  Balance:   ₿1,000
  Available: ₿1,000
  On hold:   ₿0

Available 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
bash
✓ Wallet created
  ID:       wal_x8j2knroyyqpvwfh
  Name:     k3p9tq
  Address:  k3p9tq@ln.bot
lnbot pay k3p9tq@ln.bot --amount 500
bash
  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:  ₿500

pay 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 --remote
bash

This 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#