Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/satsigner/satsigner/llms.txt

Use this file to discover all available pages before exploring further.

Core Bitcoin features

SatSigner provides comprehensive Bitcoin functionality built on the Bitcoin Development Kit.

Full UTXO control

Complete visibility and control over every satoshi you own:

Visual bubble charts

Interactive UTXO visualization showing size, age, and relationships

Manual coin selection

Choose exactly which UTXOs to spend in every transaction

Privacy algorithms

STONEWALL coin selection for enhanced transaction privacy

UTXO analytics

View UTXO history, labels, provenance, and privacy scores

Advanced coin selection algorithms

SatSigner implements multiple UTXO selection strategies:
Optimal UTXO selection that minimizes change outputs and fees. Searches for exact match combinations up to 1 million iterations.
const result = branchAndBoundUtxoSelection(
  utxos,
  targetAmount,
  feeRate,
  {
    dustThreshold: 546,
    inputSize: 148,
    changeOutputSize: 34
  }
);
Starts with largest UTXOs to minimize input count and transaction size. Falls back when BnB cannot find optimal solution.
Creates transactions that mimic CoinJoin structure with multiple inputs and outputs for enhanced privacy. Optimizes for privacy score.
const { inputs, outputs, privacyScore } = selectStonewallUtxos(
  utxos,
  targetAmount,
  feeRate,
  {
    minInputs: 4,
    maxInputs: 10,
    minOutputs: 2,
    maxOutputs: 4,
    maxAttempts: 1000
  }
);
Privacy score considers:
  • Number of inputs and outputs
  • Variety of script types used
  • Balance of change output values
  • Avoiding amount correlation with inputs

Multi-signature support

Full M-of-N multisig functionality for collaborative custody:
1

Create multisig wallet

Configure M-of-N threshold (e.g., 2-of-3) with sortedmulti descriptors for deterministic key ordering.
2

Distribute PSBTs

Export Partially Signed Bitcoin Transactions (PSBTs) via QR code, NFC, or file for each cosigner.
3

Collect signatures

Track signature status per cosigner with fingerprint matching and automatic threshold verification.
4

Broadcast transaction

Combine signed PSBTs and broadcast when threshold is met.
SatSigner supports air-gapped signing with seed QR codes for enhanced security in multisig setups.

Account types

Three account types for different use cases:
Full control with one private key:
  • Generate new mnemonic (12, 15, 18, 21, or 24 words)
  • Import existing mnemonic with optional passphrase
  • Support for all BIP39 word lists
  • Custom derivation paths
  • All script types (P2PKH, P2WPKH, P2TR, etc.)

Script versions

Support for all Bitcoin script types:
Script TypeDescriptionUse Case
P2PKHLegacy Pay-to-PubKey-HashMaximum compatibility
P2SH-P2WPKHNested SegWitSegWit with legacy support
P2WPKHNative SegWitLower fees, modern standard
P2TRTaprootPrivacy and advanced scripts
P2WSHWitness Script HashNative SegWit multisig
P2SH-P2WSHNested WSHMultisig with legacy support
P2SHScript HashGeneral script support

Network support

Connect to multiple Bitcoin networks:
  • Mainnet: Production Bitcoin with real value
  • Testnet: Public test network for development
  • Signet: Controlled test network with signature-based block production

Dual backends

Choose your preferred backend for blockchain data:

Electrum Protocol

Connect to any Electrum server (Electrs, Fulcrum, etc.) for decentralized backend connectivity

Esplora API

REST API interface for blockchain data with broad compatibility
Both backends support Tor for private communications with your node.

BIP329 labeling

Comprehensive labeling system for all Bitcoin entities:
type Label = {
  type: 'tx' | 'addr' | 'pubkey' | 'input' | 'output' | 'xpub';
  ref: string;        // Transaction ID, address, etc.
  label: string;      // Your custom label
  
  // Optional metadata
  fee?: number;
  fmv?: Prices;       // Fair market value at time
  height?: number;    // Block height
  value?: number;     // Amount in sats
  spendable?: boolean;
};
Export and import labels in multiple formats:
  • JSON: Standard JSON array
  • JSONL: JSON Lines (one label per line)
  • CSV: Spreadsheet-compatible format
Labels sync across devices via Nostr for decentralized backup and synchronization.

Advanced transaction building

Complete control over transaction construction:
Set custom fee rates in sat/vB or choose from mempool-based estimates (high/medium/low priority).
Create transactions with RBF enabled for fee bumping. Replace stuck transactions with higher fees.
Set nLockTime for delayed transaction validity or nSequence for relative time-locks.
Add multiple recipients, OP_RETURN data outputs, or custom scripts in a single transaction.
Specify change address or enable automatic change address generation with BIP32 derivation.

Security and privacy

SatSigner prioritizes your security and privacy:

PIN protection

6-digit PIN with strong encryption:
// AES-256-CBC encryption with PBKDF2 key derivation
const encryptionKey = await pbkdf2Encrypt(
  pin,
  salt,
  10_000,    // iterations
  256,       // key length
  'sha256'
);

const encrypted = await aesEncrypt(
  sensitiveData,
  encryptionKey,
  initializationVector
);

Seed dropping

Remove mnemonics after key extraction for enhanced security:
Seed dropping is permanent. Make sure you have secure backups before enabling this feature.
  • Extract extended private keys from mnemonic
  • Remove mnemonic from device storage
  • Continue using wallet with extracted keys
  • Reduces attack surface if device is compromised

Duress PIN

Special PIN that opens a separate wallet:
  • Configure alternate PIN in settings
  • Opens decoy wallet under duress
  • Protects main wallet from coercion
  • Both wallets function independently

Encrypted storage

