Umbrel + BlueWallet + LNDHub

Description

This is a major step forward for all node operators. Why? Because is one more step for a node in becoming a “Bitcoin Sovereign Bank”, being a HUB for your family, friends and all those who do not/can’t have a node for themselves. Practically you can “rent” them space and liquidity from your node.

More details about LNDhub here and also here is the announcement from Bluewallet team.

There’s a very important aspect in Bitcoin world and few understand it:

  • custodial wallets (your funds are in custody and control by other parties)
  • private wallets (your funds are in your own custody and you are the only one control them)

NOTE – For the moment mobile app BW WILL NOT manage your node/channels as Zeus or Zap do. Right now it is activated only the part of LNDHub of your node. So if you activate and install this app now just to see your channels, don’t expect to see them.

FROM NOW ON YOU CAN BE THE BANK FOR YOUR FAMILY AND FRIENDS!

Misconceptions

  • Bluewallet LNDHub is a wallet manager and NOT a node manager. It’s a big difference.
  • With your node and apps like Zeus, Zap, RTL, Thunderhub, you are managing “the bank”, your node, your channels, you are the banker, moving funds, offering liquidity for your own internal users.
  • With BW LNDHub, you are managing the “customers” of your bank, their access to the liquidity of your bank, and managing their own “safety boxes” in your node.
  • Think about that a LNDHub wallet is like an empty glass. Your LNDhub node is the provider for transporting the water to/from your glass of water. You get water into this glass from other sources (NOT from your LN node) and your node is transporting it (liquidity).

But be aware, own custody means also that you will have:

  • more responsibility for your own funds, to keep safe and private your funds and wallets
  • more knowledge, learning into how to use these new tools
  • more costs (sometimes, if you do not know how to do it properly), mistakes costs, so you better learn first to do it properly
  • more responsibility for those who will be using your node/walelts/funds offer liquidity, this can end in more costs too

So if until now, if you were using BlueWallet (BW), you were using a custodial LN wallet (not onchain). That means that BW servers were in charge of managing your LN wallet, creating it and offering liquidity to be able to use sats on LN without bothering to run a node, maintaining it, open channels, keep the liquidity up etc Easy peasy

Usage for LNDHub

  • connect your mobile BW app to your LNDHub node.
  • create a LN wallet in your BW app.
  • that LN wallet will have 0 (zero) balance, but will be able to use the liquidity of your channels, NOT the balance (!)
  • create as many wallets you want for your family and friends, they will manage their own wallets and balances, but keep in mind: you are responsible for their wallets to be online and be able to transact.
  • TXs between these lndhub wallets will be with zero fee, it will not go through the whole network of nodes, as a 3rd layer, only happen inside your node.

An interesting scenario could be as a restaurant offering to his clients option to have their own “restaurant lndhub wallets” and pay with zero fee, instant and private. These wallets can be refilled from external sources, from their own onchain wallets and they can pay wherever they want. When they pay to the restaurant, paying to another lndhub wallet from the same node will be zero fee.

You can fund this new empty wallet from different sources:

  1. BW onchain wallet – in wallet, click on “manage funds” and select the option “refill”. It will bring up to pay from any other onchain wallet and will generate an onchain invoice to be paid from another onchain wallet. That tx will be later moved into LN using some LNDhub magic. You will see an entry in your node transactions to a dedicated onchain address (always will be the same) that refill your lndhub wallet.
  2. Any other LN external wallet (not from your node!), just making an invoice from your new lndhub wallet to be paid from any other LN wallet.

Great video tutorial by BTC Sessions about Umbrel + Bluewallet

TO REMEMBER

  • In a LNDhub wallet you are NOT managing total funds from your LN node
  • In a LNDhub wallet you are managing only the funds deposited in this particular wallet
  • Total LN node funds CONTAIN your lndhub wallet funds
  • Your LN node is the “liquidity provider” for all your lndhub wallets, is like your commercial bank.

How to connect BW to your node as LNDHUB wallet

a. Update Bluewallet mobile app:

  • On Android 9+ update to verion 6.1.1 (or newest). You can use your Play Store (if you still have it) or BW Github source directly.
  • On Android 8 or lower, stick with v.6.0.8 until new updates. Version 6.1.1 is restricted to Android versions lower than 8, becasue it has Tor integrated. You can continue to use v 6.0.8 with Orbot app (Tor) if you want, it works fine. I can say even better. V 6.1.1 on Android 9+ sometimes crashes due to Tor. Or if you can update your OS version, it will be good. If you can’t, then it’s time for you to buy a serious new phone. I recommend a Pixel and then install a clean new OS like GrapheneOS or CalyxOS on it.
  • On iOS, just go to App Store and do the update. iOS version has integrated Tor and you can activate it from General settings - network - Tor.

b. Update your Umbrel node to v 0.4.1 (you already know how)

c. Install BlueWallet app on Umbrel. Go to App Store and install it.

