Home Common

Common

Common issues/questions
Kilian
By Kilian
5 articles

What can I do if my swap's outgoing Lightning payment is pending?

Usually, Lightning payments complete within a couple of seconds. But there are situations where Lightning payments can take longer or even fail. Here is what you can do: 1. Make sure that the destination wallet/node is online. Many Lightning mobile wallets use notifications to wake up wallets, but this may not always work reliably. Having the wallet open and active on the receiving phone is a good way to ensure the app is online and ready to receive payments. This only applies to non-custodial Lightning wallet's like Phoenix or Breez, custodial Lightning wallets like Wallet of Satoshi do not need to be online. 2. Make sure the receiving wallet/node and has enough inbound liquidity to receive the payment. Most non-custodial Lightning wallets give you a visual overview of how much you can receive ("inbound liquidity"). If the receiving wallet is not in your control, one can estimate if inbound liquidity is an issue by checking the size and amount of public channels with a Lightning Network explorer like Amboss. If a node only has one or two small channels, then this usually hints on a problem reaching this node with the payment. 3. Finally, there are technical issues in Lightning node implementations that can cause "stuck" payments, which usually fail. If an outgoing Lightning payment of a swap failed and you used our Web App, you can claim your refund via our Web App's refund page. Most other swap clients like Aqua Wallet or Boltz Client refund failed swaps automatically for you. If you are not sure why your swap failed and need help, message us via the support chat widget or send an email to hi@bol.tz. Sending multiple messages via different platforms doesn't speed things up, quite the contrary so please just send one message. We usually reply within 24h.

Last updated on Mar 18, 2025

How can I sweep a wallet or UTXO into a Boltz Swap?

If you want to sweep a wallet, or simply consume an an entire UTXO for a Boltz swap, you'll need to know the final amount that will be sent by your wallet, meaning after deducting network fees, before creating the swap. This is a bit tricky, as network fees depend on two things: the current miner fee level, usually expressed in "sat/vbyte" (mempool.space is a great place to query this) AND the destination address type (e.g. Segwit vs. Taproot). Here is a step-by-step guide how to do it, using Sparrow Wallet as an example: 1. Open the "Send" screen in your wallet and select the wallet/UTXO to sweep. Paste any Taproot address as destination. Don’t have one at hand? Use this one (DO NOT SEND FUNDS!): bc1p3c2kn0ulegyrxyaplkjjekehurerlegwupn0dwptwjegul5c0gzsxhffrk. This is how it looks in Sparrow Wallet: We see the final amount that will be sent after deducting network fees is 711302 sats. Again: Do NOT send the transaction. 2. Open boltz.exchange, select the send and receive asset and paste 711302 in the upper box as amount you want to send. Paste the destination address, offer, or Lightning invoice for 709988 sats in our example and create the swap. 3. On the next page, ensure the amounts you are prompted to send matches 711302 sats: 4. Copy the address, replace the previous address in your wallet's send screen, once again make sure the send amount still states 711302 sats and if all checks out, send the transaction. 5. Done! 🎉

Last updated on Mar 19, 2025

Why does "Network Fee" differ depending on swap direction?

Fees at Boltz are separated into two parts: 1. Boltz Fee: a percentage of the swap amount charged for using Boltz's services and liquidity 2. Network Fee: a fee charged to cover network fees for locking or claiming funds Why does "Network Fee" differ depending on the swap direction? Let's take Liquid <> Lightning swaps as an example: For one Boltz charges a network fee of 19 sats, for the other 47 sats. Why? Tl;dr: For Liquid -> Lightning, one part of the network fee is already paid for by the user's Liquid wallet, in the other direction it's not. Hence the charged network fee differes. A more detailed explanation: Boltz's atomic swap protocol requires both sides, the user and Boltz, first to lock and then claim their part of the swap. In above Liquid -> Lightning example, the user first locks 1020 sats in the Liquid swap address. And here it comes: network fees for the transaction sending to the swap address is already paid for - by the user's Liquid wallet! Hence Boltz should only charge for its own transaction claiming from the swap address. And that is estimated to cost 19 sats. Boltz doesn't charge any network fees on Lightning, so locking funds on Lightning is considered "free". Vice versa, in above Lightning -> Liquid example, the user first locks 1050 sats on Lightning and Boltz locks 1000 sats in the Liquid swap address. That is estimated to cost 28 sats. Then the user's web app needs to claim from that swap address, which is estimated to cost 19 sats. Total 47 sats. Another example using Liquid <> Bitcoin swaps: For above Liquid -> Bitcoin swap, "Network Fee" includes 19 sats for Boltz to claim on Liquid and 530 sats to lock on the Bitcoin mainchain. 549 sats total. The user's wallet paid for sending to the Liquid swap address. For above Bitcoin -> Liquid swap, 349 sats is comprised of 302 sats for Boltz claiming on the Bitcoin mainchain, 28 sats for Boltz sending to the Liquid swap address and 19 sats for the user's web app to claim from that swap address. 349 sats total. The user's wallet paid for sending to the Bitcoin swap address. As we can see, lock transaction costs differ slightly from claim transaction costs. Also, fees are dynamic based on a specific layer's fee situation, e.g. mempool.space's current "High Priority" fee" is taken as source for fee calculations of the Bitcoin mainchain. For further details on fee calculations, refer to the relevant code here.

Last updated on Apr 09, 2025