# Blixt Lightning Wallet Get it on Google Play  Download on the App Store  Blixt Wallet is an open source Lightning Bitcoin Wallet for Android with focus on usability and user experience, powered by lnd and Neutrino SPV.

Blixt Lightning Wallet screenshot

## Features - [x] Embedded lnd with Neutrino - [x] Descriptive and clean transaction log - [x] Receive payments - [x] Autopilot - [x] Pincode - [x] Fingerprint - [x] Optional Recipient/Sender name that will be displayed on transactions - [x] Optional "Payer" field for bookkeeping when creating invoice - [x] Scheduled sync of chain background job - [x] Local channel backup - [x] [LNURL](https://github.com/btcontract/lnurl-rfc) support (all sub-protocols: pay, channel, auth and withdraw) - [x] Channel backup to Google Drive (Android) and iCloud (iOS) - [x] [WebLN](https://webln.dev/) browser - [x] Support for [Multi-Part Payments (MPP)](https://lightning.engineering/posts/2020-05-07-mpp/) - [x] Integrated Tor support - [x] Sending to Lightning Address - [ ] Automatically open channels when needed ([LSP](https://github.com/hsjoberg/dunder-lsp)) - [ ] Receiving via Lightning Address by [Lightning Box](https://github.com/hsjoberg/lightning-box) - [ ] NFC ## Known Bugs The wallet uses lnd that is young and might have bugs. Check [lnd bug list here](https://github.com/lightningnetwork/lnd/issues?q=is%3Aissue+is%3Aopen+label%3Abug). ## Translation You can contribute to the project by translating the app via [Transifex](https://explore.transifex.com/blixt-wallet/blixt-wallet/). ## Build Steps Blixt targets three platforms right now: Web, Android and iOS. The web target is only used for prototyping and is not a real wallet. ### Web The easiest way get started is to build the web version, because you only need NodeJS and Bun installed. The web version is not used as a real wallet and is only for fast prototyping. It's useful if you want to make design and GUI changes. - Install [Node](https://nodejs.org) and [Bun](https://bun.com) - Install libs: `bun install` - Start the web server: `bun run web` ### Electrobun The Electrobun target is experimental and should currently be treated as a desktop development target, not a fully supported release target. - Install [Node](https://nodejs.org) and [Bun](https://bun.com) - Install libs: `bun install` - Download the `lnd` binary for your current desktop platform from the [`react-native-turbo-lnd`](https://github.com/hsjoberg/react-native-turbo-lnd/releases) releases page and place the file in project root: - Windows: `liblnd-windows.zip` - Linux: `liblnd-linux.zip` - macOS: `liblnd-macos-dylib.zip` - Start the app: - `bun run electrobun:dev:normal` To build/package: - Build app bundle only: `bun run electrobun:build:fakelnd` or `bun run electrobun:build:normal` - Package distributable app: `bun run electrobun:package:fakelnd` or `bun run electrobun:package:normal` ### Android - Install [Node](https://nodejs.org), [Bun](https://bun.com) and [Android Studio + Android SDK (including NDK)](https://developer.android.com/studio/) - If needed, install an emulated android device inside Android Studio - Install libs: `bun install` To start the application: - Run: `bun start-metro` - Run: `bun android:mainnet-debug` or `bun android:testnet-debug` ### Android (Nix) - Install [Nix](https://github.com/DeterminateSystems/nix-installer) - Install [Devenv](https://devenv.sh/getting-started/) - For local development install [Android Studio](https://developer.android.com/studio/) and start a simulator - For more awesome experience you can also install [direnv](https://devenv.sh/automatic-shell-activation/) and enable automatic shell activation. ``` cd blixt-wallet # Start the devenv shell (skip this if you installed direnv) devenv shell # Setup Android android-init # To build unsigned apk. android-unsigned-apk ## For local development: # Start metro bun start # Start blixt in regtest bun android:regtest-debug ``` ### iOS To build the iOS version, a computer running macOS is required. You also need an Apple Developer account, although you do not need to be enrolled in the Developer Program. - Install [Xcode](https://developer.apple.com/xcode/), [Node](https://nodejs.org) and [Bun](https://bun.com) - Install Node packages: `bun install` - Install CocoaPods libs: `cd ios && pod install` - Setup team signing: - Open `ios/BlixtWallet/BlixtWallet.xcworkspace` with Xcode - Login with your Apple Developer account if Xcode asks you to - Click on BlixtWallet in the left column - Click on the Signing & Capabilities tab - Choose your Team in the dropdown and choose a new unique Bundle Identifier (cannot be the same as the ones released on the App Store). Do this for every configuration To start the application: - Run: `bun start-metro` - Run: `bun ios:mainnet-debug --device ""` or build from Xcode ### macOS To build the macOS version, a computer running macOS is required. - Install [Xcode](https://developer.apple.com/xcode/), [Node](https://nodejs.org) and [Bun](https://bun.com) - Build lnd for macOS by following the steps in [build-ios-framework.md](build-ios-framework.md) - Instead of running `make ios`, run `make macos` or `make apple` - Install Node packages: `bun install` - Install CocoaPods libs: `cd macos && pod install` To start the application: - Run: `bun start-metro` - Build app from Xcode or run `bun macos:mainnet-debug` ## Commit and Code-Style Follow the code style of the file you are working in. For commits, make descriptive and atomic git commits. ## License MIT