Breez Mobile Client
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
- [x] lnd on Android
- [x] Neutrino on Android
- [x] Seamless hub channel creation
- [x] Adding funds using on-chain tx
- [x] BTC & Satoshi units
- [x] Random avatars
- [x] Connect to Pay: simple interface to execute payments between users
- [x] A full lncli interface to query and execute ln commands
- [x] Filter tx by type
- [x] Filter tx by date
- [x] Pay invoice (link or QR) from other ln wallets
- [x] Create invoice (link or QR) to be paid by other ln wallets
- [x] Removing funds to an on-chain address
- [x] SubmarineSwaps for adding on-chain funds including refund functionality
- [x] End-to-end encryption of Connect-to-Pay session
- [x] Make Connect-to-Pay links work for users that didn't yet install Breez
- [x] Ability to Backup/Restore the ln node
- [x] Mainnet support
- [x] Support zero-sat invoices
- [x] Startup optimizations
- [x] Background sync via FCM
- [x] Marketplace w/ Bitrefill
- [x] Adding funds via vouchers
- [x] Backup improvements
- [x] Add background ChannelsWatcher job
- [x] Expose Bitcoin Node (BIP157) configuration
- [x] iOS support
- [x] Add webLN support
- [x] Fiat units
- [x] Optional PIN
- [x] Adding funds via credit card
- [x] Add stronger encryption to cloud backup
- [x] iCloud backup option
- [x] Dark mode
- [x] Export payments to .csv
- [x] Support 3rd-party LSPs
- [x] Biometric login
- [x] Fast onboarding
- [x] Pay w/o full sync
- [x] Implement lnurl-withdraw
- [x] Send on-chain via reverse Submarine Swaps
- [x] Improve hodl invoice support
- [x] POS POC release
- [x] Spontaneous payments to node id (nodes running with --accept-keysend)
- [x] Fast graph sync
- [x] Scan QR code from an image
- [x] Import/export POS items
- [x] Support zero-conf channels
- [x] 'On-the-fly' channel creation (increase limit)
- [x] Remove reserve working using Breez channels
- [x] Support additional fiat currencies
- [x] Support LNURL-Auth & LNURL-Fallback
- [x] Print POS transactions
- [x] Hide balance
- [x] Read NFC tags on Android
- [x] In-app podcast player (podcasting 2.0)
- [x] Backup to WebDav servers (e.g. Nextcloud)
- [x] Support LNURL-Pay (bounty redeemed)
- [x] Send to a Lightning address
- [x] Boostagrams
- [x] WebDav backups
- [x] Sales reports
- [x] Top podcasts
- [x] NFC checkout
- [x] Tor support (Android)
- [x] Neutrino sync optimizations
- [x] Co-operative Close Channels
- [ ] 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
- Build
breez.aar
as described in https://github.com/breez/breez
- Create a symlink from the
breez.aar
to android/app/libs
directory.
- Create an Android app on Firebase and download
google-services.json
file.
- Package name (for debugging): com.breez.client.debug
- Copy the downloaded
google-services.json
file to android/app/src/client
folder.
Setting up for iOS
- Build and
bindings.xcframework
as described in https://github.com/breez/breez
- Copy the
bindings.xcframework
directory to the ios directory.
- Create an iOS app on Firebase and download
GoogleServices-info.plist
file.
- Copy the downloaded
GoogleServices-info.plist
file to ios/Runner
folder.
- 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