d. Connect your BW mobile app with your node. Open the section “Connect wallet” and open Bluewallet instructions. Open your BW mobile app and follow those instructions, step by step:

  • in BW, go to Options – Network – enable Tor. Take a test. Restart BW (indicated by force close)
  • in BW, go to Options – Network – Electrum Server. Scan the code of the address of your Electrum Server (onion) and the port 50001. Make a test. Restart BW. This option will allow you to have also onchain wallets that use your own node as SPV server (Electrum Server) and all the communication will through your node. Remember, these are now wallets that “reside” on your noide, are just standard BIP39 onchain wallets and are NOT LN wallets.
  • When opening BW, if you already have a wallet created, wait for it to update, it may take a while. if the app crashes, restart again. Sometimes Tor does weird things on Android 9+ with v 6.1.1
  • go to Options – Network – Lightning. Now you can scan the QR of your LNDhub node.
  • go back to the main screen and add a new LN wallet. You just press create and voila, you already have a clean wallet connected to your node. This LNDHUB wallet has no funds, you will have to fund it from another LN wallet. This wallet ONLY uses the liquidity (not the balance) of your node to be able to send through LN.

Testing the new wallets

Payment using an external node wallet:

  • Open that new wallet, create a 100 sats bill, copy the invoice code
  • In the same BW mobile app, go to your usual BW LN wallet and click send, paste the invoice you created from your LNDhub wallet and send it. (this didn’t work for me, it says “payment in transit”, that is, I can’t find the correct path between BW’s servers and mine). Ok, this can happen.
  • Create a new LN invoice for 120 sats in LNDhub wallet and go to Telegram LNtxbot and pay it. Also if you have the imported LNtxBot wallet in your BW, you can do it from there. It works perfectly.
  • Go in Umbrel to RTL – LN – Transactions and in the invoices I can see the 120 sats received and also appear in the balance of my LNDhub wallet
  • Reverse payment attempt. From LNDhub wallet, to LNtxBot wallet. So go to LNtxbot LNurl and pay 100 sats + 1 sat fee with my Umbrel’s LNDhub wallet
  • Tx appear in RTL transactions immediately

Payment using 2 LNDhub wallets, on the same LNDhub server (your node):

  • create two lndhub wallets (could be on the same BW app), but for convenience use two phones with BW connected to your LNDhub
  • fund one of them (wallet A) from an external wallet (see previous scenario)
  • in wallet B, create an invoice of 100 sats
  • open wallet A and scan that invoice and pay it
  • That’s it! TX went through instant, with ZERO fee, full private
  • for the moment the tx will appear in your LND apps (RTL/TH/Umbrel) as “unpaid” invoices, but are paid actually. Maybe in the future we will have a way to treat these txs as “internal tx” not as “invoices”
36 Likes

Am I correct in assuming that payments between BW LN wallets from the same node would not have fees or affect any liquidity? Also, are these wallets charged the routing fee for my node (when not sending internally)?

Exactly.
Also if your node is part of a ring group of nodes that mutually set fees between their channels to be 0 or almost 0, then is even better.
Example:

  • a ring group of nodes in your local community, merchants, customers etc.
  • all together decide to have just 10msats fee for any tx
  • between all these nodes everybody will pay only 10msats
  • between your “hosted” wallets on your LNDhub, users will not pay any fee

It will be a very interesting “game” to see how it spreads. And banksters will hate this.

6 Likes

Probably dumb questions, but if I setup a new btc wallet on BW after connecting to my node, would that work the same way? I’d be confirming transactions and I’d see that btc balance on Umbrel? Or adding/subtracting from it every time I send or receive from BW?

And then if a friend wants to connect to my node from BW, is it the same thing for lightning and btc? And if they just connect to the electrum server, I’d be routing their transactions? I’m just worried I won’t have the liquidity for them to connect to my lnd.
Sorry if that’s confusing. I am in fact confused.

1 Like

The user sends a transaction to a dedicated top-up address, and this balance is added to his account on LNDhub. Then, the user can use this balance to pay Lightning invoices.

But under the hood, it’s actually LNDhub who pays the invoice, deducting user’s account balance. It works the same way when the user wants to receive a Lightning payment - it’s LNDhub who creates the Lightning invoice and actually receives coins on one of it’s channels.

Try not to mix things.

LNDhub wallets are like renting cars.
You as the owner of the node, you have liquidity / cars.
Some other users come to you and say, “hey I want to go from point A to point B”, you answer, “OK, here is a car (aka a lndhub wallet)”.

But this car is empty, doesn’t have gasoline, the user have to put gasoline (sats)
You are just providing the car, the wheels and the keys - this is the liquidity, the bandwidth.
You are just a keeper of their wallets.
They cannot “see” or use your node balance. Balance is NOT liquidity and I think this is the point where people don’t get it.
Balance = funds that you own
Liquidity = transport, renting a meaning of transport value over the LN

Now, letting your family and friends to use your Electrum server is another story that have little to do with LNDhub. Bluewallet uses both. But are two different services.
You can give to your friends for example access to your Electrum server, to connect their wallets, in a private way, because they trust you and not some random Electrum servers.
This connection doesn’t not require also to offer them LNDhub wallets. They can continue using the ones that BW servers provide, no problem at all.
Electrum server are just an SPV interface for a full node validation of their txs. That’s all.
LNDhub is a wallet provider. That’s all

