# BlueWallet: a React Native Bitcoin and Lightning wallet you build yourself

> BlueWallet is an MIT-licensed iOS and Android wallet built with React Native and Electrum. Its README is a build guide, not a product tour, so the useful question is what you get after npm install and what you still have to verify.

**BlueWallet/BlueWallet** — Bitcoin wallet for iOS & Android. Built with React Native 

- Repository: https://github.com/BlueWallet/BlueWallet
- Website: https://bluewallet.io
- Stars: 3,308 · Forks: 1,068
- Language: TypeScript
- License: MIT
- Published: 2026-09-24 · Updated: 2026-09-24 · Language: en
- Canonical page: https://hysenlabs.com/projects/bluewallet-bluewallet

## What BlueWallet solves, and who the repository is actually written for

BlueWallet is a Bitcoin wallet that runs on iOS and Android and is built with React Native, with Electrum as the backend it talks to. The README states the private keys never leave your device, that Lightning Network is supported, and that the wallet is SegWit-first with Replace-By-Fee support. Encryption and what the README calls plausible deniability are listed as features as well.

The audience is split in two, and the README only serves one half. For end users, the project points at the App Store and Play Store badges and at bluewallet.io/features. For developers, the README is a build guide: clone, install, run on Android, run on iOS, run on macOS through Mac Catalyst. There is no user manual in the repository, and the FAQ.md file at the top level is not excerpted here, so treat the README as the contract. If you are evaluating BlueWallet as a product rather than a codebase, most of what you need is on the website, not in the repository.

## How the wallet is put together: React Native, Electrum, and a shared JavaScript core

The architecture visible from the repository layout is a single React Native application with platform folders for android/ and ios/, a shared TypeScript and JavaScript core under blue_modules/, class/, models/, components/, screen/, and navigation/, and a codegenConfig block in package.json that generates a native module named BlueWalletSpec with the Android package io.bluewallet.bluewallet.

The wallet is described as thin, and the README names Electrum as the counterparty. That means balance and transaction history come from Electrum servers rather than from a full node running on the phone, which is what makes an app of this size possible. The trade-off is the usual one for light clients: you are trusting the servers you query for the view of the chain you see, even though the keys stay local. The README does not document how server selection works or how to pin your own, so that is a question the source has to answer.

Lightning support sits alongside the on-chain wallet. The README lists it as a feature but does not describe the node implementation, channel management, or liquidity handling. Anyone choosing BlueWallet for Lightning should read the source rather than the README, because the README gives no operational detail at all.

## Installing BlueWallet and running it on Android, iOS, or macOS

The README says to check the engines field in package.json for minimum Node and npm versions, and prefers an even-numbered Node release because those are LTS. Confirm your environment first:

```bash
node --version && npm --version
```

Then clone and install dependencies:

```bash
git clone https://github.com/BlueWallet/BlueWallet.git
cd BlueWallet
npm install
```

For Android, the README walks through creating a virtual device in Android Studio's AVD Manager, opening the build.gradle file under BlueWallet/android/, and launching the emulator. Once a device or emulator is up, the build command is:

```bash
npx react-native run-android
```

The README notes the app takes some time to load all dependencies on first launch. For iOS, the sequence is two commands in the project folder, then a third in a second terminal:

```bash
npx pod-install
npm start
```

```bash
npx react-native run-ios
```

One iOS detail is easy to miss: to debug on the iOS Simulator you must pick a Rosetta-compatible simulator, which the README says is done from the Product menu in Xcode, then Destination Architectures, then Show Both. For Mac Catalyst, run pod-install and npm start, open ios/BlueWallet.xcworkspace, select the BlueWallet scheme, and click Run. Tests run with `npm run test`.

## Where BlueWallet stops: no desktop build, no documented rollback

The README covers Android, iOS, and macOS through Mac Catalyst. It does not describe a Windows or Linux desktop client, which matters because people search for a Windows version. Mac Catalyst is a way to run the iPad app on a Mac, not a cross-platform desktop port, and the README gives no instructions for anything else.

Rollback is undocumented. The repository has a RELEASE.md file and a reproducible-builds/ directory, but the README excerpt does not describe what happens if a release is withdrawn or how a user reverts to an earlier version. If your threat model includes a bad update, that gap is a real one.

