The app is based on decentralized P2P/SPV platform of BitcoinJ and on Bitcoin wallet app by Andreas Schildbach.
None of third-party servers are involved nor in storing, nor in transferring your Bitcoins - you're the master of your Bitcoins.
The source code of Bitcoin wallet app by Andreas Schildbach is transformed from Eclipse IDE format to Android Studio IDE format. Look for information online how to build an app from source code with Android Studio IDE.
Just import the source code of the app to Android Studio IDE as normal Android Studio project and you're ready to compile the code.
This source code of the app contains Gradle configuration which lets you to build 4 flavors of the app (read more about flavors: link #1, link #2):
- Mainnet release:
- use the app with real Bitcoins, debugging disabled
- ready to be uploaded to Google Play Store (read the section below: "Releasing the app publicly")
- Mainnet debug:
- try the app with real Bitcoins and debug the app at the same time
- for personal testing only
- Testnet release:
- use the app with Tesnet Bitcoins, debugging disabled
- ready to be uploaded to Google Play Store (read the section below: "Releasing the app publicly")
- Tesnet debug:
- try the app with Tesnet Bitcoins and debug the app at the same time
- for personal testing only
To release this app on Google Play Store on your own (or just to publish it on the internet), follow these instructions:
- At first you must to rename
applicationId
(package name) in Gradle configuration fileapp/build.gradle
in sections:defaultConfig
,productFlavors
-mainnet
andtestnet
.
NOTICE: Don't rename package name in
AndroidManifest.xml
file, otherwise you'll get many errors while compiling the app. Rename onlyapplicationId
(package name) in Grade configuration file - Gradle system will do all tasks automaticaly itself.
- Then you must to rename the app name in string resource file
app/src/main/res/values/btc.xml
. - Next you must change
app_icon.png
in drawable resource filesapp/src/main/res/drawable-*/app_icon.png
andapp/src/testnet/res/drawable-*/app_icon.png
. - Now you must review and change constants to your own ones - Bitfynd API URL, user-agent, donation address, reports email, git repository URL, git releases URL and many other constant-settings if you want to have an independent app system in
app/src/main/java/de/schildbach/wallet/Constants.java
file. - Finally you must sign the app using your own keystore file, because we don't provide our own keystore file publicly as only we're updating this app on Google Play Store using exactly our own unique
applicationId
(package name). So, just use your ownapplicationId
(package name), app name and keystore file to publish your own app release based on this source code.
If you won't follow the instructions above, you will run into these conflicts:
- You won't be able to publish this app on Google Play Store, because our original app (Bitfynd) already uses the same
applicationId
(package name) and app name on Google Play Store! - You'll confuse other users which app is the original one and which is a fork/copy released by other developers (unofficial one)!
- During installation it will overwrite existing original app (if any) on your and/or other users devices!
- Your app users will be confused while connecting to Bitfynd API with wrong app data and getting wrong response or even errors from it, sending reports to wrong email, browsing wrong git URLs and donating to wrong address!
The app is based on Bitcoin wallet app for Android by Andreas Schildbach:
Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required.
The app is also using BitcoinJ:
BitcoinJ library is a Java implementation of the Bitcoin protocol, which allows it to maintain a wallet and send/receive transactions without needing a local copy of Bitcoin Core.
This app is a free and opensource software, licensed under GPLv3 license.
According to GPLv3 license, there is basically no warranty and liability. It's your responsibility to audit the source code for security issues and to build, install and run the app in a secure way.