Skip to content

noncelab/coconut_vault

Repository files navigation

Coconut Vault

GitHub tag License Flutter Platform

Coconut Vault Logo

App Store   Google Play

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.

Features

  • 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.

Architecture

      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.

Coconut Projects

Project Description
coconut_lib pub — Bitcoin wallet development library
coconut_vault tag — Offline signer
coconut_wallet tag — Watch-only wallet
coconut_design_system tag — Design System

Build & Run

Prerequisites

  • Flutter SDK (3.29+)
  • Dart 3.7+
  • Android Studio or Xcode
flutter --version

Clone & Install Dependencies

git clone https://github.com/noncelab/coconut_vault.git
cd coconut_vault
flutter pub get

Code Generation

dart run build_runner clean && dart run build_runner build --delete-conflicting-outputs && dart run slang

Android Keystore Setup

Generate 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

Run

# Debug
flutter run --flavor regtest

# Release
flutter run --release --flavor regtest

Debug mode only checks that network and Bluetooth are disabled; release mode also requires developer options to be turned off on the device.

Flavors

Flavor Description
mainnet Real Bitcoin mainnet — production release distributed via app stores
regtest Local testnet — for learning and development with Coconut Wallet

IDE Configuration

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 use regtest mode for development and testing.

Contributing

Please refer to CONTRIBUTING.md for details.

  • Issues — Bug reports and feature requests
  • Pull Requests — New features, documentation improvements, and bug fixes

Responsible Disclosure

If you discover a critical security vulnerability, please report it directly to hello@noncelab.com instead of opening a public issue.

License

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.

Dependencies

All third-party libraries used in this project are licensed under MIT, BSD, or Apache. See the full list for details.

Community & Links

Website coconut.onl / powbitcoiner.com
X (Twitter) @CoconutWallet 🌐 / @Coconut 🇰🇷
Discord Join our Discord
Documentation Tutorials & Docs
GitHub github.com/noncelab
Company Site NonceLab

Coconut Logo

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors