Skip to content

noncelab/coconut_wallet

Repository files navigation

Coconut Wallet

GitHub tag License Flutter Platform

Coconut Wallet Logo

App Store   Google Play

Watch-only Bitcoin Wallet 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 Wallet is a watch-only Bitcoin wallet designed to work with Coconut Vault. By operating the vault and wallet on two physically separate devices, it implements a secure air-gapped transaction signing architecture where private keys never touch an online device.

Features

No hot wallet. Watch-only only.

  • Supported hardware wallets — Keystone 3 Pro, Seedsigner, Jade, Coldcard, Krux
  • Air-gapped signing — Private keys never leave the offline device
  • SegWit — Native SegWit (Bech32) address support
  • Multisig — Multi-signature wallet support
  • RBF (Replace-By-Fee) — Fee bumping for unconfirmed transactions
  • CPFP (Child-Pays-For-Parent) — Fee acceleration via child transactions
  • Batch sending — Send to multiple recipients in a single transaction
  • UTXO management — Coin control with UTXO locking and tagging
  • PSBT — BIP-174 Partially Signed Bitcoin Transactions
  • Draft transactions — Save transactions as drafts for later signing or sending
  • Multilingual — 한국어, English, 日本語, Español

Architecture

      OFFLINE                                        ONLINE
┌─────────────────┐          QR Code         ┌─────────────────┐
│  Coconut Vault  │ ◄──────────────────────► │ Coconut Wallet  │
│                 │                          │                 │
│  · Key storage  │                          │  · Balance sync │
│  · Tx signing   │                          │  · Tx creation  │
│                 │                          │  · Broadcasting │
└─────────────────┘                          └─────────────────┘

The wallet stays online to keep your wallet data up to date and broadcasts signed transactions to the Bitcoin network.

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_wallet.git
cd coconut_wallet
flutter pub get

Code Generation

dart run build_runner build --delete-conflicting-outputs
dart run realm generate
flutter pub run slang

If Realm generation fails, run dart run build_runner clean first.

Environment Variables

This project requires environment variables configured via flutter_dotenv. To obtain the env file for development, please contact us at hello@noncelab.com.

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

Flavors

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

IDE Configuration

Android Studio / IntelliJ

Run → Edit Configurations... → Set Build Flavor to regtest

VS Code.vscode/launch.json:

{
  "name": "coconut_wallet (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