/breezmobile

Lightning Network mobile client

Primary LanguageDartGNU General Public License v3.0GPL-3.0

Breez Mobile Client

screenshot screenshot screenshot screenshot screenshot screenshot screenshot

Breez is a Lightning Network mobile client and a hub. It provides a platform for simple, instantaneous bitcoin payments.

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
  • Pay someone nearby: pay to another Breez user using NFC
  • NFC card support: activate an NFC card to be used by POS
  • 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 on-boarding
  • 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
  • Support zero-conf channels
  • Async payments via Lightning Rod
  • Support SD storage

System Requirements

  • Android 7+ 64bit

Build

  1. Build breez.aar and bindings.framework as decribed in https://github.com/breez/breez
  2. For Android:
  • Copy breez.aar to the android/app/libs/ directory
  • Create a firebase Android app using the firebase console
  • Generate the google-services.json and copy it to the android/app/src/client directory
  1. For iOS:
  • Copy the bindings.framework directory to the ios directory.
  • Create a firebase iOS app using the firebase console
  • Generate the GoogleServices-info.plist and copy it to ios/Runner directory
  1. Flutter beta channel
  • Install flutter Run these command to switch to beta channel:
  • flutter channel beta
  • flutter upgrade

Run

Now you can use the following commands to run in a connected device the client app or the pos or to build the corresponding apks:

  • flutter run --flavor=client --target=lib/main.dart
  • flutter run --flavor=pos --target=lib/main_pos.dart
  • flutter build apk --target-platform=android-arm64 --flavor=client --debug --target=lib/main.dart
  • flutter build apk --target-platform=android-arm64 --flavor=pos --debug --target=lib/main_pos.dart

Architecture

screenshot