Bitcoin thin client for iOS & Android. Built with React Native
Go to file
2021-07-20 20:58:28 +01:00
__mocks__ ADD: TOR support 2021-04-23 15:56:51 +01:00
.circleci TST: hope to improve CI tests 2020-04-04 19:35:53 +01:00
.github TST: tmp fix for e2e tests 2021-06-24 17:48:14 -07:00
.tx ADD: Romanian language, sync other languges 2021-03-12 16:48:16 +03:00
android Merge pull request #3391 from BlueWallet/tstsdk 2021-07-16 11:29:38 +01:00
blue_modules ADD: isTorCapable 2021-07-19 14:43:12 -04:00
class FIX: support lnurl-withdraw via Tor (closes #3086) 2021-07-20 19:03:53 +01:00
components REF: Remove error-prone random placeholder scroll calculation 2021-07-18 16:54:43 +01:00
fastlane/metadata/android/en-US Fastlane: Initial setup for fastlane metadata 2021-06-21 17:06:44 +01:00
helpers ADD: AOPP 2021-04-17 13:17:51 +01:00
img Merge pull request #2836 from mcsaeid/rtl-icons 2021-03-23 18:33:56 -04:00
ios OPS: Update packages 2021-07-20 14:11:05 -04:00
loc Merge pull request #3406 from BlueWallet/limpbrains-passphrase2 2021-07-20 16:47:11 +01:00
models ADD: IRR currency 2021-07-06 16:07:47 +03:00
screen FIX: support lnurl-withdraw via Tor (closes #3086) 2021-07-20 19:03:53 +01:00
scripts ADD: isTorCapable 2021-07-19 14:43:12 -04:00
tests Merge pull request #3406 from BlueWallet/limpbrains-passphrase2 2021-07-20 16:47:11 +01:00
windows OPS: Update Windows files 2021-07-20 12:21:46 -04:00
_editorconfig OPS: Upgrade RN 0.64.2 (#3170) 2021-07-06 10:38:53 +01:00
.babelrc ...Android... 2019-01-19 00:40:41 -05:00
.buckconfig OPS: attempt to fix randomly failing travisCI builds 2021-02-02 14:19:00 +00:00
.eslintrc REF: upgrade eslint, prettier, move them to dev deps, fix new lint errors 2021-05-08 09:41:45 +03:00
.gitattributes OPS: Upgrade RN 0.64.2 (#3170) 2021-07-06 10:38:53 +01:00
.gitignore ADD: electrum servers history list 2020-12-25 16:20:15 +00:00
.travis.yml OPS: feature-branch apk builds are now downloaded directly from CI (appcenter.ms) 2021-06-29 22:56:16 +01:00
.watchmanconfig ...Android... 2019-01-19 00:40:41 -05:00
App.js REF: sentry unique id 2021-05-18 13:01:19 +01:00
appcenter-post-build.sh OPS: feature-branch apk builds are now downloaded directly from CI (appcenter.ms) 2021-06-29 22:56:16 +01:00
babel.config.js REF: upgrade react-native-reanimated to v2 2021-05-10 11:59:54 +03:00
BlueApp.js REF: storage improvements 2021-05-26 22:06:59 +01:00
BlueComponents.js ADD: UI for import wallet with passphrase 2021-07-20 17:36:44 +03:00
CODE_OF_CONDUCT.md DOC: operations 2019-11-29 00:22:57 +00:00
CONTRIBUTING.md REL: version bump & release notes 2020-12-17 13:53:08 +00:00
FAQ.md DEL: LocalTrader (HodlHodl) starts with Globabl offers by default (closes #2465) 2021-01-26 19:32:00 +00:00
index.js REF: useContext for centralized data access 2020-10-24 18:20:59 +01:00
LICENSE DOC: Update LICENSE copyright date. 2020-07-25 17:22:29 +01:00
metro.config.js OPS: Update Windows files 2021-07-20 12:21:46 -04:00
Navigation.js FIX: Header would flash on dark mode transitions 2021-06-06 05:50:12 -04:00
NavigationService.js REF: Use NavigationContainer Ref for NavigationService 2020-06-19 13:42:50 +01:00
package-lock.json OPS: Update packages 2021-07-20 14:11:05 -04:00
package.json OPS: Update packages 2021-07-20 14:11:05 -04:00
README.md Update readme 2021-02-12 16:50:56 +00:00
RELEASE.md REF: organizing scripts 2020-05-19 23:26:56 +01:00
SECURITY.md Create SECURITY.md 2019-08-04 18:57:07 +01:00
shim.js REF: upgrade eslint, prettier, move them to dev deps, fix new lint errors 2021-05-08 09:41:45 +03:00
UnlockWith.js ADD: Accessibility button trait to TouchableOpacity 2021-06-24 08:50:57 -04:00
WatchConnectivity.ios.js FIX: remove checks before invoking getAddressAsync 2021-07-14 14:40:19 +02:00
WatchConnectivity.js REF: Handoff Component 2021-01-18 22:40:11 -05:00

BlueWallet - A Bitcoin & Lightning Wallet

GitHub tag CircleCI e2e on master code style: prettier

Thin Bitcoin Wallet. Built with React Native and Electrum.

Appstore Playstore

Website: bluewallet.io

Community: telegram group

  • Private keys never leave your device
  • Lightning Network supported
  • SegWit-first. Replace-By-Fee support
  • Encryption. Plausible deniability
  • And many more features...

BUILD & RUN IT

Please refer to the engines field in package.json file for the minimum required versions of Node and npm. It is preferred that you use an even-numbered version of Node as these are LTS versions.

To view the version of Node and npm in your environment, run the following in your console:

node --version && npm --version
  • In your console:
git clone https://github.com/BlueWallet/BlueWallet.git
cd BlueWallet
npm install

Please make sure that your console is running the most stable versions of npm and node (even-numbered versions).

  • To run on Android:

You will now need to either connect an Android device to your computer or run an emulated Android device using AVD Manager which comes shipped with Android Studio. To run an emulator using AVD Manager:

  1. Download and run Android Studio
  2. Click on "Open an existing Android Studio Project"
  3. Open build.gradle file under BlueWallet/android/ folder
  4. Android Studio will take some time to set things up. Once everything is set up, go to Tools -> AVD Manager.
  5. Click on "Create Virtual Device..." and go through the steps to create a virtual device
  6. Launch your newly created virtual device by clicking the Play button under Actions column

Once you connected an Android device or launched an emulator, run this:

npx react-native run-android

The above command will build the app and install it. Once you launch the app it will take some time for all of the dependencies to load. Once everything loads up, you should have the built app running.

  • To run on iOS:
npx pod-install
npm start

In another terminal window within the BlueWallet folder:

npx react-native run-ios
  • To run on macOS using Mac Catalyst:
npm run maccatalystpatches

Once the patches are applied, open Xcode and select "My Mac" as destination. If you are running macOS Catalina, you may need to remove all iOS 14 Widget targets.

TESTS

npm run test

MOTIVATION TO BUILD IT

I was not satisfied with existing iOS Bitcoin apps, especially with BreadWallet (the one I mainly used) where development stalled and they could not even deliver such features as SegWit, RBF and custom fees (at the times where custom fees were especially needed). So I knew I could create one to use myself and let others use it. I had experience with awesome bitcoin-js lib (javascript), and since I dont own any Macs, don't plan to and not going to learn ObjC/Swift - ReactNative (where you also write in javascript) was an obvious choice.

LICENSE

MIT

WANT TO CONTRIBUTE?

Grab an issue from the backlog, try to start or submit a PR, any doubts we will try to guide you. Contributors have a private telegram group, request access by email bluewallet@bluewallet.io

Translations

We accepts translations via Transifex

To participate you need to:

  1. Sign up to Transifex
  2. Find BlueWallet project
  3. Send join request
  4. After we accept your request you will be able to start translating! That's it!

Please note the values in curly braces should not be translated. These are the names of the variables that will be inserted into the translated string. For example, the original string "{number} of {total}" in Russian will be "{number} из {total}".

Transifex automatically creates Pull Request when language reaches 100% translation. We also trigger this by hand before each release, so don't worry if you can't translate everything, every word counts.

Q&A

Builds automated and tested with BrowserStack

RESPONSIBLE DISCLOSURE

Found critical bugs/vulnerabilities? Please email them bluewallet@bluewallet.io Thanks!