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.

Design philosophy

SatSigner is built on a foundation of core principles that guide every design and implementation decision.

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 - the true measure of Bitcoin wealth

Complete UTXO control

Full control over coin selection and spending at the UTXO level

Privacy first

Emphasis on privacy-enhancing features with no tracking whatsoever

Visual-native UI

Comprehensive visualization tools for all Bitcoin data and operations

Bitcoin-native terminology

Using Bitcoin’s true language: UTXOs, transactions, signers, sats

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

Bitcoin on-chain first

SatSigner treats Bitcoin’s base layer as the safe layer of last resort. While we support Lightning Network and eCash for everyday transactions, the focus is always on:

Full UTXO sovereignty

Every satoshi you own exists as a UTXO on the Bitcoin blockchain. SatSigner gives you complete visibility:
A UTXO (Unspent Transaction Output) is the fundamental unit of Bitcoin ownership. When you “own Bitcoin,” you actually own one or more UTXOs that you can spend with your private keys.Think of UTXOs like physical coins in your pocket - each has a specific value and history. Unlike a bank account balance, Bitcoin isn’t a single number - it’s a collection of distinct coins (UTXOs) that you control.
Complete UTXO control enables:
  • Privacy: Choose which coins to spend to avoid linking transactions
  • Fee optimization: Select specific UTXOs to minimize transaction size and fees
  • Coin history: Avoid spending UTXOs with undesirable provenance
  • Strategic consolidation: Merge small UTXOs when fees are low
  • Advanced features: Enable CoinJoin, payjoin, and other privacy techniques

Visual UTXO management

SatSigner presents your UTXOs as interactive bubble charts:
// Each UTXO is rendered as a bubble
<BubbleChart
  data={utxos.map(utxo => ({
    value: utxo.value,        // Determines bubble size
    label: utxo.label,        // Display name
    txid: utxo.txid,          // Transaction ID
    vout: utxo.vout,          // Output index
    confirmations: utxo.confirmations,
    scriptType: utxo.scriptType
  }))}
  onClick={(utxo) => selectForSpending(utxo)}
/>
Why bubbles?
  • Size represents value (larger bubbles = more sats)
  • Visual clustering shows UTXO relationships
  • Color coding indicates age and status
  • Interactive selection for spending
  • Intuitive for both beginners and experts

Sat denomination supremacy

SatSigner uses satoshis (sats) as the primary unit of account:
1 Bitcoin = 100,000,000 satoshis (sats)

Why sats, not BTC?

  • No decimal points for most transactions
  • Whole numbers are easier to understand
  • Better for everyday spending amounts
  • Matches how fiat currencies work
SatSigner displays all amounts in sats by default, with optional BTC and fiat conversions.

Privacy first

SatSigner is designed for users who value financial privacy:

No surveillance

Many Bitcoin wallets track user behavior and share data with third parties. SatSigner does not.
Zero telemetry:
  • No analytics libraries
  • No crash reporting (unless you opt-in)
  • No usage statistics
  • No IP address logging
  • No transaction tracking
  • No address clustering

Privacy-enhancing features

Creates transactions that mimic CoinJoin structure without requiring coordination:
const { inputs, outputs, privacyScore } = selectStonewallUtxos(
  utxos,
  targetAmount,
  feeRate,
  {
    minInputs: 4,      // Multiple inputs obscure which are "real"
    maxInputs: 10,
    minOutputs: 2,     // Multiple outputs hide the recipient
    maxOutputs: 4
  }
);
How it works:
  1. Uses 4+ inputs instead of minimum needed
  2. Creates 2+ change outputs with varying amounts
  3. Avoids round numbers that reveal intent
  4. Mixes script types when possible
  5. Calculates privacy score (0-100)
Result: Transaction looks like it could be a CoinJoin from multiple parties.
Connect to your backend (Electrum/Esplora) over Tor:
  • Hide your IP address from network observers
  • Prevent linking your identity to Bitcoin addresses
  • Protect against network-level surveillance
  • Connect to .onion backend services
Choose exactly which UTXOs to spend:
  • Avoid spending linked UTXOs together
  • Isolate different identity buckets
  • Prevent address reuse detection
  • Maintain transaction history separation
Comprehensive labeling without blockchain analysis:
  • Label transactions, addresses, and UTXOs locally
  • Export/import labels in standard format
  • Sync labels via encrypted Nostr messages
  • Never share labels with third parties

Encrypted storage

