Affordable and easy-to-use, security for all your sats, BIP-85, Multisig, Own Node, and Hardware Wallet support. Built with React Native
![Screenshot 2024-04-25 at 11 08 39 AM](https://private-user-images.githubusercontent.com/50690016/325486078-1e08c786-f376-4e04-8bee-0917718cf870.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ0NjgxMzIsIm5iZiI6MTcyNDQ2NzgzMiwicGF0aCI6Ii81MDY5MDAxNi8zMjU0ODYwNzgtMWUwOGM3ODYtZjM3Ni00ZTA0LThiZWUtMDkxNzcxOGNmODcwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI0VDAyNTAzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJlYTEwYTc2NzYyZjYxNzYzZGE2Zjc1Mjg5MzdhZTk5MTBhNWQ5MTM3NjE1YjA0NGViNWMyODVkMDYyMjVjMDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.OPqgwFOHIKGfAev7Y9aXexRUUZ3LtpZ-R8aFWJjcO9Q)
Bitcoin Keeper is an open source, bitcoin-only app designed for seasoned bitcoin hodlers. Built to store bitcoin over a prolonged period of time, Keeper helps you source, clean, and stack sats across different kinds of wallets. Keeper also helps you plan your bitcoin inheritance with built in tools and templates that unlock at the Diamond Hands subscription tier.
- Create hot wallets or multi-key offline vaults of different m-of-n configurations
- Supports most of the trusted hardware wallets
- Several softkey options including Assisted Keys
- Ready to use Mobile Key when you setup a vault
- Manage UTXOs
- Plan bitcoin inheritance
- In-app chat and Concierge services coming soon
Before getting started, make sure you have a proper React Native development environment on your machine
-
Clone this repository to your local machine:
git clone https://github.com/bithyve/bitcoin-keeper.git
-
Navigate to the project directory:
cd bitcoin-keeper
-
Install the project dependencies using Yarn: The prepare scripts will automatically install pods and nodify crypto-related packages for react-native
yarn install
The project has testnet and mainnet variants. The development variant is configured to use testnet and the production variant to use mainnet.
Start metro metro
yarn start
To run the development app on a connected device or emulator:
Android
yarn androidDevelopmentDebug
iOS
yarn ios --scheme=hexa_keeper_dev
To run the production app on a connected device or emulator:
Android
yarn androidProductionDebug
iOS
yarn ios --scheme=hexa_keeper
These commands will build and launch the app on the respective platforms.
389F 4CAD A078 5AC0 E28A 0C18 1BEB DE26 1DC3 CF62
Please download an APK and keep all these files in the same directory: Android APK file, SHA256SUM.asc, KEEPER_DETACHED_SIGN.sign
. Make a copy of Android APK file
and rename it as Android APK clone
.
Get the public PGP key for [email protected]
(Hexa Team's PGP key) using
gpg --recv-key "389F 4CAD A078 5AC0 E28A 0C18 1BEB DE26 1DC3 CF62"
or
gpg --keyserver hkps://keys.openpgp.org --recv-key "389F 4CAD A078 5AC0 E28A 0C18 1BEB DE26 1DC3 CF62"
Verify APK certificate
Rename Android APK clone.apk
to Android APK clone.zip
and extract the following file: /META-INF/HEXAWALL.RSA
. Verify the certificate using keytool
:
keytool -printcert -file HEXAWALLET.RSA
Certificate fingerprints:
...
MD5: 5E:92:30:9B:88:F4:A1:17:08:D1:DB:C3:2A:BF:4D:5A
SHA1: 38:55:07:26:F4:C6:C4:3E:A2:87:CF:16:11:7C:E6:A5:66:E1:CB:C1
SHA256: 77:82:54:70:5D:C4:DA:83:2C:F8:39:96:49:69:FE:AF:63:BD:79:EF:00:0A:34:43:86:0C:7C:AD:A2:55:1C:95
Signature algorithm name: SHA256withRSA
Version: 3
Verify APK checksum
Verify the checksum against the APK using:
shasum -a 256 --check SHA256SUM.asc
Output should contain the name of the APK file followed by OK as shown below:
Bitcoin_Keeper_Beta_v1.1.8.apk: OK
Verify that the signed checksum is from [email protected]
gpg --verify SHA256SUM.asc
Output should show Hexa's PGP key 389F 4CAD A078 5AC0 E28A 0C18 1BEB DE26 1DC3 CF62:
using RSA key 389F4CADA0785AC0E28A0C181BEBDE261DC3CF62
issuer "[email protected]"
Good signature from "Hexa Team (Hexa Bitcoin Wallet) <[email protected]>"
Alternate method for verifying PGP signature
Verify the detached signature against the APK file:
gpg --verify KEEPER_DETACHED_SIGN.sign Bitcoin_Keeper_Beta_v1.1.8.apk
Output should show PGP key 389F 4CAD A078 5AC0 E28A 0C18 1BEB DE26 1DC3 CF62:
using RSA key 389F4CADA0785AC0E28A0C181BEBDE261DC3CF62
issuer "[email protected]"
Good signature from "Hexa Team (Hexa Bitcoin Wallet) <[email protected]>"
This project uses Jest as the testing framework. To run the tests, use the following command:
yarn test
This project is licensed under the MIT License.