When attempting to use Boltz with Lightning invoices that don't specify an amount, you will encounter an "Invoices without amount are not supported" error.
The Issue
But why does Boltz not allow using an invoice without amount? The simple answer is: Because it wouldn't be trustless. Here is a scenario illustrating the problem:
-
User creates a swap for 0.25 BTC -> Lightning using a zero amount invoice.
-
User sends 0.25 BTC on-chain, expecting the same amount on Lightning in return.
-
Boltz could now send a minimal amount (e.g. 1 satoshi) to the user's zero amount invoice to unlock the cryptographic secret for claiming the 0.25 BTC on-chain.
This is not a great deal for the user and it breaks the trustlessness of the swap.
The Solution
Bolt12, the latest Lightning Network protocol extension, resolves this issue. It uses human-readable addresses like â‚¿sample@samplewallet.me
to dynamically fetch invoices for specific amounts, enhancing security and user experience without the drawbacks of zero amount invoices. Boltz was one of the first to support Bolt12 and as the wider Lightning ecosystem adopts Bolt12, we expect zero amount invoices to become obsolete.