All sensitive data encrypted at rest:
  • Mnemonics encrypted with PIN-derived key
  • Private keys never stored in plaintext
  • Descriptors encrypted with AES-256-CBC
  • Secure MMKV storage for persistent data

No tracking

Zero telemetry and analytics:
  • No third-party tracking libraries
  • No crash reporting without consent
  • No usage statistics collection
  • All network requests under your control

Open source

Fully auditable codebase:
  • MIT licensed
  • All dependencies are open source
  • No closed-source libraries for critical functions
  • Community security reviews welcome

Visualization and analysis

Understand your Bitcoin with visual tools:

UTXO bubble charts

Interactive bubble visualization:
  • Bubble size represents UTXO value
  • Color coding for UTXO age
  • Click to select for spending
  • Hover for detailed information
  • Privacy score indicators

Sankey diagrams

Transaction flow visualization:
  • Input → Transaction → Output flows
  • Value preservation visualization
  • Change output identification
  • Fee allocation display

Transaction charts

Visual transaction analysis:
  • Input and output breakdown
  • Fee rate comparison
  • Block confirmation timeline
  • Transaction size metrics

Fee rate history

Mempool statistics and trends:
  • Current mempool congestion
  • Fee rate distribution
  • Block space demand
  • Optimal fee recommendations

Balance evolution

Timeline charts showing:
  • Balance changes over time
  • Receive and send patterns
  • UTXO consolidation events
  • Net worth trajectory

Network statistics

  • Difficulty charts and adjustments
  • Hash rate trends
  • Block time distribution
  • Network health metrics

Export and import

Comprehensive backup and portability:

Descriptors

Export wallet descriptors with checksum validation:
wpkh([d34db33f/84h/0h/0h]xpub6BgBgs...L6bJTXH/0/*)#checksum
Compatible with Bitcoin Core and other descriptor-based wallets.

BIP329 labels

Import and export labels in:
  • JSON: Standard array format
  • JSONL: One label per line
  • CSV: Spreadsheet compatible

PSBT support

Full PSBT (Partially Signed Bitcoin Transaction) support:
  • Import PSBTs via QR code, NFC, or file
  • Sign with available keys
  • Export signed PSBTs
  • Combine multiple signed PSBTs
  • Broadcast when complete

Account backup

Comprehensive backup options:
  • Export complete account configuration
  • Include or exclude sensitive keys
  • Encrypted backup files
  • QR code backup for air-gapped storage

Lightning Network and eCash

Extend Bitcoin functionality beyond layer 1:

LND integration

Connect to your LND node:
type LNDConfig = {
  url: string;           // LND REST API endpoint
  macaroon: string;      // Admin macaroon (hex)
  certificate?: string;  // Optional TLS certificate
};
Features:
  • Create and decode Lightning invoices
  • Pay Lightning invoices
  • View channel balances and status
  • Monitor node information
  • Channel management

Lightning payments

  • Generate invoices with amount and description
  • Pay BOLT11 invoices
  • Real-time payment status
  • Fee estimation
  • Payment history

eCash (Cashu)

Private digital cash:
  • Connect to Cashu mints
  • Mint discovery and selection
  • Receive eCash tokens
  • Send tokens to others
  • Melt tokens back to Bitcoin
  • Multi-mint support

Token operations

  • Import tokens from text or QR
  • Export tokens for sharing
  • Token proof management
  • Balance across multiple mints

Nostr integration

Decentralized label synchronization:

Label synchronization

1

Generate Nostr keys

Create or import Nostr keypair (nsec/npub) for encrypted communications.
2

Configure relays

Add Nostr relays for label synchronization (wss://relay.damus.io, etc.).
3

Enable auto-sync

Configure automatic label synchronization on wallet changes.
4

Manage trusted devices

Add other devices by npub to sync labels via encrypted Nostr DMs.

Auto-sync

  • Automatic sync on label changes
  • Configurable sync interval
  • Conflict resolution
  • Encrypted message transport

Relay management

  • Add/remove Nostr relays
  • Test relay connectivity
  • Fallback relay configuration
  • Custom relay endpoints

Trusted devices

  • Whitelist devices by npub
  • Revoke device access
  • View sync history
  • Per-device permissions

Explorer and tools

Built-in utilities for Bitcoin interaction:

Blockchain explorer

  • View block details and transactions
  • Search by block height, hash, or txid
  • Transaction confirmation tracking
  • Address balance lookup
  • Network statistics dashboard

Currency converter

  • Real-time fiat conversion (USD, EUR, etc.)
  • Historical exchange rates
  • Multiple fiat currency support
  • Custom exchange rate sources

Energy converter

Bitcoin to energy unit conversions:
  • Satoshis to kilowatt-hours
  • Bitcoin energy cost calculator
  • Network energy consumption metrics

Network analysis

  • Difficulty adjustment predictions
  • Mining statistics
  • Block interval analysis
  • Network health indicators

Developer features

Built for developers and contributors:

Storybook integration

Component development in isolation:
yarn storybook
  • Visual component testing
  • Props exploration
  • State manipulation
  • Responsive design testing

TypeScript

Full type safety:
  • Strong typing throughout codebase
  • Type definitions for all models
  • IntelliSense support
  • Compile-time error checking

Comprehensive testing

  • Unit tests with Jest
  • Integration tests
  • UTXO selection algorithm tests
  • BIP329 import/export tests
  • Cryptographic function tests

Open source

MIT licensed and community-driven:

Next steps

Explore specific features in detail:

UTXO control

Deep dive into UTXO management

Multi-signature

Learn about multisig workflows

Privacy tools

Enhance transaction privacy

Lightning Network

Connect to Lightning

Security

Understand security features

Developer guide

Contribute to SatSigner