All sensitive data is encrypted at rest:
// PBKDF2 key derivation from PIN
const encryptionKey = await pbkdf2Encrypt(
  pin,
  salt,
  10_000,        // iterations (protects against brute force)
  256,           // key length in bits
  'sha256'       // hash function
);

// AES-256-CBC encryption
const encryptedMnemonic = await aesEncrypt(
  mnemonic,
  encryptionKey,
  iv              // initialization vector
);
What’s encrypted:
  • Mnemonic seed phrases
  • Private keys and extended keys
  • Output descriptors
  • PIN hash (double SHA256)
  • Account configurations
  • Transaction labels

Visual-native UI

SatSigner makes complex Bitcoin operations understandable through visualization:

Interactive visualizations

UTXO bubble charts

Visual representation of your coin collection with size, age, and selection

Sankey diagrams

Transaction flow visualization showing inputs → outputs and fee allocation

Balance evolution

Timeline charts showing balance changes, receives, and sends over time

Fee rate history

Mempool congestion and fee rate trends for optimal fee selection

Network statistics

Difficulty adjustments, hash rate, and network health metrics

Transaction analysis

Visual breakdown of inputs, outputs, fees, and transaction structure

Why visualization matters

Bitcoin’s UTXO model is fundamentally different from bank accounts. Visual tools help users understand this model intuitively.
  • Reduces cognitive load: Charts are faster to process than tables
  • Reveals patterns: Visual clustering shows UTXO relationships
  • Enhances learning: See how Bitcoin actually works
  • Improves decisions: Better fee and coin selection choices
  • Increases confidence: Understand exactly what you’re doing

Bitcoin-native terminology

SatSigner uses Bitcoin’s true technical language:

We say…

Instead of…We say…Why?
”Balance""UTXO set”Bitcoin doesn’t have balances, it has UTXOs
”Coins""UTXOs” or “sats”Technical accuracy and education
”Account""Wallet” or “Signer”Bitcoin has wallets and keys, not accounts
”Address balance""Address UTXO total”Addresses don’t have balances, they have UTXOs
”Send Bitcoin""Create transaction” or “Spend UTXOs”Describes what actually happens
”Pending""In mempool” or “Unconfirmed”Bitcoin’s actual state
”Confirmed""N confirmations”Precise confirmation count matters

Educational approach

SatSigner teaches Bitcoin concepts through usage. You’ll learn about UTXOs, transaction construction, and fee markets by actually working with them.

Security focused

Security is not an afterthought - it’s fundamental to SatSigner’s architecture:

Layered security approach

1

PIN protection

6-digit PIN encrypts all sensitive data with AES-256-CBC encryption and PBKDF2 key derivation (10,000 iterations).
2

Encrypted storage

All secrets stored encrypted at rest using secure MMKV storage. No plaintext keys ever written to disk.
3

Seed dropping

Optional removal of mnemonic after key extraction. Reduces attack surface if device compromised.
4

Duress PIN

Configure alternate PIN that opens decoy wallet under coercion. Protects main wallet from $5 wrench attack.
5

Air-gapped signing

Support for offline signing via QR codes and PSBTs. Private keys never touch online device.

Multi-signature support

Advanced users can deploy multi-signature security:
// 2-of-3 multisig example
type MultisigConfig = {
  policyType: 'multisig',
  keyCount: 3,           // Total cosigners
  keysRequired: 2,       // Signatures needed
  keys: [
    {
      index: 0,
      fingerprint: 'd34db33f',
      derivationPath: "m/48'/0'/0'/2'",
      xpub: 'xpub6BgBgs...',
    },
    // ... additional cosigners
  ]
};
Benefits:
  • No single point of failure
  • Distributed key custody
  • Protection against key theft
  • Organizational custody models
  • Inheritance planning

User sovereignty

SatSigner gives you complete control:

Your keys, your Bitcoin

“Not your keys, not your coins” - Andreas Antonopoulos
SatSigner is a self-custody wallet:
  • You control the private keys
  • You choose the backend (your node or trusted server)
  • You decide when to upgrade
  • You can export everything (keys, descriptors, labels)
  • You can verify the source code

No central authority

  • No account creation required
  • No email or phone number needed
  • No identity verification
  • No terms of service to accept
  • No ability for developers to access your funds

Data ownership

Your data stays under your control:
  • Labels stored locally or synced via Nostr (your keys)
  • Transaction history from your chosen backend
  • No cloud backup without your explicit action
  • Export all data in standard formats
  • Delete everything permanently if desired

Open source ethos

SatSigner embraces open source principles:

Fully auditable

