L402 dry run with Lightning Enable
See a real L402 challenge from a Lightning Enable API, then finish the payment half on a local mock. This page does not pay the real invoice, does not move sats, and does not call an invoice callback.
read-only challenge, mock payment. The challenge card below is one real HTTP 402 response, cached for up to an hour. The invoice can expire while it is cached. The payment steps use a separate local mock with its own payment hash, so the real invoice is never touched.
- 1ask for a paid API without paying
the API answers HTTP 402 with a macaroon and a Lightning invoice. The macaroon carries caveats such as the price, the path and an expiry.
- 2pay the invoice in a wallet
a Lightning wallet pays the invoice and returns a preimage: the secret that hashes to the invoice payment hash. This dry run replaces only this step with a local mock.
- 3retry with the proof
the client sends
The live cached challenge and the local mock load in your browser.
what is real and what is mock. Real: the HTTP 402 response, the macaroon caveats, the invoice and the payment hash, all read with one unpaid GET. Mock: the preimage, the payment hash used for the authorization check, and the resource at the end. This tool never calls an invoice-creation API, no sats move, and no invoice callback is called.
Want the real thing? browse the L402 APIs · give an agent a Lightning budget with NWC · all L402 endpoints
built by satbotly. something wrong? satoshi@satbotly.com