Quickstart (mainnet)
Safety & operational constraints (mainnet)
- This project is unaudited. Sending funds / opening channels / paying invoices on mainnet can lead to loss of funds.
- Start with
regtest.mdfirst (free/safer), and only try mainnet with small amounts. - You are responsible for all on-chain and Lightning fees, routing failures, and liquidity management.
Goal
Run your ownlnd, connect to the Provider below, and complete Quote → Pay → Stream:
- Provider node:
03737b4a2e44b45f786a18e43c3cf462ab97891e9f8992a0d493394691ac0db983@54.214.32.132:20309
Prerequisites
- Linux or macOS
- A working mainnet
lndinstallation (outside the scope of this repo) withlncliavailable - Go 1.24.4+
jq(optional, used only for pretty-printing JSON in some steps)
lnd/ folder or binaries — bring your own lnd.
0) Build go-lcpd CLI tools (one-time)
This quickstart avoids Nix and installs binaries into go-lcpd/bin/:
./bin/lcpd-grpcd, ./bin/lcpdctl, and ./bin/lcpd-oneshot.
1) Start lnd (mainnet)
Startlnd in mainnet mode using your preferred setup. You will need:
- lnd gRPC address (e.g.,
localhost:10009) - TLS cert path (e.g.,
~/.lnd/tls.cert) - Admin macaroon path (e.g.,
~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon)
2) Create/unlock wallet (first time)
First time (interactive):3) Connect to the Provider (Lightning peer connect)
4) Prepare for payments (funds + channel)
To uselcpd-oneshot -pay-invoice, your node must be able to pay:
- it has on-chain funds
- it has at least one channel with outbound liquidity (the shortest path is a direct channel to the Provider)
5) Start go-lcpd (Requester)
6) Inspect Provider supported models (optional)
In another terminal:peers[].remoteManifest.supportedTasks[].openaiChatCompletionsV1.model contains the Provider models (if advertised).
Notes:
supportedTasksis an optional field inlcp_manifest. If the Provider does not configurellm.models(or Provider mode is disabled), it will not advertisesupported_tasks.-o prettyjsonomits empty fields, so it may not showsupportedTaskseven if the field is absent by design.
7) Run one job (Quote → Pay → Stream)
In another terminal:8) (Optional) Start an interactive chat session
This keeps a local transcript and sends it as part of each new prompt. Each turn prints the invoice amount and a running total:Troubleshooting
peer is not ready for lcp: check thatlndis connected to the Provider (lncli listpeers), and confirmlcpdctl list-lcp-peerssees it.lcp_error code=2: unsupported model ...: set-modelto a value the Provider supports (see step 6).payment failed: you may have no channel / no route / insufficient liquidity. Checklncli walletbalanceandlncli listchannels.