boltproof — check if a Lightning payment really happened, right in your browser
Ever had someone tell you "I paid you" while your wallet shows nothing? The honest answer to *"did they really pay?"* isn't a screenshot. It's the **preimage**.
boltproof is a tiny tool that proves a Lightning payment for real:
1. Paste the **invoice** (the `lnbc…` you handed out)
2. Paste the **preimage** (the secret the payer receives when the payment settles)
3. It checks the invoice's signature and that `sha256(preimage) == payment_hash`
If it matches, the payment provably happened. The preimage *is* the receipt. Only the person who actually paid can produce it, there's no need for "trust me bro" in the loop.
**Why I built it**
* Merchants and freelancers: confirm a customer actually paid before you ship.
* Devs: a quick way to sanity-check BOLT11 invoices and preimages.
**What I care about**
* **Runs entirely in your browser.** No account, no login, nothing stored. The invoice and preimage never leave your machine.
* **It verifies the node signature**, so a tampered invoice (e.g. a swapped payment hash) gets rejected instead of quietly passing the check.
**Isn't there already something for this?**
Credit where it's due: Blink has a page that decodes BOLT11 invoices and checks preimages, and it works. But it's built for people who already know what a payment hash is, and it's tucked away where most folks never find it. boltproof is the focused version; one question ("did they pay?"), a plain-language answer, and nothing else to learn.
Try it: [https://boltproof.app](https://boltproof.app)
Still early. I'd love feedback, especially from node runners on anything that feels off. Zaps welcome ⚡


boltproof
boltproof — Verify Lightning Payments Locally
Check if a Lightning payment is real. Validate a BOLT11 invoice
Stacker News
boltproof — check if a Lightning payment really happened, right in your browser \ stacker news
Ever had someone tell you "I paid you" while your wallet shows nothing? The honest answer to "did they really pay?" isn't a screenshot. It's the pr...
