Problem


Entering an invoice and attempting to execute a swap on REDSHIFT returns the error "invoice must specify an amount."


The invoice may have been generated by your own Lightning wallet or a tipping app like tippin.me


Solution


REDSHIFT can only pay invoices that specify an amount.

To determine whether an invoice specifies an amount, use a lightning invoice decoder such as https://lightningdecoder.com/ or https://lndecode.com/.  If the amount specified is "Not specified (any amount)", then the invoice is not payable with REDSHIFT.  If the app or wallet allows you to, try generating a new invoice for a particular amount; if it does not, use REDSHIFT to fund a wallet such as Bottle Pay and then use Bottle Pay to pay the invoice.


Technical Details


The Lightning Network allows for the creation of invoices that don't specify an amount.  These invoices are an invitation to pay any amount.  They are most often employed by tipping apps and some games.


REDSHIFT is able to facilitate trustless cross-network payments because the payment of a Lightning invoice results in the delivery of a proof-of-payment.  This proof-of-payment is proof that the sender fulfilled the conditions set forth in the invoice to pay the amount that was specified.  The REDSHIFT service then uses this proof-of-payment as a key to claim the funds that the user has placed in escrow to pay for the payment to be made on their behalf.


If a user provides an invoice that doesn't specify an amount, REDSHIFT could receive the proof-of-payment by paying the invoice in any amount.  Therefore, invoices that don't specify an amount can't be paid cross-chain trustlessly with REDSHIFT.  Instead of asking you to trust the service as you would a custodial wallet, we have elected not to support invoices that don't specify an amount.