Introduction

Bitcoin apps have evolved far beyond simple send-and-receive wallets. Today’s ecosystem includes secure self-custody wallets, Lightning Network payment apps, merchant point-of-sale systems, full nodes and infrastructure tools, privacy and multisig coordinators, tax and portfolio software, and developer SDKs. This guide provides a comprehensive, practical overview to help you choose, set up, and safely use Bitcoin apps depending on your goals—whether you’re a newcomer, a merchant, a power user, or a developer.

Important: This guide is informational and does not constitute financial, legal, or tax advice. Always verify app features and security practices, and consider your local regulations.

Table of Contents

What is a “Bitcoin App”?

A Bitcoin app is any software that interacts with the Bitcoin network or bitcoin-related payment layers. Broadly:

  • Wallets: Manage keys, addresses, and transactions (on-chain and Lightning).
  • Nodes and infrastructure: Validate blocks/transactions and provide data services.
  • Payment processors: Accept bitcoin online and in-person.
  • Privacy/multisig coordinators: Enhance security and privacy.
  • Portfolio/tax software: Track performance and file taxes.
  • Explorers/analytics: Inspect the chain and mempool.
  • Developer tools: Libraries, SDKs, and RPC clients.

Each category serves distinct needs and trade-offs in security, convenience, privacy, and compliance.

Key Concepts and Standards

Understanding a few fundamentals will help you evaluate apps and avoid mistakes.

Addresses and Script Types

  • Legacy (P2PKH): Starts with “1”. Older, higher fees, fewer privacy features.
  • P2SH: Starts with “3”. Often used for multisig or nested SegWit.
  • Native SegWit (P2WPKH/P2WSH): Bech32 addresses starting with “bc1q”. Lower fees, modern standard.
  • Taproot (P2TR): Bech32m addresses starting with “bc1p”. Improves privacy and flexibility (especially for complex scripts).

Recommendation: Prefer bech32 “bc1q” (SegWit) or “bc1p” (Taproot) in modern wallets for lower fees and better interoperability.

HD Wallets and Derivation Paths

  • BIP32: Hierarchical Deterministic (HD) keys (tree of keys from a single seed).
  • BIP39: 12/24-word seed phrases; optional passphrase.
  • Popular derivation schemes:
    • BIP44 (legacy): m/44’/0’/0’
    • BIP49 (P2SH-SegWit): m/49’/0’/0’
    • BIP84 (native SegWit): m/84’/0’/0’
    • BIP86 (Taproot): m/86’/0’/0’

Ensure your wallet and backups are consistent across derivation paths.

