.circleci | ||
bip38 | ||
class | ||
fastlane/metadata | ||
img | ||
loc | ||
models | ||
patches | ||
screen | ||
tests/unit | ||
.babelrc | ||
.eslintrc | ||
.flowconfig | ||
.gitignore | ||
.watchmanconfig | ||
analytics.js | ||
App.js | ||
app.json | ||
App.test.js | ||
BlueApp.js | ||
BlueComponents.js | ||
currency.js | ||
encryption.js | ||
events.js | ||
gif.gif | ||
HDWallet.test.js | ||
LICENSE | ||
MainBottomTabs.js | ||
MockStorage.js | ||
package-lock.json | ||
package.json | ||
prompt.js | ||
README.md | ||
shim.js | ||
up-build-number.js |
BlueWallet - Bitcoin Wallet
Thin Bitcoin Wallet. Built with React Native, Expo and BlockCypher API.
Website: bluewallet.io
Discussion thread: https://bitcointalk.org/index.php?topic=2893813
- Build and run on your own using Expo Client
- Private keys never leave your device
- SegWit-first. Replace-By-Fee support
- Encryption. Plausible deniability
Beta version, do not use to store large amounts!
BUILD & RUN IT
- In your console:
git clone https://github.com/Overtorment/BlueWallet.git
cd BlueWallet
npm install
npm start
- Install Expo client: https://itunes.apple.com/app/apple-store/id982107779?ct=www&mt=8
- Send the link shown in your console after
npm start
to your device - Open the link with Safari, Expo client should automatically handle
exp://
URI scheme
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.
AUTHOR
LICENSE
MIT
ROADMAP
v1.0.0 alpha
Support for single private-key wallets:
SegWith P2SH compatibility addresses
Screens:
- Wallets
- Sub-screen Edit Wallet
Edit labelDeleteView info: type, address, privkey (?)
Sub-screen Add Wallet
- Sub-screen Edit Wallet
- Transactions
Sub screen to view transaction details (confs, fee, seen date, confirmed date, time to confirm)- View TX on block explorer
- Receive
Choose walletSub-screen with QRaddress as un-editable input (for copy-paste)
- Send
Choose WalletScan QRSub screen edit balance, memo, receiver name ...Validation error in case of empty fields
Broadcast TXsave TX meta info to wallet storage (memo, txhex)
- Settings
Opensource linkTechnologies used
v2.0.0 beta
Legacy addressesEncrypt all storage, PIN/Password/Fingerprint security- Currency conversion
Localization (RU, UA)
Screens:
- Receive
- Choose wallet
- Choose amount in BTC, label etc
- Generate specialized QR wih above info
- Choose walet
- Receive through changelly/shapeshift
- Choose wallet
- Send
- Handle
bitcoin://
URI Scan QR withbitcoin://
URI
- Handle
- Transactions
Sub screen to view transaction details (confs, fee, seen date, confirmed date, time to confirm)Do RBF on TX (with change-destination address)- Do CPFP
- Settings
- Appstore RateMe link
v3.0.0 beta
Support HD (multi-private keys) Support bech32 addresses
Screens
- Settings
- Different UTXO usage strategies
- Address book..?
v4.0.0
Lightning support?
BACKLOG FEATURES
- RBF
- CPFP
- Sign any message with private key
- Verify other message signature
- Tool: Cold wallet verifier (scans private keys and displays public keys realtime)
- Export (backup) secrets/private keys
- Export (bip38 password-encrypted)
- Cold wallet generator
- Export created signed tx, no broadcast
- Work through proxy? TOR?
- Localizations (RU, UA, BY? Arab, JP, CH?)
- OFFLINE TX: get unspents offline, create & sign TX offline, export txhex
- Sweep other private key
- Rebroadcast TX (to some different endpoints?)
- Batch transaction
- MultiSig M-of-N (while keeping only 1..M of all sigs on device)
- Sign your part of multisig via QR code
- Transaztion queue chart, fee estimation
- Push notifications for all associated addresses
- Keep PrivKey/WIF on paper, scan only on TX signing, not keping on device (watch-only address)
- Decode TX screen
- Migrate to ElectrumX server (ditch blockcypher) - requires socket/tcp support in Expo OR rpc2rest proxy
- Fake password which unlocks fake wallets (aka plausible deniability)
- BIP38 (password-protected key)
- Self-destruct if several password attempts
- Generate keys with desired text in address (3MyAddRess......)
- Generate private key with dice or coin flip as a source of entropy