LNURL is a family of bech32-encoded URLs that help wallets interact with services over HTTPS for pay, withdraw, auth, and more. Lightning Addresses (name@domain) typically resolve to LNURL-pay.
Complete Step 1 // Required reading in the study plan above, then continue here. This closes Lightning Basics.
Step 2 — Core idea: short ticket → HTTPS → BOLT11
Users hate pasting huge BOLT11 strings. LNURL and Lightning Addresses make Lightning feel like emailing money — with server-side responsibilities you must secure.
Analogy: LNURL is a short coat-check ticket that maps to a locker (HTTPS API) where the real invoice is minted when you arrive.
Loading diagram…
// Pseudo-flow
// 1) decode lnurl -> https URL
// 2) fetch JSON
// 3) request invoice for amount
// 4) pay bolt11Done when: You can place Lightning Address on the LNURL-pay path in one sentence.
Step 3 — Sketch the handshake (lab)
Pick LNURL-pay or withdraw from the LUDs. List each HTTP step and where BOLT11 appears. Call out one security check your app must enforce.
Common mistakes
- Trusting amounts displayed by a service without checking invoice fields
- Skipping success/error URL handling on withdraw
- Logging sensitive k1 secrets from auth flows
Done when: Lab evidence (step list + address note + security caution + LUD link) is complete. Complete the chapter quiz when prompted.
Next lesson
Opening Channels (Channels & HTLCs) — move from UX protocols to the capacity that carries payments.