A Lightning POS turns protocol knowledge into a merchant tool: show QR, wait for payment, print/mark paid.
Complete Step 1 // Required reading in the study plan above, then continue here. This opens Lightning Projects.
Step 2 — Goal
- Create invoice for cart total
- Display BOLT11 QR
- Detect settlement via websocket/webhook/RPC subscribe
- Handle expiry and cancel
Loading diagram…
Done when: You can narrate pending vs paid vs expired without opening the code.
Step 3 — Milestones
| Phase | Ship |
|---|---|
| Milestone A | Backend mint invoice + return bolt11 |
| Milestone B | Cashier UI: QR + pending/paid states |
| Milestone C | Subscribe to settle; expiry/cancel; idempotent charge keys |
Done when: Milestone A works before you polish UI chrome.
Step 4 — Build & evidence (lab)
Implement against /projects/lightning-pos. Capture repo link, happy-path demo, and one failure case.
Common mistakes
- Creating a new invoice on every UI refresh
- Treating “invoice created” as paid
- Blocking the cashier UI on synchronous pay RPCs without a pending state
Done when: Lab evidence is filed.
Next lesson
Node Ops Dashboard — channels, peers, balances, and routing revenue.