SkillAgentSearch skills...

Satsigner

Privacy-first Bitcoin signer with complete UTXO control

Install / Use

/learn @satsigner/Satsigner
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Satsigner

Privacy-first Bitcoin signer with complete UTXO control

<img width="3508" height="2480" alt="Banner" src="https://github.com/user-attachments/assets/5690172b-17db-4d51-8033-9b7ed07bef50" />

Why work on this?

Satsigner is a comprehensive Bitcoin wallet application built for users who demand complete control over their Bitcoin. Built on the Bitcoin Development Kit (BDK), Satsigner provides native support for single-signature, multi-signature, and watch-only accounts across mainnet, testnet, and signet networks. Focused on user experience for everyday use. It also allows easy movements between Bitcoin layers, enhancing the utility of your sats.

Why contribute?

  • Help build a powerful native mobile Bitcoin signer management application
  • Contribute towards the integration, development and enhancement of Bitcoin UX design
  • Unlock coin insights via integrated onchain (privacy/provenance/economic) analyses and corresponding data visualization to help inform, encourage and automate better Bitcoin usage best-practices
  • Advance Bitcoin understanding through visual tools and Bitcoin-native terminology
  • Test market demand for bitcoin centric applications
  • Propagate open-source ethos
  • Build and support Bitcoin and related FOSS projects
  • Participate in Bitcoin history

Ethos/priorities/design philosophy

  • Bitcoin On Chain First: Full vertical support of all things sats with on chain as the safe layer of last resort
  • Sat denomination supremacy: Sats as the primary unit
  • Complete UTXO control: Full control over coin selection and spending
  • Privacy first: Emphasis on privacy-enhancing features and no tracking
  • Visual-native UI: Comprehensive visualization tools for all Bitcoin data
  • Bitcoin-native terminology: Using Bitcoin's true language (UTXOs, transactions, signers)
  • Security focused: PIN-protected encryption, seed dropping, multi-signature support
  • Open source: Fully auditable codebase with open-source dependencies only
  • User sovereignty: Complete control over keys, data, and privacy
  • Educational: Learn Bitcoin while using it with visual tools and explanations
  • Design inspiration: Builds upon powerful features from Sparrow, FullyNoded, and other brilliant open-source projects

Features

Core Bitcoin Features

  • Full UTXO Control: Visual bubble charts and detailed selection tools for complete UTXO management
  • Multi-Signature Support: M-of-N multisig wallets with sortedmulti descriptors and per-cosigner PSBT tracking
  • Account Types: Single-signature, multi-signature, and watch-only accounts
  • Script Versions: Support for all Bitcoin script types (P2PKH, P2SH-P2WPKH, P2WPKH, P2TR, P2WSH, P2SH-P2WSH, P2SH)
  • Network Support: Mainnet, testnet, and signet
  • Dual Backends: Electrum Protocol and Esplora API support
  • BIP329 Labeling: Comprehensive labeling system for transactions, addresses, and UTXOs
  • Advanced Transaction Building: Manual fee control, RBF, time-locks, and custom output configuration

Security & Privacy

  • PIN Protection: AES-256-CBC encryption with PIN-protected access
  • Seed Dropping: Remove mnemonics after key extraction for enhanced security
  • Duress PIN: Support for duress scenarios
  • Encrypted Storage: All sensitive data encrypted at rest
  • No Tracking: No third-party tracking or analytics
  • Open Source: Fully auditable codebase

Visualization & Analysis

  • UTXO Bubble Charts: Interactive visual UTXO selection
  • Sankey Diagrams: Transaction flow visualization
  • Transaction Charts: Visual transaction analysis
  • Fee Rate History: Mempool statistics and fee rate charts
  • Balance Evolution: Timeline charts showing balance changes
  • Network Statistics: Difficulty charts and blockchain explorer

Multi-Signature Workflow

  • Collaborative Signing: Per-cosigner PSBT tracking and combination
  • QR Code Seed Scanning: Air-gapped signing with seed QR codes
  • Signature Validation: Automatic threshold verification
  • Individual PSBT Export: Export per-cosigner signed PSBTs
  • Fingerprint Matching: Account association verification

