lukevenediger / breezmobile

Lightning Network mobile client

Home Page:https://breez.technology

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

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
  • 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
  • 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
  • In-app podcast player (podcasting 2.0)
  • Support LNURL-Pay (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. Flutter stable channel
  • Install flutter Run these command:
  • 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

Running on testnet

Modify the files under the conf/ directory:

# breez.conf
-network=mainnet
+network=testnet
-peer=btcd-mainnet.lightning.computer
+peer=<your btcd node address on testnet>

# lnd.conf
-neutrino.connect=btcd-mainnet.lightning.computer
+neutrino.connect=<your btcd node address on testnet>

After the initial sync, go to the Developer menu, get an address to fund with testnet coins with newaddress p2wkh, then fund it, and use connect 03d5e17a3c213fe490e1b0c389f8cfcfcea08a29717d50a9f453735e0ab2a7c003@3.16.119.191:9735 then openchannel --private --conf_target 1 03d5e17a3c213fe490e1b0c389f8cfcfcea08a29717d50a9f453735e0ab2a7c003 90000 to open a channel to that public node (adjust the amounts and the node id/address if you wish).

Architecture

screenshot

About

Lightning Network mobile client

https://breez.technology

License:GNU General Public License v3.0


Languages

Language:Dart 93.5%Language:Java 3.5%Language:Swift 2.3%Language:Shell 0.3%Language:Ruby 0.2%Language:JavaScript 0.2%Language:Objective-C 0.0%