ZEUS is a mobile Bitcoin/Lightning wallet and remote node manager for LND and Core Lightning. ⚡️
ZEUS is built on TypeScript and React Native. It runs on both Android and iOS.
Read more on our documentation site.
- Come chat with us on Telegram
- Join our developer Slack
- Keep up with us on Twitter and Nostr
- Open a channel with our node
- Bitcoin only wallet
- Self-custodial
- 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
- Nostr contact import
- Point of Sale (Standalone and Square integration)
- Lightning address receive
- Taproot support
- Connect a watchtower
- Advanced security center
- Batch on-chain transactions
- Batch channel opens
- PayJoin
- Lightning Node Connect
- Self-custodial lightning address (ZEUS Pay)
You can connect ZEUS to a remote 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 interchangeable and typically only require you to change your Tor path.
- ZEUS over Tor guides for StartOS
- 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.
- Node.js (minimum version: 18.18)
- 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
- 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
cd ios && pod install
- open
ios/zeus.xcworkspace
in Xcode and hit Run.
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.
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.8.0 https://github.com/ZeusLN/zeus.git
You can also remove the--branch v0.8.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 SHA256 hashes 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 SHA256 hashes with the ones provided on the GitHub releases page
- Download the official APK from GitHub releases page or from the ZEUS homepage:
wget https://zeusln.com/zeus-v0.8.0-universal.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.
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
(zeusln@tutanota.com). The key can be found in this repo and on the ZeusLN.com 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 (tips@pay.zeusln.app), or via PayNym (+holymorning7d1). You can also become a community sponsor and have your Twitter or Nostr avatar displayed on our website and in-app.
Thank you.
Distributed under the GNU Affero General Public License (AGPL v3). See LICENSE file.