This post is also available in: German
If you accept Lightning payments in your shop, you have to deal with the topic Lightning Liquidity.
This post explains why Lightning liquidity is needed and how to get the required Lightning Liquidity.
You’ve successfully connected your Lightning Node to your online store and run a test order to test that everything is working properly.
But you get the message: “unable to route payment to destination”
This problem arises when there is not enough Lightning liquidity.
It doesn’t matter if you’re running your own Lightning Node or using the Lightning Node on your BTCPay server. The problem with Lightning Liquidity affects all Lightning nodes who want to receive Lightning payments.
Why do I need Lightning Liquidity?
You set up a Lightning Node (peer) and connected it to another Lightning Node as described in the article: “RTL – Ride the Lightning“? Then you opened a channel and put liquidity of e.g. 100,000 sats into the channel. Then you have a local balance of 100,000 sats on this channel. The sum of your local balance on the different channels is your out-bound capacity.
To receive payments, you need In-Bound Capacity. Your In-Bound Balance is the sum of all Remote Balance on your various channels.
With the Out-Bound Credit, you can make payments yourself.
But if you want to receive Lightning payments as a merchant, you need Remote Balance on your channels, i.e. In-Bound Liquidity.
A connection between two Lightning nodes is called a channel. It is a two-sided connection. This means that a channel must exist in both directions.
In order for credits to be transferred between these two Lightning Nodes, via the existing channel, there must be a corresponding credit on the page to be sent.
The credit on your side is the local balance and on the other hand is the remote balance.
The sum of Local Balance and Remote Balance is called Channel Capacity.
If I maintain channels corresponding to multiple Lightning Node, then the sum of all my local credits is called Inbound Liquidity.
The sum of the credits on the other side as outbound liquidity.
When I make a payment, the balance flows from my side of the channel to the remote channel. When I receive payments, the balance flows from my side of the channel to the other side.
I need Lightning Liquidity to:
- Inbound Liquidity (Remote Balance) – to get Lightning
- Outbound Liquidity (Local Balance) – to pay Lightning
How to get Lightning Liquidity
To receive liquidity as a new Lightning Node Inbound, the following options are available:
- Pay with Lightning
- Bitcoin Credit Exchange for Lightning Credits
- Purchase of liquidity
- Mutual liquidity
Pay with Lightning
The easiest way to get inbound liquidity is to pay with Lightning yourself.
If you make a Lightning payment from your Lightning Node, it will be deducted from your Local Balance (Out-Bound) and you will be credited as Remote Balance (In-Bound).
This allows you to receive Lightning payments at the level of your Remote Balance (Inbound Liquidity).
If you receive a Lightning payment, then inbound liquidity would decrease and your outbound liquidity would increase.
If you pay more with Lightning, so you’re receiving, you won’t get a liquidity problem. However, as a merchant who accepts Lightning payments, you should probably receive more Lightning payments and thus the Lightning liquidity problem remains.
When building your channel network, it is recommended that you build a few large channels rather than many small channels. If you only open small channels of 100,000sats, then you cannot, for example, make a payment that is 100,100sats in size. So there should also be a few larger channels.
Bitcoin Credit Exchange for Lightning Credits
With the solution described above, you should buy something and pay with Lightning to increase inbound liquidity.
But what could be best bought? The solution is to buy (on-chain) Bitcoin, which will then be paid for by Lightning!
There are corresponding providers that specialize in switching between Lightning and Bitcoin (LN-to-BTC).
The following providers are to be mentioned:
The procedure is as follows:
- Go to the provider’s page and get the public address from the Lightning Node.
- Connect to this Lightning Node and build a channel.
- Open this channel (Payment Channel) with twice the amount you want to receive later as inbound liquidity.
- Go to the website of the provider and enter your own Bitcoin address. You will later receive your money back to this address.
- Enter the amount you want to receive as inbound liquidity. Ideally, half of the amount you have previously deposited into the channel.
- The provider of this switch service creates a Lightning Invoice. You pay this bill via Lightning. After the Lightning payment is complete, you will receive the Bitcoin in return to your previously specified Bitcoin address.
- At the same time, the amount you paid by Lightning will be deducted from your outbound liquidity and credited to the Inbound Liquidity.
Upon completion of this LN-to-BTC change, you will have inbound liquidity that you can use to receive Lightning payments in the same amount.
A small fee may be charged for this change.
Purchase of liquidity
Another way to obtain inbound liquidity is by buying liquidity.
In this method, a provider provides liquidity from its side.
The advantage, compared to the previous example, is that you do not have to provide liquidity yourself.
For providing liquidity, a small fee will be charged. The fee depends on the duration of the liquidity to be made available.
You can buy Lightning Inbound Liquidity from the following providers:
Thor by Bitrefill
The liquidity service Thor, from the provider Bitrefill, is mentioned in many contributions. For the equivalent of about 3, you can buy liquidity for 30 days. Bitrefill’s node is one of the best connected Lightning nodes ever. Many reasons for a bitrefill. However, the handling of the service is very complicated. The service only works if you use the Bitcoin Lightning Wallet from Android.
The concept is that Bitrefill connects to your Lightning node and then provides liquidity.
Unfortunately, it is not suitable to use our Lightning Node on BTCPay Server.
After the purchase, the liquidity is provided as follows:
The corresponding command lines cannot be entered in the form with RTL and would have to be entered via the command line.
During our test we communicated with bitrefill support and they then manually opened the channel to us.
The service is great and bitrefill is a step in the right direction, but no recommendation for our desired solution. But Bitrefill is working on a solution to make the service easier.
However, if you need the products offered by Bitrefill (vouchers, value card, prepaid cards), you can pay for these cards with Lightning. If there is a peer before payment with Bitrefill and the products are paid for with Lightning, you generate inbound credits at Bitrefill, which in turn can be used for incoming payments.
Yalls is a platform where you can publish and read articles and posts against a Lightning payment.
In addition to this service, you can also buy Lightning Liquidity.
On the Yalls page, in the About section, there is the following window:
Here you copy the address of the Yalls Node and connect via Add Peer via Ride the Lightning:
After that you go back to the Yalls side. Reload the page and scroll in the “What’s your node public key” field to the point where your own public key is located.
If you don’t see your public key, reload the whole page again.
Then click Attempt Channel open.
The following window will then open.
You can now buy the liquidity of 5,000,000 Satoshi. The 5 million sats is equivalent to 500 USD (at a bitcoin price of 10,000,-). However, you don’t have to buy the equivalent of USD 500, but pay interest to provide you with this liquidity for a certain period of time.
You will have to pay 3 of the liquidity provided, which is approximately 11 USD per month.
You can pay the 11 USD either by Lightning bill or with Bitcoin. To pay the Lightning invoice with Bitcoin, you will be redirected to the service provider Submarine Swap.
Click on the blue button and this page will open:
Pay with Bitcoin and wait until the Bitcoin payment has been confirmed on the blockchain.
A total of 4,995,118 Sats were provided by Yalls as Inbound Liquidity. Lightning payments can now be received in the amount of this amount.
To drive the spread of Lightning, there are some sites that provide Inbound Liquidity for free, at cost price or according to the motto, give me Inbound, then I also give you Inbound.
Coincharge provides Lightning liquidity on a reciprocal prowess. If you use your Lightning Node with the address Node ID: firstname.lastname@example.org:9735
If connected and charges the channel, Coincharge will also provide the same amount on its site.
See also chapter Peers / Channels
Lightning Liquidity Received from Coincharge
If you have opened a channel to Coincharge, send us a short message using the contact form below. Provide your e-mail address so that we can contact us if you have any questions.
Enter your node ID in the text box. We will provide the same amount you have deposited. So if you put 500,000 Satoshi in the channel, we will also put 500,000 Satoshi from our side.
Lightningto.me provides free inbound capacity of 2 million satosh (0.02 BTC)
Available. You have to specify your public key and Lightningto.me establish the appropriate connection from your side.
Lightning Conductor provides you with the same amount of inbound capacity, which you provide in return to Lightning Conductor.
You open a channel of at least 500,000 Sats (0.005 BTC).
Peernode also provides Lightning Liquidity for free. A request must be made via a contact form.
The provider LNBIG.com connects to you with a liquidity of at least 2 million Satoshi. You can also choose a higher amount. No costs or conditions. This connection should be established in any case. The disadvantage is that you cannot create the channel by Ride the Lightning. But for the operators of a BTCPay server this is no problem, because there is a special solution for BTCPay servers.
Go to Open Channel and select the amount that LNBIG should provide from its side. Then select the setting LND / C-Lightning / BTCPay / Eclair and click on Next.
Then an overview of different terminal commands appears, depending on which node you are operating.
If you run a BTCPay server under LND, then you use the commands that are outlined in red here. For a BTCPay server with C-lightning, the corresponding commands that appear next to it.
Now you have to login to your BTCPay server via terminal. Then copy the commands and click Enter.
Afterwards the liquidity is available to you as remote balance.
Connection to strong peers with local balance
But you can also build up your own connections to strong peers and provide them with liquidity from your side. The credit provided by you is shown as Local Balance. If you make payments yourself through these channels, it becomes Remote Balance and can then be used for incoming payments.
A connection to 1ML.com, OpenNode.com or even tippin.me is recommended. However, Tippin.me requires a minimum liquidity of 800,000 Satoshi, which must be provided.
You can research other strong peers with many connections and high liquidity yourself at 1ML.
The 1ML.com page is a Lightning Explorer or a directory of all Lightning nodes. All known Lightning nodes are listed here. Go to the page and search for your own node where you enter your Node ID.
You can see which nodes are particularly well connected within the Lightning network. It’s best to connect with some of the stronger peers.
Since 1ML.com itself is one of the strongest peers, we recommend this.
Search for your own Node ID at 1ml.com.
You will then see the button “Claim Node” in the upper right corner
Click on the Claim Node button and register or log in to 1ML.com.
Now you have to prove 1ML.com that the node you choose is actually your own node.
You can provide this proof in three steps.
In the first step, you have to connect to the 1ML.com node. To do this, you use the displayed node address:
Then you open a channel to 1ML.com in the amount displayed to you. The amount is channel capacity and must be the same as the amount 1ML.com named. So don’t pay less or more.
In our RTL backend, this channel opening is displayed as a pending transaction, with the status channeld_awaiting_lockin and the specified amount. In our example it was 306,778 sats, with you it will be a different amount.
Now we have to wait a little while before the opening of 1ML.com channel is confirmed.
Then we can also provide the entry of our channel with additional information.
The amount paid, which has been made available in the channel with 1ML.com, is Out-Bound Liquidity and is available as a local balance. It is no longer helpful for incoming payments, but we can use 1ML.com for outgoing payment and thus build up inbound liquidity.
This post is also available in: German