Descriptors and Miniscript

  • Output Script Descriptors describe how to derive addresses/keys, e.g.:
    wpkh([F23A9CDE/84h/0h/0h]xpub6C.../0/*)
    tr([F23A9CDE/86h/0h/0h]xpub6C.../0/*)
    
  • Miniscript standardizes policy expressions for complex scripts and improves compatibility and safety in advanced setups (e.g., time locks, multisig).

PSBT (Partially Signed Bitcoin Transactions)

  • BIP174 PSBTs allow you to construct transactions in one app and sign them in another (e.g., desktop coordinator + hardware wallet).
  • Essential for air-gapped and multisig workflows.

Payment URIs and Invoices

  • On-chain BIP21 URI:
    bitcoin:bc1qexampleaddress...?...amount=0.01&label=Donation&message=Thanks
    
  • Lightning BOLT11 invoices:
    lnbc1500n1p3examplepp5...
    
  • LNURL (bech32-encoded) and Lightning Address (e.g., alice@domain.com) improve UX by enabling reusable identifiers.

Wallets: Custodial vs. Self-Custody

  • Custodial wallets: A service holds the keys. Pros: convenience, quick setup. Cons: counterparty risk, censorship/geofencing, KYC, lower privacy.
  • Self-custody wallets: You hold the keys. Pros: sovereignty, privacy control. Cons: more responsibility (backups, security).

Rule of thumb: “Not your keys, not your coins.” If self-custody, have a backup plan and test recovery.

Mobile Wallets

  • Use cases: daily spending, receiving tips, small balances, Lightning payments.
  • Features to look for:
    • SegWit/Taproot support
    • Lightning support (non-custodial vs. custodial)
    • Backup options (BIP39 seed or cloud-encrypted backups)
    • Coin control and labeling (for advanced users)
    • Node connectivity (use your own node for privacy, if available)

Examples of common capabilities:

  • On-chain only vs. Hybrid (on-chain + Lightning)
  • Payjoin support (privacy-enhancing pay-to-endpoint)
  • Watch-only mode to monitor balances without exposing keys

Hardware Wallets

  • Purpose: Keep private keys offline (cold storage).
  • Typical devices: USB or air-gapped (QR or microSD).
  • Evaluate:
    • Open-source firmware and reproducible builds
    • Secure element and supply chain measures
    • PSBT and descriptor/miniscript support
    • Compatibility with coordinators (Sparrow, Specter, Nunchuk)

Best practice: Pair hardware wallets with a desktop coordinator for transaction construction and coin control.

Desktop Wallets

  • Power-user features like coin control, RBF/CPFP fee management, PSBT, label management, and multisig coordination.
  • Useful for managing larger balances, UTXO hygiene, and advanced privacy.

Multisig Coordinators

  • 2-of-3 or 3-of-5 setups distribute risk across devices/locations.
  • Look for:
    • Descriptor-based vaults
    • Inheritance planning and cosigner backup
    • Policy alerts and spending limits
    • PSBT and label export

Consider multi-vendor multisig (e.g., different hardware wallets) to mitigate single-vendor risk.

Backup and Recovery

  • Seed phrase (BIP39): Write down on durable medium; consider metal backups for fire/flood resistance.
  • Optional BIP39 passphrase: Adds a “25th word”; must be remembered exactly.
  • Test restores: Verify backups by restoring on a separate device (watch-only or small funds).
  • Shamir Secret Sharing (SLIP-39): Splits a seed into shares. Powerful but increases operational complexity—use only if you understand risks.

Lightning Network Apps

Lightning enables faster, low-fee payments by moving transactions off-chain while settling security back to Bitcoin.

Custodial vs. Non-Custodial Lightning Wallets

  • Custodial: Simplest UX, but you don’t hold keys; may face region restrictions and withdrawal limits.
  • Non-custodial: You hold keys; may rely on an LSP (Lightning Service Provider) for channel management; generally more private and sovereign.

Key features to evaluate:

  • Automatic channel management and splicing
  • Fee transparency (base fee and ppm rate)
  • Backup/restore of channel state (static channel backups, seed + cloud state)
  • On-chain fallback via submarine swaps if channels are unavailable

LN Invoices, LNURL, and Lightning Address

  • BOLT11 invoice: A one-time payment request with amount, node, and expiry.
  • LNURL: Encodes pay or withdraw flows; enables pull payments and reusable endpoints.
  • Lightning Address: Email-like handle for recurring payments via LNURL-pay.

Example BOLT11 (truncated):

lnbc1500n1p3abcd...sd9qy9qsqsp5examplekey9p4qvcx...

Operating a Lightning Node

Suitable for merchants and power users who want full control.

  • Popular implementations: LND (Lightning Labs), Core Lightning (Blockstream), Eclair (ACINQ).
  • Typical tasks:
    • Open channels and manage liquidity
    • Set fees (base and ppm)
    • Monitor health, backups, and security updates

Basic commands:

LND (lncli):

# Get wallet balance
lncli walletbalance

# Pay an invoice
lncli payinvoice lnbc1p3example...

# Create an invoice
lncli addinvoice --amt=15000 --memo="Coffee"

Core Lightning (lightning-cli):

# Get funds
lightning-cli listfunds

# Pay an invoice
lightning-cli pay lnbc1p3example...

# Create an invoice
lightning-cli invoice 15000 coffee-001 "Coffee"

Ensure you have robust backups (static channel backups for LND; database backups for CLN), UPS power protection, and a plan for force-closing channels if needed.

Running a Bitcoin Node and Infrastructure

Running your own node improves privacy, removes reliance on third-party servers, and lets your wallet verify transactions.

Bitcoin Core Basics

Install and start syncing:

# Example: Debian/Ubuntu build from source (simplified)
sudo apt-get update && sudo apt-get install -y build-essential libtool autotools-dev automake pkg-config bsdmainutils python3 libevent-dev
# Fetch, verify, build... (refer to official docs for exact steps)

# Run Bitcoin Core (mainnet) with default datadir
bitcoind -daemon
bitcoin-cli getblockchaininfo

Create a wallet, get an address, send a transaction:

# Create a new descriptor wallet
bitcoin-cli createwallet "spend" true true "" true true

# Get a new bech32 address
bitcoin-cli -rpcwallet=spend getnewaddress "" bech32

# Check balance
bitcoin-cli -rpcwallet=spend getbalance

# Send coins (replace address/amount)
bitcoin-cli -rpcwallet=spend sendtoaddress bc1qexample... 0.001

Pruned Nodes

If storage is limited, run a pruned node:

# bitcoin.conf example (place in ~/.bitcoin/bitcoin.conf)
prune=550   # ~550 MB minimum; choose larger for better performance
server=1
txindex=0

Pruned nodes fully validate but don’t keep all historical blocks. Some apps (e.g., Electrs with full index) require full nodes.

Electrum Servers (Electrs/Fulcrum)

Electrum servers index your node so compatible wallets can connect privately.

  • electrs: Lightweight, widely used with consumer hardware.
  • Fulcrum: High-performance alternative (great for many clients).

Pair your mobile/desktop wallet with your own Electrum server for improved privacy.

Payments and Merchant Tools

BTCPay Server Overview

BTCPay Server is a popular, self-hosted payment processor that supports on-chain and Lightning.

Key features:

  • No intermediary custody; you keep the keys if configured self-custodially.
  • Integrations for web stores (Shopify alternatives via plugins), donations, and POS.
  • Invoices with BIP21 and Lightning fallback.

Simple deployment (Docker):

# On a fresh VPS with Docker installed
export BTCPAY_HOST=pay.example.com
export NBITCOIN_NETWORK=mainnet
curl -s https://install.btcpayserver.org | bash

After setup:

  • Connect to your Bitcoin node or use an internal one.
  • Configure Lightning if desired (LND, CLN).
  • Generate a store, add a payment button or use the built-in POS app.

Point-of-Sale Considerations

  • Hardware: Tablet or phone with a stable network connection.
  • UX: Quick invoice generation (QR), tipping options, fiat conversion display.
  • Reconciliation: Export invoices to accounting software.
  • Security: Role-based permissions, server backups, and minimal device trust.

Privacy and Security Best Practices

  • Self-custody basics:
    • Keep your seed offline; never share it with anyone.
    • Consider a passphrase (BIP39) and store it separately.
    • Use hardware wallets for larger balances.
  • Transaction hygiene:
    • Use coin control and labeling to avoid linking UTXOs.
    • Prefer PayJoin or Stonewall-like features when available.
    • Avoid address reuse; enable change address labeling.
  • Network privacy:
    • Connect wallets to your own node/Electrum server.
    • Consider Tor for wallet-to-node connections.
  • Lightning specifics:
    • Understand that channel partners and routing nodes may observe metadata.
    • Use randomized routing and privacy-preserving LSPs if possible.
  • Legal awareness:
    • CoinJoin and other privacy techniques may be treated differently across jurisdictions. Research local rules.

Portfolio, Accounting, and Tax Tools

  • Portfolio trackers: Monitor balances across wallets and exchanges (watch-only where possible).
  • Tax software: Import on-chain and Lightning transaction histories; categorize transfers vs. taxable events; export reports.
  • Best practices:
    • Maintain clean records with labels and notes.
    • Separate long-term cold storage from spending wallets.
    • For businesses, reconcile BTCPay invoices with accounting systems.

Tip: Export CSVs regularly and keep backups in encrypted storage.

Explorers and Analytics Apps

  • Block explorers: Inspect transactions, mempool status, fee estimates (e.g., mempool visualizations).
  • Self-hosted explorers: Improve privacy and uptime; pair with your node.
  • Analytics:
    • Fee forecasting and RBF/CPFP tools.
    • Policy simulators to test spending conditions (useful with Miniscript/Taproot policies).

Developer Corner: RPC, APIs, and Examples

Interacting with Bitcoin programmatically is foundational for building apps.

JSON-RPC with Bitcoin Core (curl):

curl --user user:password \
  --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getblockchaininfo","params":[]}' \
  -H 'content-type:text/plain;' \
  http://127.0.0.1:8332/

Python example (requests):

import requests
from requests.auth import HTTPBasicAuth

url = "http://127.0.0.1:8332/"
payload = {"jsonrpc":"1.0","id":"python","method":"getnewaddress","params":["","bech32"]}
r = requests.post(url, json=payload, auth=HTTPBasicAuth("user", "password"))
print(r.json())

Construct–sign–broadcast with PSBT (bitcoin-cli):

# 1) Create a funded PSBT
bitcoin-cli -rpcwallet=spend walletcreatefundedpsbt \
  [] '[{"bc1qrecipient...":0.001}]' \
  0 '{"add_inputs":true,"include_unsafe":true,"change_type":"bech32"}' true

# 2) Process PSBT (sign with your wallet or export to hardware)
bitcoin-cli -rpcwallet=spend walletprocesspsbt "<PSBT_FROM_STEP_1>" true

# 3) Finalize and extract
bitcoin-cli finalizepsbt "<PSBT_FROM_STEP_2>" true

# 4) Broadcast
bitcoin-cli sendrawtransaction "<HEX_FROM_STEP_3>"

Descriptors example:

wpkh([F23A9CDE/84h/0h/0h]xpub6CExample.../0/*)
tr([F23A9CDE/86h/0h/0h]xpub6CExample.../0/*)

Lightning invoice/pay examples shown earlier apply similarly in application code using gRPC/REST (for LND) or UNIX socket JSON-RPC (for Core Lightning).

Common Pitfalls to Avoid

  • Storing seed phrases in cloud notes or screenshots.
  • Confusing testnet/regtest with mainnet addresses.
  • Reusing addresses or combining unrelated UTXOs, harming privacy.
  • Relying exclusively on custodial services for long-term storage.
  • Ignoring wallet labels and documentation—hurts future accounting and recovery.
  • Not testing backups or assuming different wallets are interoperable without verifying derivation paths/descriptors.
  • Lightning: Closing channels unnecessarily (incurs on-chain fees) or running nodes without backups/UPS.

Choosing the Right App: Quick Decision Matrix

  • Just starting, small amounts, priority is simplicity:
    • Mobile wallet with SegWit, simple backups. Consider hybrid on-chain + Lightning if you plan to spend.
  • Medium savings, improved security:
    • Hardware wallet + desktop coordinator; connect to your node (optional).
  • Large savings, robust security:
    • Multisig with 2–3 hardware wallets, descriptor-based vault, off-site backups, tested recovery.
  • Frequent spender and merchant:
    • Non-custodial Lightning wallet (user) and BTCPay Server (merchant); consider a Lightning node for control.
  • Developer and data needs:
    • Run Bitcoin Core, optional pruned mode; add electrs/fulcrum; expose RPC behind proper auth and firewall.

Quick-Start Recipes

1) Receive Tips Today (On-Chain + Lightning)

  • Install a reputable mobile wallet that supports both on-chain and Lightning.
  • Enable Lightning, create a BOLT11 invoice or Lightning Address.
  • For on-chain donations, share a BIP21 QR:
    bitcoin:bc1qyouraddress...?...label=Tips&message=Thank%20you
    

2) Set Up a Secure Cold Storage

  • Buy two different hardware wallets.
  • Create a 2-of-3 multisig vault with a desktop coordinator.
  • Save descriptors and cosigner files; back up seeds on metal; store in separate locations.
  • Test recovery with a small amount before depositing larger funds.

3) Accept Bitcoin on Your Website

  • Deploy BTCPay Server with Docker on a VPS and point DNS to it.
  • Connect to your Bitcoin node (or use internal node).
  • Enable Lightning for instant payments.
  • Add payment buttons or an e-commerce plugin and test with small invoices.

4) Run a Private Mobile Setup with Your Node

  • Run Bitcoin Core (pruned if needed).
  • Install electrs or Fulcrum.
  • Configure your mobile wallet to connect to your Electrum server via Tor.
  • Verify balances and send a small test transaction.

Conclusion

The Bitcoin app ecosystem is rich and diverse. From simple mobile wallets to enterprise-grade payment processors, from self-sovereign multisig vaults to Lightning nodes powering instant payments, there’s a toolset tailored to your goals. Start by clarifying your priorities—convenience, security, privacy, or control—then select apps that align with those needs. Invest time in learning the fundamentals (BIP39/32, SegWit/Taproot, PSBT, descriptors), practice sound backup and labeling habits, and test your recovery process before committing significant funds. With the right apps and practices, you can use Bitcoin confidently and responsibly.

Further Resources

Software features and availability evolve. Always consult official documentation for the latest instructions and security notes.