Export & Import

  • Descriptors: Export/import output descriptors with checksum validation
  • Extended Public Keys: Export/import xpub/ypub/zpub/vpub with format conversion
  • BIP329 Labels: Import/export labels in JSON, JSONL, and CSV formats
  • PSBT Support: Full PSBT import/export with QR code and NFC support
  • Account Backup: Comprehensive backup and recovery options

Lightning Network & eCash

  • LND Integration: Connect to LND nodes via REST API
  • Lightning Payments: Create and pay Lightning invoices
  • eCash (Cashu): Private digital cash support with mint management
  • Token Operations: Receive, send, and manage eCash tokens

Nostr Integration

  • Label Synchronization: Decentralized label sync via Nostr DMs
  • Auto-Sync: Automatic label synchronization configuration
  • Relay Management: Add and manage Nostr relays
  • Trusted Devices: Manage trusted device list for secure sync

Explorer & Tools

  • Blockchain Explorer: View blocks, transactions, and network statistics
  • Currency Converter: Real-time fiat conversion with historical rates
  • Energy Converter: Bitcoin to energy unit conversions
  • Network Analysis: Difficulty charts and mining statistics

Developer Features

  • Storybook Integration: Component development in isolation
  • TypeScript: Full type safety throughout
  • Comprehensive Testing: Unit and integration tests
  • Open Source: MIT licensed, fully auditable codebase

Stack

Backend

  • Bitcoin Development Kit via RN-BDK - becoming reference Bitcoin dev tools
  • Blockstream Electrs - performant Bitcoin server interface/signer backend to bootstrap users who don't yet run their own node
  • Photon SDK - powerful mobile Bitcoin dev kit to build forgiving, easy backup and recovery, intuitive signers
  • Tor - private communications with your personal nodeserver/electrs

Frontend

Design/product inspiration + revered FOSS projects

  • Sparrow - very powerful and clean native Bitcoin signer management desktop app
  • FullyNoded - very powerful iOS app focused on remote full node management
  • BitFeed - beautiful, psychedelic block/transaction/timechain visualization
  • Mempool.space - beautiful block explorer and Bitcoin data visualizations
  • Zeus - pretty, increasingly powerful remote LN node management app

UI

<img width="1521" alt="image" src="https://user-images.githubusercontent.com/807505/186901157-c43ffea1-f38a-443a-b219-8886f67923a9.png">

Concepts

image UTXO selection

image Security

image Verification

image UTXO consumption

Dev Environment Setup

Prerequisites

  • Node.js (minimum version 22.4.0)
  • Yarn
npm install --global yarn

Install dependencies

Install the dependencies at the root of the repository

yarn install

Set up Android environment

Set up Android Studio as usual. Otherwise, if you are using other IDE, then install the packages android-sdk, android-sdk-build-tools, android-sdk-platform-tools, and android-tools.

Once installed, set the environment variable ANDROID_HOME to point to the location where the packages were installed, and update your PATH:

export ANDROID_HOME=/opt/android-sdk
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/emulator

On some Linux systems, ANDROID_HOME may be /opt/android-sdk. On Windows, it may be /Users/username/Library/Android/sdk. Set it accordingly.

Install Java JDK 8 in order to download the images from the upstream. Also, make sure to enable JDK 8 before running sdkmanager commands, because they seem to work only with this version. To enable it on arch-based systems, run:

sudo archlinux-java set java-8-openjdk

This will make JDK 8 the default Java environment. We can then proceed to using sdkmanager.

You can list the images with the following command:

sdkmanager --list

Select the SDK that fits your platform (x86_64, arm64, or other). Then install the image with the command:

sdkmanager --install 'system-images;android-34;default;x86_64'

Of course, replace system-images;android-34;default;arm64-v8a with the desired image name. This examples uses the default image for Android SDK 34 for the x86_64 (intel CPU) platform.

Then, create an emulator device:

avdmanager create avd -n myemulator -k 'system-images;android-34;default;x86_64'

Replace myemulator with the desired name for the emulator device and replace system-images;android-34;default;x86_64 with the image downloaded earlier.

Once the device has been created, switch your Java environment to JDK 17 in order to run and build this application. If you choose not use a device emulator but u

View on GitHub
GitHub Stars47
CategoryDevelopment
Updated7d ago
Forks22

Languages

TypeScript

Security Score

90/100

Audited on Mar 28, 2026

No findings