4 Likes

Ok I read this several times and I think I get it now. This was super helpful, thanks so much. :pray:
In regards to a bitcoin wallet though, my blue wallet and Umbrel bitcoin wallet would not be connected?

1 Like

When you connect BW to your node through the electrum server settings, all you’re basically doing is telling the app where to get its blockchain information from (and possibly where to broadcast transactions from, but I’m unsure about that). Connecting your node in this way DOES NOT transfer your umbrel private key to BW. The only way to control your umbrel btc wallet from BW is to enter the 24-word seed phrase.

2 Likes

image
@DarthCoin I created a LN BW wallet after connecting to my node. I got this error after trying to send myself a test payment.

1 Like

You can, but doing another way, for the moment.
Take your Umbrel seed and put in BW as you import an onchain wallet. That’s it, you will have your onchain wallet visible and accessible. But that procedure is useful only in case SHTF scenario and you need to recover your crashed node.
BW mobile app is NOT the node manager (as Zeus and Zap), is just a wallet manager, different than what you have on your node. This is the confusion that people do now.

2 Likes

I think that is a well known issue by BW team, I saw disscusion on their github about that. I don’t have too much information how to fix it.

2 Likes

Exactly. Electrum server is just an SPV interface to use the node blockchain copy and give to the BW mobile app the right information about txs and validations. Have nothing to do with node balances and channels.

1 Like

Another nice explanation from Bluewallet here

1 Like

Is there a way for a user to swap lightning funds in LNDHub back to on-chain, or will they need to send it out of their LNDHub wallet to swap back to on-chain? I know this is what you have to do if you use BlueWallet’s LNDHub.

Edit: Found my answer. If it is the same as BlueWallet LNDHub then your users of your LNDHub will have to find their own way to convert back to on-chain. LNDHub allows you to swap in, but not swap out.

Here is a thread by @lukechilds explaining how LNDHub works:

1 Like

Will be nice to have Ben BTC Sessions making a video tutorial of this new feature.
What do you think @lukechilds can you talk with Ben to prepare one, in his style?

Meanwhile we have an example with LNbits here, from the other Ben :grinning:
LndHub, access lnbits from BlueWallet or Zeus.

UPDATE (I don’t know why I can’t edit anymore the original post).

For those who have problems connecting BW with your LNDhub, I did this latest test.

  • Android 8.1 + BW 6.0.8 (not updated to 6.1.1 because is not compatible anymore with old Android)
  • Open Orbot, activate VPN and add BW app in the list. Start Tor, wait to be 100% connected
  • Open BW mobile, go to Settings - Network - Electrum and add my electrum host from my Umbrel (from “connect wallet” - Selecting Electrum mobile, I just copied manually the host and port)
  • restart BW mobile
  • Open BW mobile and go to Settings - Network - Lightning, scan the QR from Umbrel LNDhub, save the settings and restart BW mobile
  • Open BW mobile, wait to sync, doesn’t take too much and click to create new wallet. Choose Lightning and create. Done, you can save that lndhub onion address as backup

Testing transactions with that new wallet:

  • Open that new wallet, create invoice of 100 sats, copied
  • In the same BW mobile app, go to your usual BW LN wallet and click send, paste the invoice you created from your LNDhub wallet and send. (this didn’t worked me, says “payment in transit”, that means, can’t find the right path between BW servers and mine). Ok this can happen.
  • I created a new invoice of 120 sats in my LNDhub wallet and went to Telegram LNtxbot and pay it. Went through perfectly.
  • Go to RTL - LN - Transactions and in invoices I can see the 120 sats received and also showing up in my LNDhub wallet balance
  • So I went to my LNtxbot LNurl and paid 100 sats + 1 sat fee with the LNDhub wallet from my Umbrel
  • Tx appeared in RTL transactions immediately

So, in conclusion, for those who have problems connecting your BW to your LNDhub, I suggest to try this, until a new version of BW will fix the issues with freezing.
IT’S WORKING FINE!

3 Likes
  1. Even if the wallet on the same node, the tx still have to get through a LN route, so will pay a min fee. You can see the route and who was taking the fee, if you decode the LN invoice in Thunderhub app decoder.

  2. Maybe in the future, but right now is not possible to fund LNDhub wallet with funds directly from the same node. You could try the refill option and taking from an onchain wallet if you have one setup in your BW. But that I think will open a channel in your node so will have more costs.
    So use an external wallet to fund that LNDhub wallet, for the moment. I use LNtxbot from Telegram.

  3. That will be an interesting scenario to see. It supposed to not let you send all funds from your node, keeping the funds of those LNDhub wallets. I never try it. Interesting situation indeed.

Last days I tried this:

  • Android 8.1 installing BW 6.1.1 - not supported, revert to 6.0.8
  • Android 10 installing BW 6.1.1 - connect to Umbrel LNDhub + Electrum - freeze to death
  • android 8.1 + Orbot + BW 6.0.8 - connect to Umbrel LNDhub - works fine

I opened an issue yesterday https://github.com/BlueWallet/BlueWallet/issues/3079
Also on Zeus github https://github.com/ZeusLN/zeus/issues/452