Offline Bitcoin Signer for iOS & Android
Try it risk-free! A regtest version is available on both app stores, allowing you to practice air-gapped transactions with test bitcoin — no real funds required.
App Store · Google Play
Coconut Vault is an offline signer that runs only when the device is disconnected from networks. You can use keys in signing-only mode or secure storage mode. The app does not run when the device is connected to any network (Wi‑Fi, cellular, Bluetooth) or when developer mode is enabled.
- Wallet creation — Create and restore Bitcoin wallets; no limit on how many you can have
- Mode selection — Use secure storage mode or signing-only mode depending on how you want to manage keys
- Secure key storage — Use the device Secure Module (e.g. Secure Enclave, Strong Box) for stronger key protection
- Multisig made simple — Multisig wallet support with a focus on usability
- Supported hardware wallets - Keystone 3 Pro, Seedsigner, Jade, Coldcard, Krux
- Signing — Sign transactions offline; keys never leave the device
- Connection guard — Detects external connectivity and immediately blocks use
- Risk detection — Detects rooting (Android) and jailbreak (iOS) and warns you; you can still choose to continue
To practice sending bitcoin, install Coconut Wallet on another device and follow the tutorial to complete the flow step by step.
OFFLINE ONLINE
┌─────────────────┐ QR Code ┌─────────────────┐
│ Coconut Vault │ ◄──────────────────────► │ Coconut Wallet │
│ │ │ │
│ · Key storage │ │ · Balance sync │
│ · Tx signing │ │ · Tx creation │
│ │ │ · Broadcasting │
└─────────────────┘ └─────────────────┘
The vault stays offline; private keys never leave the device. Signed transactions are passed via QR codes to the wallet for broadcasting.
| Project | Description |
|---|---|
| coconut_lib | |
| coconut_vault | |
| coconut_wallet | |
| coconut_design_system |
- Flutter SDK (3.29+)
- Dart 3.7+
- Android Studio or Xcode
flutter --versiongit clone https://github.com/noncelab/coconut_vault.git
cd coconut_vault
flutter pub getdart run build_runner clean && dart run build_runner build --delete-conflicting-outputs && dart run slangGenerate a local keystore for Android builds:
keytool -genkey -v -keystore android/app/local.jks \
-storepass android -alias local -keypass android \
-keyalg RSA -keysize 2048 -validity 10000 \
-dname "CN=Local Dev,O=Coconut,C=KR"Create key_regtest.properties and key_mainnet.properties under the android/ directory:
storePassword=android
keyPassword=android
keyAlias=local
storeFile=../app/local.jks# Debug
flutter run --flavor regtest
# Release
flutter run --release --flavor regtestDebug mode only checks that network and Bluetooth are disabled; release mode also requires developer options to be turned off on the device.
| Flavor | Description |
|---|---|
mainnet |
Real Bitcoin mainnet — production release distributed via app stores |
regtest |
Local testnet — for learning and development with Coconut Wallet |
Android Studio / IntelliJ
Run → Edit Configurations... → Set Build Flavor to regtest
VS Code — .vscode/launch.json:
{
"name": "coconut_vault (debug)",
"request": "launch",
"type": "dart",
"args": ["--flavor", "regtest"]
}
⚠️ Mainnet Self-Build Disclaimer: If you build and run the app from source on mainnet outside of official distribution channels (App Store / Google Play), we assume no responsibility for any loss of funds or errors that may occur. Please useregtestmode for development and testing.
Please refer to CONTRIBUTING.md for details.
- Issues — Bug reports and feature requests
- Pull Requests — New features, documentation improvements, and bug fixes
If you discover a critical security vulnerability, please report it directly to hello@noncelab.com instead of opening a public issue.
X11 Consortium License (identical to MIT, with an additional restriction that the copyright holder's name may not be used for promotional purposes).
See LICENSE for details.
All third-party libraries used in this project are licensed under MIT, BSD, or Apache. See the full list for details.
| Website | coconut.onl / powbitcoiner.com |
| X (Twitter) | @CoconutWallet 🌐 / @Coconut 🇰🇷 |
| Discord | Join our Discord |
| Documentation | Tutorials & Docs |
| GitHub | github.com/noncelab |
| Company Site | NonceLab |

