- Help build a powerful native mobile Bitcoin signer management application
- Contribute towards the integration, development and enhancement of Bitcoin UX design
- Unlock coin insights via integrated onchain (privacy/provenance/economic) analyses and corresponding data visualisation to help inform, encourage and automate better Bitcoin usage best-pratices
- Advance Bitcoin understanding
- Test market demand for bitcoin centric applications
- Propagate open-source ethos
- Build and support Bitcoin and related FOSS projects
- Participate in Bitcoin history
- Bitcoin only
- Sat denomination supremacy
- Initial focus on on-chain bitcoin (coin-control/controlling sats)
- Emphasis on privacy
- Emphasis on personal labeling, tagging, and bookmarking
- Application of visualisation/visual-native UI aiming to build upon and develop new Bitcoin design primitives to help make more advanced/poower-user Bitcoin UX/UI more intuitive and accessible
- Take advantage of appropriate charts and graphic layouts for all data vizualisation
- Security - targetting optimal hot-signer-level security initially (future support for watch-only cold, multisig, vaults etc)
- Visually crafted and UX builds upon powerful feattures and improvements introoduced by the many existing brilliant open-soouurce FullyNoded, or Sparrow
- An intuitive and powerful mobile bitcoin app
- Experimental bitcoin centric lexicon
- Send bitcoin -> Sign bitcoin messages
- Spend bitcoin -> Consume UTXO
- Bitcoin balance -> Total spendable sats
- Wallet -> Signer
- Private key -> Account
- Address -> Invoice
- Transaction -> Message
- (...)
- Bitcoin specific UX patterns
- Bitcoin technology education
- Visual personal chain analysis
- UTXO control
- Fully open source
- Easily reproducible
- Open source dependencies only
- Bitcoin interface exclusively via open source library
- Mobile collaborative transaction interface (mobile joinmarket client?)
- Native lightning support built with LDK (keeping with UX/Data visual-focus)
- Bitcoin Development Kit via RN-BDK - becoming reference Bitcoin dev tools
- Blockstream Electrs - performant Bitcoin server interface/signer backend to bootstrap users who don't yet run their own node
- Photon SDK - powerful mobile Bitcoin dev kit to build forgiving, easy backup and recovery, intuitive signers
- Tor - private communications with your personal nodeserver/electrs
- Sparrow - very powerful and clean native Bitcoin signer management desktop app
- FullyNoded - very powerful iOS app focused on remote full node management
- BitFeed - beautiful, psychedelic block/transaction/timechain visualisation
- Mempool.space - beautiful block explorer and Bitcoin data visualisations
- Zeus - pretty, increasingly powerful remote LN node management app
- Node.js (minimum version 18)
- Yarn
npm install --global yarn
Install the dependencies at the root of the repository
yarn install
Set up Android Studio as usual. Otherwise, if you are using other IDE,
then install the packages android-sdk
, android-sdk-build-tools
,
android-sdk-platform-tools
, and android-tools
.
Once installed, set the environment variable ANDROID_HOME
to point to
the location where the packages were installed, and update your PATH
:
export ANDROID_HOME=/opt/android-sdk
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator
On some Linux systems, ANDROID_HOME
may be /opt/android-sdk
. On Windows,
it may be /Users/username/Library/Android/sdk
. Set it accordingly.
Install Java JDK 8 in order to donwload the images from the upstream.
Also, make sure to enable JDK 8 before running sdkmanager
commands,
because they seem to work only with this version. To enable it on
arch-based systems, run:
sudo archlinux-java set java-8-openjdk
This will make JDK 8 the default Java environment. We can then proceed to
using sdkmanager
.
You can list the images with the following command:
sdkmanager --list
Select the SDK that fits your platform (x86_64
, arm64
, or other). Then
install the image with the command:
sdkmanager --install 'system-images;android-34;default;x86_64'
Of course, replace system-images;android-34;default;arm64-v8a
with
the desired image name. This examples uses the default image for Android
SDK 34 for the x86_64
(intel CPU) platform.
Then, create an emulator device:
avdmanager create avd -n myemulator -k 'system-images;android-34;default;x86_64'
Replace myemulator
with the desired name for the emulator device and replace
system-images;android-34;default;x86_64
with the image donwloaded earlier.
Once the device has been created, switch your Java environment to Java
JDK 17 in order to run and build this application. Lastly, if you get
the error [CXX5304]
while building, try running unset _JAVA_OPTIONS
because this variable is source automatically and may pass options that
intefere with the building.
Follow the expo documentation here
Make sure to select "Development build" and disabled "Build with Expo Application Services (EAS)"
Note: When starting a development server, do NOT run: npx expo start
Make sure you are on the mobile
folder
cd apps/mobile
Run for android or iOS
yarn android
yarn ios