lightning

How to Run Lightning's Zap Wallet on Bitcoin Mainnet Ahead of Schedule

Mario Dian Apr 7, 2018 3 min read

Zap Wallet for Lightning Network is one of the most beautiful software ever written for Bitcoin.

The bummer is, it isn't officially available for Bitcoin mainnet yet. Developers are busy fixing bugs and making sure the wallet is stable enough for production.

However, that doesn't stop you from pointing it to your mainnet LND node in the meantime, thanks to this new pull request that will hopefully be merged in soon.

But before you start, check out my other tutorial on how to install LND on Bitcoin mainnet first if you haven't already.

I run a remote Lightning node on my Linux server and Zap Wallet on Mac OS.

However, the tutorial will work for any kind of setup as long as the operating systems are UNIX-like. Sorry, no Windows.

Please note, that there are still many features that are exclusive to Bitcoin testnet network. Running Zap with mainnet isn't recommended at this point, unless you feel #reckless.

Prerequisites

Make sure you run node.js >= 8, npm >= 5 and yarn:

node -v
npm -v
yarn -v

In a case any of the above is missing or below the specified version, have a look at installation instructions: node.js (npm is included) and yarn.

If you use a package manager for Linux, visit these instructions for node.js instead.

Install Zap Wallet

Create a source folder if you don't have it already:

mkdir ~/source
cd ~/source

Clone the Zap Wallet from the official repository:

git clone https://github.com/LN-Zap/zap-desktop.git
cd zap-desktop

Install Zap dependencies:

yarn

Be patient, it may take a few minutes to finish.

Run Zap Wallet

Test that everything has been installed correctly:

npm run test

If the above command fails on a "The renderer process is not built yet." error, run this command first:

npm run build-renderer

Run Zap:

npm run dev

Alternatively, you may build a binary package for your OS:

npm run package

The package will be located in ~/source/zap-desktop/release however, I haven't had luck running it without errors.

Allow incoming connections for a remote grpc (optional)

If your Lightning node runs on a different machine as Zap, you will have to make it accept incoming connections.

Go to your server and add the following line to ~/.lnd/lnd.conf:

rpclisten=0.0.0.0:10009

Next, open the port on your firewall:

sudo iptables -A INPUT -p tcp --dport 10009 -j ACCEPT
sudo iptables-save

I only want my node's grpc to be accessible on the local network. But if you want to be able to connect remotely and your server is behind a router, you will have to setup port forwarding on the router too.

When finished, restart your node:

sudo service lnd stop
sudo service lnd start

Connect to your node

Locate admin.macaroon in ~/.lnd/data/chain/bitcoin/mainnet and tls.cert in the ~/.lnd folder. If the LND node runs on a remote server, copy them to your local machine.

Start the wallet if you haven't already and when prompted for Lightning Connection, choose Custom and click Next.

In the next step, you will have to setup your Connection Details. and point Zap to the TLS certificate(tls.cert) and Macaroon (admin.macaroon). Make sure to use absolute paths to the files.

If LND runs locally add 127.0.0.1:10009 as your host, otherwise choose the server's IP address or host followed by the port.

Go to the next step and within a few seconds, you will be connected to your node and ready to use Zap.

If you've previously opened channels and made some transactions you'll see them in Zap immediately.

Enjoy!

Found this valuable?

Please consider supporting us. Thank you!

Support us
WRITTEN BY

Mario Dian

I'm an Anarchist, Rothbardian, Bitcoiner and Travel Hacker. Also founder of @freedomnodecom.

Show comments