Not a light client. Not SPV. Not a front end to somebody else's server. The actual bitcoind binary, cross-compiled for arm64, running natively on your phone. Your keys. Your node. Your rules.
The app currently shows a small number of ads to fund development — here's the plan to remove them.
Every "node-connected" wallet still talks to a server somebody else controls. This app removes that server from the equation entirely.
They hold the keys. You have an IOU. If they freeze, you wait — or worse.
SPV and Electrum-style clients trust someone else's node to tell them the truth about balances and history.
The full node is the app. Every block is validated by Bitcoin Core running on your own hardware. Verify, don't trust.
Our recovery team tackles forgotten passphrases across the whole legacy-wallet graveyard — including the weak-RNG era that makes many "impossible" cases possible.
Bitcoin Core wallet.dat, Blockchain.info wallet.aes.json, MyEtherWallet & 2014 Ethereum presale, MetaMask, Electrum, Dogechain, Litecoin-era web wallets, BIP38, MultiBit/Armory, hardware-seed passphrases.
JavaScript wallets created 2011–2015 used a flawed browser RNG. Those keys are weaker than they were meant to be — which can make recovery realistic even with a forgotten password.
Nothing ever needs to leave your hands. Work happens on what you choose to share, under NDA, with your own security counsel welcome. Fee: 35% on success — $0 if we fail.
Everything runs on-device. No trusted backend, no cloud, no accounts.
Bitcoin Core 30.3 compiled for arm64 runs as a child process. Your phone joins the network as a first-class citizen.

Keys are generated and stored on the device, encrypted by Bitcoin Core with your passphrase and guarded by the Android Keystore.

Already run a node at home or on a VPS? Point the app at it over Tor. One RPC client, two transports — every screen works identically against either.

A cyberpunk HUD built for people who actually read the output.










One RpcClient interface, two transports.
The UI never knows — or cares — whether the node is in your hand or across the world.
┌─────────────────────────────────────────────┐ │ Jetpack Compose UI (Kotlin) │ │ dashboard · node · wallet · console · … │ └──────────────────┬──────────────────────────┘ │ ViewModels · Hilt DI · Room ┌──────────────────▼──────────────────────────┐ │ Core layer │ │ RpcClient ──► transport A: 127.0.0.1 │ │ └──► transport B: Tor (Orbot) │ └──────────────────┬──────────────────────────┘ │ JSON-RPC ┌──────────────────▼──────────────────────────┐ │ libbitcoind.so — Bitcoin Core 30.3 │ │ real bitcoind · arm64 · child process │ │ P2P peers · full validation · wallet │ └─────────────────────────────────────────────┘
| Layer | Technology |
|---|---|
| Language | Kotlin 2.1 · JVM 17 |
| UI | Jetpack Compose · Material 3 · custom dark theme |
| DI | Hilt 2.56 (Dagger) |
| Storage | Room · DataStore |
| Network | OkHttp · kotlinx.serialization |
| Background | Foreground service · WorkManager |
| Security | AndroidX Biometric · Android Keystore · screenshot blocking |
| Node payload | Bitcoin Core 30.3 · arm64-v8a · unpatched source |
| Build | Gradle 8.9 · pinned version catalog · R8 · Play App Signing |
Tools from the same workshop — built for the people who verify.
A GPU vanity-address engine for the Mac, written from scratch in Swift and Metal. Runs on Apple silicon (M-series) and the Intel / AMD GPUs in T2 Macs — where CUDA-only tools can't. Every hit is re-derived on the CPU before it appears. Zero dependencies. MIT.
ECDSA signature vulnerability analyzer. Extracts (r, s, z, pubkey) tuples from raw Bitcoin transactions and runs nonce-reuse attacks — GPU-accelerated through Metal on Apple Silicon and T2 Macs, with a native desktop GUI. Fork of oritwoen/vusi, MIT.
Address Transaction Query Utility — a local, dependency-free web app that finds every spent transaction of a Bitcoin address and streams them into one combined JSON file. The data-acquisition front-end to vusi. Python stdlib only. MIT.
The self-custody wallet on this site, the recovery tooling behind our service, and the engines that power both — all built in-house, all documented. Follow the GitHub for what ships next.
The complete privacy policy ships in the repo. Short version:
No crash reporting, no update checks, no advertising IDs, no tracking SDKs. There is nothing to opt out of.
Generated on-device, encrypted by Bitcoin Core with your passphrase, further protected by the Android Keystore.
The app has no backend. There is nobody to subpoena, nobody to breach, nobody to trust.
Remote node connections go over Tor via Orbot. P2P traffic speaks the Bitcoin protocol, nothing more.
Optional mode stops screenshots, screen recording and the app-switcher preview.
The optional Blockbook fallback warns you in plain language that it links your addresses to your IP. Permanently.
Yes. The app ships the actual bitcoind binary — Bitcoin Core 30.3, cross-compiled for arm64 — and runs it as a child process on your phone. It connects to the P2P network, downloads and validates blocks against consensus rules, and serves wallet RPCs. It is not SPV, not Neutrino, not a wrapper around someone else's server.
You can verify the node is real: open the RPC console and run getblockchaininfo.
Your call. The node is pruned — you choose a storage budget from 15 to 50 GB. It still downloads and verifies every block ever mined (~700 GB of traffic processed) but only keeps the most recent blocks on disk.
In a hurry? Fast sync loads a UTXO snapshot (~11 GB) and the wallet is usable within minutes while history verifies in the background.
Initial sync is the heavy part. After the node catches up, idle resource use drops dramatically. You can stop the node any time — from the app or from the persistent notification — and a Stop button is always one tap away on the Node screen.
On your device, in app-private storage. Wallet files are encrypted by Bitcoin Core with your passphrase; the Android Keystore adds device-level protection. There is no cloud backup — that is a feature, not a bug. Use Wallet Tools to export a backup file and store it wherever you control.
Yes. Point the app at any Bitcoin Core node you control — at home, on a VPS, anywhere. Connections go over Tor (via Orbot) so your phone never reveals its IP to the node. Every screen works identically against a local or remote node.
Mainnet, testnet3, testnet4, signet and regtest. Balances display in BTC, mBTC, bits or sats.
Because it matters: pruning limits how much chain data is stored, not how much is verified. The app explains this on the storage settings screen — a pruned node still validates the entire blockchain, it just doesn't keep every historical block on disk.
Self Custody Bitcoin Wallet is on Google Play. No subscription, no account — and nothing to sign into. A few unobtrusive ads currently fund development, with the goal of removing them entirely.
Android 9.0+ · arm64 device · 15–50 GB storage budget recommended
Fintech, VTU, e-commerce, delivery, Islamic apps — every industry, same engineering standard. Try the live interactive demos right in your browser.