A modern descriptor-based Financial Freedom Bitcoin Wallet aimed at restoring sovereignty to Global Bitcoiners.
What are descriptors? Read more.
- Descriptor-based HD wallet (
wpkh(KEY)
,pkh(KEY)
,sh(wpkh(KEY))
,tr(KEY)
) - Watch Only support
- Partially Signed Bitcoin Transactions (PSBTs) and Fee Bumping (RBF)
- Lightning Network support (BOLT11 & LNURL)
- Internal Wallet Lightning Swaps (Onchain<>Lighting)
- Multi-lingual (en, ar)
- IOS Beta Test flight coming soon.
- BIP21 URI Scheme
- BIP32 Hierarchical Deterministic Wallets
- BIP39 Mnemonic code for generating deterministic keys
- BIP44 Multi-Account Hierarchy for Deterministic Wallets
- BIP49 Derivation scheme for P2WPKH-nested-in-P2SH based accounts
- BIP70 Payment Protocol
- BIP84 Derivation scheme for P2WPKH based accounts
- BIP86 Derivation scheme for PTR based accounts
- BIP173 Base32 address format for native v0-16 witness outputs
- BIP174 Partially Signed Bitcoin Transactions
For details on contributing to the app translation, please see the translation guide
Note: Please ensure the version of Node and NPM you are using are >= the minimum LTS Node and NPM versions specified in the package.json file. The recommended Node and NPM versions are LTS versions (i.e. even-numbered releases). Run
node --version && npm --version
to get the versions of Node and NPM on your system if unsure.
Clone the repo locally and install the required npm dependencies:
$ git clone https://github.com/Zero-1729/volt
cd volt
yarn install
To run the wallet locally on, and build for, Android or IOS you'll need Android Studio and Xcode installed, respectively.
Note: If any part of the original
.crt
or.pem
files are cut out, you will get the Breez SDK errorGeneric: transport error
. See documentation here for more info.
Create a copy of the env.example
cp env.example .env
This command creates a .env
file in the project root volt/
. Then fill it with the appropriate info.
You can read and convert the contents of your client-key.pem
and client.crt
files as binary/byte data, in their entirety without taking out any parts (e.g. BEGIN CERTIFICATE / END CERTIFICATE / BEGIN PRIVATE KEY / END PRIVATE KEY
) to hex strings and add them to the .env
file as GL_CUSTOM_NOBODY_KEY
and GL_CUSTOM_NOBODY_CERT
, respectively.
To run the app locally, you'll need to add the Breez SDK Greenlight credentials to the .env
file:
# Contents of the '.env' file
# ...
GL_CUSTOM_NOBODY_KEY=YOUR_HEX_STRING
GL_CUSTOM_NOBODY_CERT=YOUR_HEX
To run the wallet locally on your system, run the following in the project root (volt/
):
This will start the Metro Bundler, which is the tool responsible for bundling the app's JavaScript code and assets into a single file that can be run on the device.
$ yarn run start
Due to the way Tailwind works, you'll need to run the following command to build the Tailwind CSS file:
This builds the Tailwind styles in watch mode. You'll need to run this command in a separate terminal window to keep the Tailwind styles updated before running the app.
$ yarn run dev:tailwind
- Download and run the latest (stable) version of Android Studio.
- Launch Android Studio, and Open the project's android folder (
volt/android
). - Open the
build.gradle
file in the current folder (volt/android
), it'll take some time for Android Studio to set up. - Navigate to
AVD Manager
under theTools
sections of the menu, and click "Create Virtual Device..." to create a virtual device. - Launch the newly created virtual device by clicking the
Play
in theActions
section of the menu.
After setting up the virtual device, run the following in the project root (volt/
) to launch the emulator:
The command builds the app and installs it on the virtual device or a connected Android device (if detected). Once launched, the app would take time loading the dependencies.
$ yarn run android
To run the app using XCode's IOS emulator, you'll need to install the CocoaPod dependencies:
$ cd ios
$ yarn pod install
After installing the dependencies, to launch the app on the IOS emulator you'll need to navigate to the project root (volt
) and run:
Note: If you have issues running the command above, you can also open Xcode and open the
ios/volt.xcworkspace
file and build/run the app from there.
yarn run ios
Email [email protected]
with the title "volt: bug/vulnerability report
" to disclose any critical bugs or vulnerabilities.
MIT © Zero-1729