Boltz

Boltz is a privacy first, account-free crypto exchange that can't track its users.

Addresses

  • boltzzzbnus4m7mta3cxmflnps4fp7dueu2tgurstbvrbt6xswzcocyd.onion
  • boltz.exchange

About

+++

What is Boltz?

Boltz is a privacy first, account-free crypto exchange that can’t track its users. Boltz neither users any trackers nor log any data that could potentially be traced back to the identity of the users.

Why should one use a non-custodial exchange?

Non custodial exchanges give you full control over your funds. All trades on Boltz are executed in a way that we cannot steal any money from you. Period.

Either the trade happens entirely and you get the exact amount of the asset you were promised or you will be able to do a refund. This concept is called atomicity and it is achieved by Boltz with so-called Submarine Swaps. You can read more about them in this blog post.

What wallets are supported by Boltz?

All regular and Lightning wallets are supported by Boltz. Although we encourage you to run a full node and manage your own keys, there are custodial wallets solutions, like BlueWallet, that work out of the box and can make testing Boltz very easy.

How are our fees calculated?

Our fees consist of the miner fee that is needed for the on-chain parts of the Submarine Swaps and an additional fee which is a percentage of the traded amount and goes to our pocket for providing a (hopefully) useful service to our users.

How to increase the privacy of Boltz swaps?

Boltz frontend is accessible through the Tor anonymity network. To use the Boltz onion service, Open the Tor browser, and visit: http://boltzzzbnus4m7mta3cxmflnps4fp7dueu2tgurstbvrbt6xswzcocyd.onion/ Our api service is available via Tor as well: http://boltzzzbnus4m7mta3cxmflnps4fp7dueu2tgurstbvrbt6xswzcocyd.onion/api/ along with both our LNDs. On the ethos of full disclosure: Tor doesn’t prevent an online service from determining when it is being accessed through Tor. Tor protects a user’s privacy, but does not hide the fact that someone is using Tor. Boltz website, however, doesn’t and will never track its users.

How to refund failed swaps?

Boltz swaps may fail for many different reasons. While it can be a frustrating experience for the users, rest assured, we are always promptly available on our Discord or through our Twitter account to answer all support requests. Let us go over common failure case scenarios of the two kinds of swaps offered by Boltz:

  1. Reverse submarine swaps (Trading lightning coins for on-chain coins):

During the process of a reverse submarine swap, user will provide an on-chain destination address where they want to receive the funds on and pay a corresponding lightning invoice generated by Boltz. As soon as the user pays the lightning invoice, one of the two things will happen - Either user will receive the on-chain funds after completion of a successful swap, or Boltz will cancel the hashed timelocked contract and refund the lightning coins back to the user after a 24 hour. So evidently, failed reverse swaps don’t require manual refunding from the user. The refunding process is automated and architectured to be fool-proof.

  1. Normal submarine swaps (Trading on-chain coins for lightning coins)

Unlike reverse submarine swaps, a failed normal submarine swap requires explicit manual action from the user. During the process of a normal submarine swap, the Boltz website will store the information necessary for refunding process in the local storage of the browser. Alternatively, users can also toggle the “Download the refund file” option in step 2 of the swap process. We recommend users to download the refund file as it will avoid single point of failure for saved refund information. In case of swap failures, including but not limited to, reasons like routing failures, users can click on “I want to check status or get refund” bar below the swap box to check the swap status. Users will have an option to either choose one of the latest swaps from the browser’s local storage or upload a refund file. Normal submarine swaps can only be refunded after the swap has timed out. In case it didn’t yet, the status will show the estimated time along with the block height after which the refund process can be initiated.

Common pitfalls and edge cases:

Few users have complained about an issue where the normal submarine swap is stuck on “Waiting of one confirmation” and they didn’t receive the corresponding lightning funds. The “I want to check status or get refund” bar is in inactive state during the swap process so the users can’t check the status either. The Boltz website retains the status of the swap on page refresh. That means in this case, user is confronted with the stuck state even after a page reload. More often than not, this might have happened because the user sent less than the required on-chain amount for the swap to succeed. As an account-free exchange, retaining the state of the swap on client-side is crucial to us, which comes with its fair share of tradeoffs. Inability to switch to “Status check” box in the middle of the swap is one of them. As a work-around, clicking on the Boltz logo on the top left corner will throw an alert and clear the local saved state of the swap. The user can then proceed to check the status and refund the coins. CAUTION: In cases when user sent less than the required on-chain amount for the swap to succeed — user should check the status, wait for the swap timeout, and refund that on-chain coins. Sending the “make up” amount as a second transaction won’t work because of the Boltz is not architected to provide such a feature yet.

How to trigger a Channel Creation Swap?

You can now use the boltz.exchange to get a fully balanced, ready-to-transact lightning channels on the fly. Read more about it here. Channel creation swaps are a subset of the normal submarine swaps, i.e, swapping of on-chain Bitcoin for lightning Bitcoin. From now on when swapping from onchain to offchain, if Boltz detects that there isn’t enough liquidity to send the lightning Bitcoin to the user’s node, it automatically opens a lightning channel big enough to send the lightning funds and with 25% extra inbound liquidity for future transactions. Boltz doesn’t charge any additional fee for creating the channel. However, in the current version of Boltz, there are few caveats that the user should be aware of:

The user’s lightning node should be connected with the Boltz lightning node on P2P level before starting the swap. Boltz will try to automatically connect to your node but to that works only if your node is publicly advertising an URI. If that is not the case for your node or you just want to be sure to get a channel, you can manually connect to us. You can find the clearnet and Tor URIs of our LND nodes above.

The invoice provided by the user shouldn’t expire before swap timeout. The longest swap timeout Boltz has is 24 hours and since there is no downside to setting a long invoice expiry, setting it to something like 25 hours would be perfect. How to set the invoice expiry depends on the lightning node or user interface you use. If you can’t find an option to do that, feel free to ping us! We are happy to help and learn more about all the different ways people use lightning!

If aforementioned two conditions are met, and if the user’s node doesn’t have any channels or enough inbound liquidity for Boltz to send the swapped funds, Boltz will automatically trigger a channel creation swap. Opening a channel can take a little while since the funding transaction needs a couple confirmations (the exact number depends on the config of your node) before the channel becomes active. This can be several hours in times of chain congestion. You can follow the confirmation status of your channel with the transaction id Boltz provides you with in the swap flow. Read more about Bitcoin block confirmations here. But the great thing is that you don’t have to keep your Boltz browser tab open for channel creation swaps. They will happen automatically without you needing to do a single thing apart from sending the onchain coins!