/breezmobile

Lightning Network mobile client

Primary LanguageDartGNU General Public License v3.0GPL-3.0

Breez Mobile Client

screenshot screenshot screenshot

Breez is a Lightning Network mobile client and a hub. It provides a platform for simple, instantaneous bitcoin payments.
Breez is currently in a public beta, available on Android and on iOS.
To learn more about it, please read Introducing Breez.

Features

  • lnd on Android
  • Neutrino on Android
  • Seamless hub channel creation
  • Adding funds using on-chain tx
  • BTC & Satoshi units
  • Random avatars
  • Connect to Pay: simple interface to execute payments between users
  • A full lncli interface to query and execute ln commands
  • Filter tx by type
  • Filter tx by date
  • Pay invoice (link or QR) from other ln wallets
  • Create invoice (link or QR) to be paid by other ln wallets
  • Removing funds to an on-chain address
  • SubmarineSwaps for adding on-chain funds including refund functionality
  • End-to-end encryption of Connect-to-Pay session
  • Make Connect-to-Pay links work for users that didn't yet install Breez
  • Ability to Backup/Restore the ln node
  • Mainnet support
  • Support zero-sat invoices
  • Startup optimizations
  • Background sync via FCM
  • Marketplace w/ Bitrefill
  • Adding funds via vouchers
  • Backup improvements
  • Add background ChannelsWatcher job
  • Expose Bitcoin Node (BIP157) configuration
  • iOS support
  • Add webLN support
  • Fiat units
  • Optional PIN
  • Adding funds via credit card
  • Add stronger encryption to cloud backup
  • iCloud backup option
  • Dark mode
  • Export payments to .csv
  • Support 3rd-party LSPs
  • Biometric login
  • Fast onboarding
  • Pay w/o full sync
  • Implement lnurl-withdraw
  • Send on-chain via reverse Submarine Swaps
  • Improve hodl invoice support
  • POS POC release
  • Spontaneous payments to node id (nodes running with --accept-keysend)
  • Fast graph sync
  • Scan QR code from an image
  • Import/export POS items
  • Support zero-conf channels
  • 'On-the-fly' channel creation (increase limit)
  • Remove reserve working using Breez channels
  • Support additional fiat currencies
  • Support LNURL-Auth & LNURL-Fallback
  • Print POS transactions
  • Hide balance
  • Read NFC tags on Android
  • In-app podcast player (podcasting 2.0)
  • Backup to WebDav servers (e.g. Nextcloud)
  • Support LNURL-Pay (bounty redeemed)
  • Send to a Lightning address
  • Boostagrams
  • WebDav backups
  • Sales reports
  • Top podcasts
  • NFC checkout
  • Tor support (Android)
  • Neutrino sync optimizations
  • Support LNURL-Withdraw balance check
  • Async payments

System Requirements

  • Android 7+ 64bit
  • iPhone 6+

Setting up the environment

Prerequisites

Make sure you have Flutter 3 installed on your system before continuing the setup process.

Setting up for Android

  1. Build breez.aar as described in https://github.com/breez/breez
  2. Create a symlink from the breez.aar to android/app/libs directory.
  3. Create an Android app on Firebase and download google-services.json file.
  • Package name (for debugging): com.breez.client.debug
  1. Copy the downloaded google-services.json file to android/app/src/client folder.

Setting up for iOS

  1. Build and bindings.framework as described in https://github.com/breez/breez
  2. Copy the bindings.framework directory to the ios directory.
  3. Create an iOS app on Firebase and download GoogleServices-info.plist file.
  4. Copy the downloaded GoogleServices-info.plist file to ios folder.
  5. Run pod install from breezmobile/ios

Building and Running

# Install dependencies for building
flutter pub get

# Run a client app on the connected device
flutter run --flavor=client

# Build a client app as APK file
flutter build apk --target-platform=android-arm64 --flavor=client --debug