- Connects to Electrum or ElectrumX servers over Tor, yay decentralized!
- App starts with a SOCKS5 proxy on
127.0.0.1:9050 - Current Android API level in use: 36
- Unstoppable Domains resolution is supported for XVG sends via
crypto.XVG.address - Includes a dedicated
metaReleasevariant for Meta / Horizon OS packaging without changing the standard Android release path - Includes a separate
wearablesMetaapp module for future Meta AI glasses companion work without mixing that code into the Quest / Horizon headset app
Play Store emulator images sandbox traffic more heavily, so the app's attempts to connect through Orbot can fail there. This is why Orbot can work on physical devices but fail inside modern AVD images.
Use a Generic x86_64 - Android (AOSP) system image, not Google Play.
Recommended AVD images:
- API 30 (Android 11) - AOSP x86_64
- API 29 (Android 10) - AOSP x86_64
- API 28 (Android 9) - AOSP x86_64
- API 23 (Android 6) - AOSP x86
Avoid these AVD image types:
- Google Play
- Google APIs
This app connects to a Verge Electrum server. Check the status of XVG Electrum servers here: https://1209k.com/bitcoin-eye/ele.php?chain=xvg
The send screen can resolve supported web3 names such as sunerok.wallet to Verge addresses.
- Resolution endpoint:
https://api.unstoppabledomains.com/resolve/domains/ - Verge record key:
crypto.XVG.address - Requests use the app's configured SOCKS proxy path on
127.0.0.1:9050
Install Android Studio: https://developer.android.com/sdk/installing/studio.html
Import vergexvr by selecting settings.gradle.
After import finishes, open the SDK Manager.
Install Android 16 / API 36 build tools, while compiling this project with SDK 35 as currently configured.
Make sure JDK 17 is installed before building. Oracle archive: https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
Then go to File > Project Structure > SDK Location and point the JDK path to that installation.
To work on ChromeOS Flex, download the image here: https://dl.google.com/chromeos-flex/images/latest.bin.zip
For device testing:
- On a physical phone, enable Developer Options
- Enable USB Debugging
- Plug the device in
- Press the green play button in Android Studio and choose the target device
Command line builds:
- Standard unsigned release APK:
./gradlew :wallet:assembleStandardRelease - Meta unsigned APK:
./gradlew :wallet:assembleMetaRelease - Wearables Meta unsigned APK:
./gradlew :wearablesMeta:assembleRelease
Generated APKs:
- Standard Android:
wallet/build/outputs/apk/standard/release/ - Meta:
wallet/build/outputs/apk/meta/release/ - Wearables Meta:
wearablesMeta/build/outputs/apk/release/
If you want to use the apps without the Play Store or Meta Store, open the project's GitHub Releases page and download the APK files you want.
Install order:
- Install
vergexvrfirst for the main phone wallet - Install
vergexvr-metaonly if you want the Meta headset version - Install
vergexvr-wearables-metaonly if you want the separate Meta wearables companion
Device notes:
vergexvris the main phone wallet appvergexvr-metais the Meta build variant of the wallet appvergexvr-wearables-metais a separate companion app, not the home-screen widget- the wearables companion reads wallet summary data from the phone wallet and must be signed with the same key as the phone wallet build
Simple install steps:
- On Android phones, download the APK, open it, and allow
Install unknown appsif Android asks - On Meta devices, first try downloading the APK and opening it directly on the device
- If direct install on a Meta device does not work, install Android
SDK Platform Toolson a computer from https://developer.android.com/tools/releases/platform-tools and useadb install -r <apk> - Launch the phone wallet at least once after install so it can initialize and start syncing
- If you install the wearables companion, keep the matching phone wallet installed on the same signing key
The repo now has a separate meta flavor with a metaRelease variant so Meta packaging can evolve independently from the normal Android / Google Play path.
Use this when you want to:
- keep Meta-only manifest or resource changes out of
src/main - generate a Meta-targeted unsigned APK for sideloading or store submission prep
- preserve the existing
debugandreleasevariants for standard Android distribution - keep room for broader Meta device branding beyond Quest-specific naming
- keep Meta-specific
minSdkand manifest rules separate from the standard Android release
Meta-only source set:
wallet/src/metaRelease/AndroidManifest.xmlwallet/src/metaRelease/res/...
For local Meta headset testing over USB:
- enable Developer Mode on the Quest
- connect the headset with a data-capable USB cable
- authorize USB debugging in-headset
- install a signed APK with
adb install -r <apk>
If you are using Android Studio's signing wizard, select the metaRelease variant when generating a signed APK for Meta.
The repo also includes a separate wearablesMeta Android app module intended for Meta AI glasses companion integrations.
Use this module when you want to:
- build Ray-Ban Meta / Oakley Meta companion functionality without coupling it to the Quest headset UI
- share wallet and account logic through
:core - keep Horizon OS windowing code inside
:walletand wearables session code inside a dedicated app target
Current module path:
wearablesMeta/
Example command line build:
./gradlew :wearablesMeta:assembleRelease
The Android workflow now publishes three unsigned APK artifacts on CI:
vergexvrfor the normal Android release APKvergexvr-metafor themetaReleaseAPKvergexvr-wearables-metafor the separatewearablesMetarelease APK
Note:
If you are attempting to build on a Lollipop emulator, use Android 5.x armeabi-v7a.
It will not build on an x86/x86_64 emulator there.
Original fork by Coinomi 2017 overhauled in 2017 to present by justinvforvendetta
.