/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.
Breez is currently in a public beta, available on Android and on iOS.
To learn more about, please read Introducing Breez.

Check our active bounties.

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 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
  • 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
  • Boostagram
  • Tor support (open bounty)
  • Support LNURL-Withdraw balance check
  • Async payments via Lightning Rod
  • Neutrino sync optimizations
  • Support SD storage

System Requirements

  • Android 7+ 64bit
  • iPhone 6+

Build

  1. Build breez.aar and bindings.framework as decribed in https://github.com/breez/breez
  2. For Android:
  • Symlink breez.aar to the android/app/libs/ directory
  • Create a firebase Android app using the firebase console
  • Generate the google-services.json (on "Project settings" menu) 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
  • Run pod install from breezmobile/ios
  1. Install flutter (stable channel)

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