Recovery is also thin in the README. It mentions a seed and a passphrase indirectly through the translation glossary, which lists Wallet, Vault, Seed, Mnemonic, Passphrase, Multisig, Payment Code, and Coin Control as terms needing consistent rendering. The glossary warns, for example, that Passcode is not the same as Password. That is a useful signal about how carefully the project treats terminology, but it is not a recovery guide. Anyone storing real funds should confirm the backup and restore flow against the app itself, not against the README.

## BlueWallet compared with running your own node wallet

The closest alternative in kind is a wallet that talks to your own Bitcoin Core or Electrum server rather than to public Electrum endpoints. The difference is where trust sits. BlueWallet is described as thin and Electrum-backed, so the phone does not hold the chain; a self-hosted setup does, at the cost of running and syncing a node and pointing the wallet at it.

A second alternative is a hardware wallet paired with desktop software. BlueWallet keeps keys on the phone, which is convenient and also means the phone is the attack surface. The README's encryption and plausible deniability claims address that partly, but they are claims in a feature list, not a specification.

Neither comparison makes BlueWallet the wrong choice. It makes it a specific one: a mobile-first, self-custodial wallet for people who want Bitcoin and Lightning on a phone without running infrastructure. If you already run a node and want the wallet to use it, that is a different product category, and the README does not claim BlueWallet fills it.

## Maintenance, upgrade cost, and what the MIT licence means here

The repository is not archived, and the last push was on 2026-09-23. Releases are frequent: v8.0.1 on 2026-07-21, v8.0.0 on 2026-06-02, and v7.2.6 on 2026-02-23. package.json carries version 8.0.2, which is ahead of the newest listed release, so the master branch and the store builds do not move in lockstep.

Upgrade cost for a fork is real. The project depends on React Native 0.86-era packages, React 19 types, TypeScript 5.9, and patch-package, and it ships patches/ and codegen/ directories. Rebuilding against a newer React Native means revisiting those patches and the generated BlueWalletSpec module, not just bumping a version. The Gemfile and .ruby-version at the top level also mean the iOS side expects a Ruby toolchain for CocoaPods.

The licence is MIT, which permits commercial and closed-source reuse provided the copyright notice and permission notice are preserved. That is a statement about the licence text, not legal advice; if you plan to redistribute a modified build, have your own counsel read it.

## Conclusion

Adopt BlueWallet if you want a self-custodial Bitcoin and Lightning wallet whose source you can read, and if you are willing to build from the repository or install the App Store and Play Store builds the README links. Do not adopt it expecting a documented rollback path, a desktop client, or a wallet whose recovery flow is spelled out in the README; none of those are there. Verify first that your Node and npm versions satisfy the engines field in package.json, and read loc/vocabulary.md before you touch any translated string.

## FAQ

### Is BlueWallet open source?

Yes. The repository is public, the primary language is TypeScript, and package.json declares the MIT licence.

### What type of wallet is BlueWallet?

It is a Bitcoin wallet for iOS and Android built with React Native and Electrum, and the README lists Lightning Network support alongside the on-chain wallet.

### Is BlueWallet a Lightning wallet?

The README lists Lightning Network supported as a feature, so Lightning is part of the wallet, though the README gives no detail on how the Lightning side is operated.

### How do I set up BlueWallet from source?

Clone the repository, run npm install, then npx react-native run-android with a device or emulator attached, or run npx pod-install and npm start followed by npx react-native run-ios. The README says to check the engines field in package.json for the minimum Node and npm versions.

### Is BlueWallet free?

The source is MIT-licensed and the README links to App Store and Play Store builds, but the README does not discuss pricing, so nothing beyond the licence can be confirmed from it.

## Sources

- [BlueWallet/BlueWallet on GitHub](https://github.com/BlueWallet/BlueWallet)
- [License: MIT](https://github.com/BlueWallet/BlueWallet/blob/master/LICENSE)
- [Project website](https://bluewallet.io)
- [README](https://github.com/BlueWallet/BlueWallet/blob/master/README.md)
- [Releases](https://github.com/BlueWallet/BlueWallet/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bluewallet-bluewallet
