Hold Invoices: Security of Exchanges on Mostro

Mostro uses hold invoices as an escrow mechanism to secure the funds of a transaction, protecting the buyer from potential fraud or non-payment. At the same time, it ensures the seller's security by not directly holding their funds.

To sell sats through Mostro, you must pay the hold invoice that will be provided to you. Hold invoices are a type of Lightning Network invoice that allows the "locking" of the sats you intend to sell in your wallet, without settling the payment until the transaction with your counterparty is completed. Depending on the wallet you use, you might see your payment as "queued", "frozen", "on flight", or "pending".

Once the seller of sats notifies Mostro that they have received the fiat, the hold invoice payment is automatically settled: the sats will be "unlocked" and collected by the Lightning Network node of the Mostro used for the exchange. Then, the corresponding fee will be deducted, and an attempt will be made to pay the invoice provided by the buyer immediately. If the payment fails, Mostro will request a new invoice to the buyer and repeat the process until the payment is completed successfully.

Mostro minimizes the custody time of users' funds, limiting it only to the period from when the hold invoice is collected from the seller until it is paid to the buyer, a process that can take only a few seconds.

The hold invoice payment may also be settled if users enter a dispute and the administrator determines that the sats should be transferred to the buyer. Conversely, if the administrator decides that the order should be canceled, the hold invoice payment will be canceled, and the sats will be "unlocked" in the seller's wallet, without ever leaving it. This will also occur if a cooperative cancellation is made, or if the validity time of the hold invoice, which is limited, is exceeded.

The hold invoices generated by the Lightning Network node of the Mostro currently active on mainnet (npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0) have an approximate validity period of 24 hours.