The Problem

Bitcoin wallets typically force a tradeoff: hot wallets are convenient but vulnerable to a single point of failure (seed phrase theft), while hardware wallets and multisig setups add friction and complexity. BoldWallet addresses this by using Threshold Signature Scheme (TSS) to distribute key material across multiple devices, eliminating seed phrases entirely while keeping signing practical.

What This Does

BoldWallet is a React Native mobile wallet (Android focus, with iOS support per README) that implements 2-of-2 or 2-of-3 threshold signatures across user devices. The core logic lives in BBMTLib/, a Go library that handles TSS operations (BBMTLib/tss/tss.go, mpc.go), PSBT signing (BBMTLib/tss/psbt.go), and peer communication. The nostrtransport/ subdirectory implements encrypted P2P messaging over Nostr relays, while local WiFi/hotspot pairing is also supported.

The Android app (android/) bridges to the Go library via a native module (BBMTLibNativeModule.kt) and prebuilt binaries (android/app/libs/tss.aar, tss-sources.jar). The UI layer is standard React Native (App.tsx), with assets and icons in assets/. The BBMTLib/scripts/ directory contains shell and Go utilities for key generation, signing, and running a local relay for testing.

How To Use It

The README documents two Android build paths: a Docker-based auto-builder (via the Dockerfile) and a manual Gradle build. The repo includes android/gradlew, android/app/build.gradle, and Gemfile (for CocoaPods, iOS). The Go library has its own go.mod and build.sh. For local development of the TSS layer, BBMTLib/scripts/test-all.sh and test-ci-local.sh exist, with CI configured in .github/workflows/bbmtlib-test.yml.

Build Android APK via Docker (per README)

Docker scripts are in docker/scripts/ - see docker/README.md

Manual Android build

cd android ./gradlew assembleRelease

Test the Go TSS library

cd BBMTLib ./scripts/test-all.sh

Configuration is limited: the app has a networksecurityconfig.xml for Android networking, and gradle.properties (with a Docker-specific variant gradle.properties.docker-linux). No environment variables or external API keys are required for the TSS core; Mempool.space is used for transaction broadcasting and is configurable in-app.

Real-World Use

A user installs BoldWallet on two phones. Phone A generates a key share, Phone B generates another. They pair via local WiFi (offline) or Nostr relay (remote). To spend, both devices must sign the same PSBT—one device creates it, the other approves. The wallet also imports/exports PSBTs for use with Sparrow or Electrum, so a user can manage a BoldWallet-held wallet from a desktop tool and broadcast via their own Mempool instance.

Code Health & Issues

High - Prebuilt binaries in repo: android/app/libs/tss.aar and tss-sources.jar are committed. These are security-critical (key generation/signing) and should be built reproducibly from source, not trusted as opaque artifacts. Med - Debug keystore committed: android/app/debug.keystore is present. Fine for development, but a risk if anyone mistakenly signs a release with it. Med - Limited test coverage: 8 test files for a project this size (Go TSS, React Native UI, Android native modules) is thin. The tests/App.test.tsx only covers basic UI rendering. Med - No iOS build config visible: The repo has no ios/ directory, despite README referencing iOS builds. Either iOS is handled elsewhere or the claim is aspirational. Low - android/mapping.txt committed: ProGuard mapping files are build artifacts and shouldn't be in version control. Low - No explicit dependency pinning for Go: go.mod exists but no go.sum is listed in the file structure, which is unusual and a supply-chain concern.

The Bottom Line

BoldWallet is a serious attempt at a seedless, multi-device Bitcoin wallet with a real TSS implementation in Go and a functional Android app. The architecture is sound, and the offline pairing capability is a differentiator. The main reservations are the committed prebuilt binaries and thin test coverage—both addressable with CI build steps and more tests. Suitable for Bitcoin users who want multi-device security without hardware wallets, and for developers interested in TSS wallet architecture.