Zeus is a mobile Bitcoin/Lightning node manager and wallet application for LND, Core Lightning, and Eclair. ⚡️
Zeus is built on TypeScript and React-Native. It runs on both iOS and Android.
Read more on our documentation site.
- Come chat with us on Telegram
- Join our developer Slack
- Keep up with us on Twitter
- Open a channel with our node
- Bitcoin only wallet
- Non-custodial
- No processing fees
- No KYC
- Fully open source (APGLv3)
- Connect to LND, Core Lightning (REST + Sparko), or Eclair lightning node
- Manage multiple lightning nodes at once
- Connect via LNDHub instances
- Lightning accounts
- On-chain accounts
- Easy to use activity menu
- NFC payments and requests
- PIN or passphrase encryption
- Connect over Tor
- Privacy mode - hide your sensitive data
- Lightning address send
- Full LNURL support (pay, withdraw, auth, channel)
- Lightning channel management
- Detailed routing reports
- Set and manage routing fees
- MPP/AMP support
- Keysend support
- SegWit support
- Sign & verify messages
- Fiat currency integrations
- Various language support
- Multi-theme
- On-chain coin control
- External signer support
- Watch-only accounts
- Contact list for easier payments
- Multiple profile types (payments, merchant etc.)
- Lightning address receive
- Taproot support
- Connect a watchtower
- Advanced security center
- Notifications
- Batch on-chain transactions
- Batch channel opens
- PayJoin
- Lightning Node Connect
Currently, to use Zeus, you must have a Bitcoin Lightning node running Lightning Network Daemon (lnd), eclair, or Core Lightning using the REST or Sparko API.
You must provide Zeus with your node's hostname, port number, and the macaroon you choose to use in hex format. If you need help converting your macaroon to hex format we wrote up a Node.js script that can use
here. Alternatively, if you're running a Unix-based operating system (eg. macOS, Linux) you can run xxd -ps -u -c 1000 /path/to/admin.macaroon
to generate your macaroon in hex format.
Zeus has support for connecting to you node entirely over the Tor network. You can refer to these guides to set up a Tor hidden service on your lnd node. The instructions are generally interchangable and typically only require you to change your Tor path.
- Zeus over Tor guide for RaspiBolt
- Zeus over Tor guide for FreeNAS by Seth586
- Zeus over Tor guide for RaspiBlitz by openoms
- Tor-Only Bitcoin & Lightning Guide by Lopp
Zeus is proud to be integrated on the following platforms:
Don't trust, verify the code with your own two eyes. Then when ready proceed to the steps below based on your platform.
- install and setup react-native and its related dependencies under "Building Projects with Native Code" on react-native's Getting Started page
- if using your phone,
enable Developer mode and USB Debugging
, then make sure it is connected to your computer by running
adb devices
- install node dependencies with
yarn
- install Lightning Node Connect's libraries with
yarn run install-lnc
- open up your Android simulator or connect your phone and run
npx react-native start
- open a new tab and run
npx react-native run-android
- install and setup react-native and its related dependencies under "Building Projects with Native Code" on react-native's Getting Started page
- install node dependencies with
yarn
- install Lightning Node Connect's libraries with
yarn run install-lnc
cd ios && pod install
- open
ios/zeus.xcworkspace
in Xcode and hit Run. NOTE: if you're using an M1 mac, you may need to right click Xcode > get info > checkOpen using Rosetta
before openingzeus.xcworkspace
.
Reproducible builds are available for Android only right now. You'll need Docker installed to be able to build the app this way:
- Clone Zeus git for the branch/tag that you want to build. For example:
git clone --depth 1 --branch v0.7.0 https://github.com/ZeusLN/zeus.git
You can also remove the--branch v0.7.0
parameter to build APKs formaster
. - Change to the zeus directory:
cd zeus
- Execute the build script:
./build.sh
- If everything goes well, the script will print a list of all the generated APK files and MD5 for each one of them: armv7, armv8, x86, x86_64, universal. The equivalent to the one provided in the web page is the one ending in 'universal'. You can compare MD5s with the ones provided on the GitHub releases page
- Download the oficial apk from GitHub releases page or from the Zeus homepage:
wget https://zeusln.app/zeus-v0.7.0.apk
- Compare both APKs with a suitable utility like
diffoscope
,apksigcopier
or by runningdiff --brief --recursive ./unpacked_oficial_apk ./unpacked_built_apk
. You should only get differences for the certificates used to sign the official APK
If you want to install the APK built this way onto your own smartphone, you'll need to sign it yourself (see next section). Note that the first time you install a build made using this procedure, you'll need to uninstall your current version of Zeus and then install the one built here because certificates will not match. You'll lose your connection details and you'll need to reconfigure Zeus again to connect to your nodes.
- Install signing utilities:
apt-get install -y apksigner
- Create your certificate, if you haven't done so already. If you already have the certificate from previous builds, it's advised that you use the same one so you are able to upgrade from one APK to the next one without reinstalling first:
keytool -genkeypair -alias zeus -keystore zeus.pfx -v -storetype PKCS12 -keyalg RSA -keysize 2048 -storepass your_keystore_password -keypass your_key_password -validity 10000 -dname "cn=Unknown, ou=Unknown, o=Unknown, c=Unknown"
- Sign the chosen APK file using this command:
java -jar /usr/bin/apksigner sign -v --ks zeus.pfx --ks-key-alias zeus --ks-pass pass:your_keystore_password --key-pass pass:your_key_password zeus-universal.apk
- Copy the signed APK to your smartphone and install it by tapping over the file. If you get an error, you'll have to uninstall your currently installed version of Zeus first. Note that you'll lose your connections and you'll need to reconfigure Zeus again to connect to your node.
Please be sure to run yarn run tsc
to check for type errors, yarn run test
to run all tests, and yarn run prettier
to run the prettier
If you are making cosmetic changes please test on both Android and iOS as things don't render exactly the same on both platforms.
If you're looking for a quick way to get a lightning development environment running, check out Polar.
NOTE: When configuring a new node on Android in dev, the Host
field must be 10.0.2.2
- 127.0.0.1
or localhost
won't work.
Do not directly modify the files in /locales
unless you are adding new copy to the app in English. Instead, translators and reviewers should visit out Transifex page and request a role on the language you'd like to contribute to.
All releases and all maintainer commits as of October 20, 2021 are signed by key AAC48DE8AB8DEE84
([email protected]). The key can be found in this repo and on the ZeusLN.app website.
989CC718EBA8BB68
(January 24, 2020 - October 19, 2021)
If you'd like to help us with the cost of running Zeus project (iOS developer account, Google Play developer account, hosting) you can send a payment to us via our BTCPayServer portal, via Lightning Address ([email protected]), or via PayNym (+holymorning7d1). You can also become a community sponsor and have your Twitter avatar displayed on our website and in-app.
Thank you.
Distributed under the GNU Affero General Public License (AGPL v3). See LICENSE file.