“Given enough eyeballs, all bugs are shallow” - Linus’s Law
MIT licensed source code:
# Clone and audit the source
git clone https://github.com/satsigner/satsigner
cd satsigner

# Review security-critical code
cat apps/mobile/utils/crypto.ts
cat apps/mobile/utils/utxo.ts

Open source dependencies only

All dependencies are open source:
  • No closed-source libraries for critical functions
  • Auditable supply chain from dependency to production
  • Community security reviews can cover entire stack
  • No proprietary lock-in or vendor control

Contributing

We welcome contributions:

Report bugs

Found an issue? Report it on GitHub

Submit PRs

Contribute code improvements and new features

Review code

Audit the codebase for security and quality

Join discussion

Participate in feature discussions and planning

Who contributes to SatSigner?

SatSigner is built by and for the Bitcoin community:

Why contribute?

Help build a powerful native mobile Bitcoin signer management application that brings desktop-class functionality to mobile devices.
Contribute towards the integration, development and enhancement of Bitcoin UX design. Make Bitcoin more accessible and understandable.
Develop integrated on-chain analyses (privacy, provenance, economic) and data visualization to help inform, encourage and automate better Bitcoin usage best-practices.
Build visual tools and promote Bitcoin-native terminology to help users understand Bitcoin’s technical reality.
Help test market demand for Bitcoin-centric applications that prioritize user sovereignty and privacy.
Promote and demonstrate the value of open source software in Bitcoin infrastructure.
Support Bitcoin and related FOSS (Free and Open Source Software) projects that strengthen the ecosystem.
Be part of Bitcoin’s evolution and contribute to tools that empower financial sovereignty.

Design inspiration

SatSigner builds upon brilliant open-source projects:
Sparrow WalletVery powerful and clean native Bitcoin signer management desktop app:
  • Excellent UTXO visualization
  • Comprehensive PSBT support
  • Clean, intuitive interface
  • Advanced features without complexity
SatSigner brings Sparrow’s power to mobile.

Comparison with other wallets

What makes SatSigner unique?

FeatureSatSignerTypical mobile walletHardware wallet
UTXO visualization✅ Interactive bubbles❌ Hidden❌ Not applicable
Manual coin selection✅ Every transaction⚠️ Rarely supported⚠️ Limited
Privacy algorithms✅ STONEWALL built-in❌ Basic only❌ Not applicable
Multi-signature✅ Full PSBT workflow⚠️ Limited✅ Good support
Visualization✅ Extensive⚠️ Basic charts❌ None
Lightning Network✅ LND integration⚠️ Varies❌ Rarely
eCash support✅ Cashu❌ Rare❌ No
Nostr sync✅ Decentralized❌ Cloud or none❌ No
Open source✅ MIT licensed⚠️ Varies⚠️ Varies
Self custody✅ Always⚠️ Varies✅ Always
Mobile native✅ iOS & Android✅ Usually❌ External device

Who should choose SatSigner?

SatSigner is ideal for:

✅ You should use SatSigner if…

  • You want complete control over UTXO selection
  • You value privacy and avoid surveillance
  • You understand (or want to learn) Bitcoin’s technical details
  • You need multi-signature capabilities on mobile
  • You prefer visual tools for understanding data
  • You want mobile-first functionality without compromises
  • You demand open source and auditable code
  • You manage significant Bitcoin holdings on mobile
  • You need Lightning Network integration
  • You want to learn Bitcoin through hands-on experience

⚠️ Consider alternatives if…

  • You want the simplest possible user experience (try simpler wallets first)
  • You prefer custodial solutions with account recovery
  • You only need basic send/receive functionality
  • You’re uncomfortable with technical concepts
  • You prefer desktop or hardware wallet workflows

The path forward

SatSigner is under active development:
1

Today: Core functionality

Comprehensive Bitcoin wallet with UTXO control, multi-signature, and privacy features.
2

Near term: Enhanced privacy

CoinJoin integration, improved privacy algorithms, and advanced coin control.
3

Medium term: Layer 2 expansion

Deeper Lightning integration, additional eCash protocols, and cross-layer workflows.
4

Long term: Bitcoin ecosystem

Full node integration, advanced scripting, and comprehensive Bitcoin toolkit.

Get started

Ready to take control of your Bitcoin?

Install SatSigner

Download for iOS or Android

Quick start guide

Create your first wallet in minutes

Feature overview

Explore all capabilities in detail

Contribute

Join the open source development

“Not your keys, not your coins. With SatSigner, you hold the keys and control every satoshi.”