This guide helps you resolve common issues when using SatSigner. If you don’t find a solution here, please check the FAQ or open an issue on GitHub.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.
Installation Issues
App won’t install on iOS
Problem: Cannot install SatSigner from the App Store on iPhone or iPad. Solutions:-
Check iOS version: SatSigner requires iOS 14.0 or later
- Go to Settings → General → About → Check Software Version
- Update iOS if needed: Settings → General → Software Update
-
Check storage space: Insufficient space can prevent installation
- Go to Settings → General → iPhone Storage
- Free up at least 500 MB of space
-
Restart device: Force restart your iPhone/iPad
- iPhone 8 or later: Press volume up, volume down, then hold power button
- Older models: Hold home + power buttons
-
Sign out and back into App Store
- Settings → [Your Name] → Media & Purchases → Sign Out
- Sign back in and try again
App won’t install on Android
Problem: Cannot install SatSigner from Google Play Store. Solutions:-
Check Android version: SatSigner requires Android 10.0 or later
- Go to Settings → About Phone → Check Android Version
- Update if available
-
Clear Google Play Store cache
- Settings → Apps → Google Play Store
- Tap Storage → Clear Cache and Clear Data
- Restart Play Store and try again
-
Check device compatibility: Some devices may have restrictions
- Ensure your device passes SafetyNet (if required)
- Check if your device is rooted (may cause issues)
-
Enable installation from unknown sources (for APK installs)
- Settings → Security → Enable Unknown Sources
- Only use official APKs from GitHub releases
App crashes on launch
Problem: SatSigner opens then immediately closes. Solutions:-
Force quit and restart
- iOS: Swipe up from bottom, swipe app away, reopen
- Android: Settings → Apps → SatSigner → Force Stop, then reopen
-
Clear app cache (Android)
- Settings → Apps → SatSigner → Storage → Clear Cache
- Note: Does not delete wallet data
-
Reinstall the app
- First: Ensure you have backups of all wallet recovery information!
- Uninstall SatSigner
- Restart device
- Reinstall from App Store/Play Store
- Restore wallets from backup
- Check for updates: Update to the latest version
-
Report the crash: Open a GitHub issue with:
- Device model and OS version
- SatSigner version
- What you were doing when it crashed
Wallet Creation Issues
Cannot create new wallet
Problem: Wallet creation fails or gets stuck. Solutions:-
Check network connection
- Ensure you have internet connectivity
- Try switching between WiFi and mobile data
- Some wallet types can be created offline
-
Verify PIN setup
- Make sure you completed PIN setup
- Try creating a new PIN in Settings
-
Check available storage
- Ensure device has sufficient free space
- At least 100 MB recommended
-
Try different wallet type
- If multi-sig fails, try single-sig first
- Use testnet to test wallet creation
Mnemonic seed phrase not generated
Problem: No seed phrase displayed during wallet creation. Solutions:-
Check entropy source: SatSigner uses device’s secure random generator
- Restart device and try again
- Ensure app has necessary permissions
-
Import existing seed: If creating new wallet fails, try importing a seed generated elsewhere
- Use a trusted source like hardware wallet
- Verify checksum
- Check for updates: Older versions may have bugs
Invalid descriptor error
Problem: “Invalid descriptor” error when importing wallet. Solutions:-
Verify descriptor format
- Check for typos or missing characters
- Ensure checksum is included
- Descriptors are case-sensitive
-
Check descriptor type compatibility
- SatSigner supports:
pkh(),wpkh(),sh(wpkh()),tr(),wsh(),sh(wsh()),sh() - Verify script type is supported
- SatSigner supports:
-
Validate checksum
- Descriptor checksums start with
# - Recalculate checksum if unsure
- Some tools export descriptors without checksums
- Descriptor checksums start with
-
Try without checksum first, then add it:
Transaction Issues
Transaction won’t send
Problem: Cannot broadcast transaction to network. Solutions:-
Check network connection
- Verify internet connectivity
- Try switching networks (WiFi ↔ mobile data)
- Check if backend server is reachable
-
Verify transaction details
- Ensure recipient address is valid
- Check amount doesn’t exceed balance
- Verify fee rate is reasonable (>1 sat/vByte)
-
Check UTXO availability
- Ensure selected UTXOs are confirmed
- Unconfirmed UTXOs may not be spendable
- Try selecting different UTXOs
-
Validate signature
- For multisig: Ensure enough signatures collected
- Check that correct keys are being used
- Verify fingerprints match
-
Check mempool limits
- If fee rate is too low (less than 1 sat/vByte), node may reject
- Increase fee rate and try again
Transaction stuck (unconfirmed)
Problem: Transaction broadcast but not confirming. Solutions:-
Check mempool position
- Use SatSigner’s blockchain explorer
- View your transaction’s fee rate vs. current rates
- Low-fee transactions may wait days or weeks
-
Wait it out
- If fee rate is reasonable, just wait
- Blocks are mined every ~10 minutes on average
- Congestion can cause delays
-
Use RBF (Replace-By-Fee)
- If you enabled RBF when creating the transaction:
- Open the pending transaction
- Tap Bump Fee
- Set higher fee rate
- Broadcast replacement transaction
- New transaction replaces old one in mempool
- If you enabled RBF when creating the transaction:
-
Use CPFP (Child-Pays-For-Parent)
- If RBF not enabled:
- Spend the unconfirmed change output
- Use a very high fee rate
- Miners will process both transactions together
- If RBF not enabled:
-
Transaction may drop from mempool
- After ~2 weeks, unconfirmed transactions drop
- Funds return to your wallet (no double-spend risk)
- You can try sending again with higher fee
”Insufficient funds” error
Problem: Error says insufficient funds despite having balance. Solutions:-
Account for transaction fees
- Total cost = Amount + Fee
- If sending entire balance, reduce amount to leave room for fee
- Use “Send Max” button to automatically calculate
-
Check UTXO availability
- Some UTXOs may be unconfirmed
- Some may be locked or marked as “do not spend”
- Go to UTXO view and check available coins
-
Verify selected UTXOs
- If manually selecting coins, ensure enough selected
- Try auto-selection instead
-
Check for dust limits
- Very small UTXOs (less than 546 sats) may not be spendable
- Consolidate dust when fees are low
Wrong fee calculated
Problem: Fee seems too high or too low. Solutions:-
Understand fee calculation
- Fee = Transaction Size (vBytes) × Fee Rate (sat/vByte)
- More inputs (UTXOs) = larger transaction = higher fee
- SegWit transactions are smaller than legacy
-
Check fee rate source
- SatSigner fetches real-time rates from mempool
- Rates change based on network congestion
- You can set custom rate in advanced settings
-
Reduce transaction size
- Use fewer inputs (select larger UTXOs)
- Use fewer outputs (consolidate recipients)
- Use SegWit addresses (wpkh/tr)
-
Use custom fee rate
- Tap “Custom” in fee selector
- Enter desired sat/vByte rate
- View current mempool rates for reference
Multi-signature Issues
Cannot create multisig wallet
Problem: Multi-signature wallet creation fails. Solutions:-
Verify cosigner information
- Need M-of-N cosigner xpubs
- All xpubs must be same derivation path
- Fingerprints must be unique
-
Check descriptor format
- Multisig uses
sortedmulti()orwsh(multi()) - Verify ordering (SatSigner uses sortedmulti)
- Ensure all xpubs are valid
- Multisig uses
-
Coordinate with cosigners
- All cosigners need same wallet configuration
- Share descriptors securely
- Verify fingerprints match
PSBT signature missing
Problem: Cannot sign or combine PSBT. Solutions:-
Verify you have signing keys
- PSBTs require private keys to sign
- Watch-only wallets cannot sign
- Check fingerprint matches your key
-
Check PSBT format
- Ensure PSBT is valid and properly encoded
- Try re-importing PSBT
- Check for corruption during transfer
-
Verify threshold not met
- For 2-of-3, need 2 signatures
- Check how many signatures already present
- Each cosigner must sign separately
-
Check derivation paths
- PSBT derivation must match wallet
- Verify BIP32 paths are correct
Connection Issues
Cannot connect to backend server
Problem: “Connection failed” or “Cannot reach server” errors. Solutions:-
Check internet connection
- Verify WiFi or mobile data is working
- Try opening a web page to confirm
- Restart router if needed
-
Verify backend settings
- Go to Settings → Network
- Check Electrum or Esplora server URL
- Try default servers or alternative servers
-
Test different server
- Add custom Electrum server:
blockstream.info:50002(Blockstream)electrum.blockstream.info:50002
- Or add custom Esplora URL:
https://blockstream.info/api
- Add custom Electrum server:
-
Check firewall/VPN
- Corporate networks may block Bitcoin traffic
- Try disabling VPN temporarily
- Use mobile data to test
-
Use Tor (advanced)
- Enable Tor in Settings for censorship resistance
- Requires Tor installation (Orbot on Android)
Sync takes too long
Problem: Wallet sync is very slow or stuck. Solutions:-
Check connection speed
- Slow internet = slow sync
- Wait for completion (may take several minutes)
- Try faster network
-
Try different backend
- Switch between Electrum and Esplora
- Some servers are faster than others
- Use geographically closer server
-
Check gap limit
- Large gap limits take longer to sync
- Default is 20 (usually sufficient)
- Only increase if you know you need it
-
Restart sync
- Pull down to refresh
- Force quit app and reopen
- Last resort: delete and re-import wallet
Lightning & Advanced Features
Cannot connect to LND node
Problem: Lightning node connection fails. Solutions:-
Verify LND REST API enabled
- Check
lnd.confhas REST listener enabled - Default port: 8080
- Ensure firewall allows connection
- Check
-
Check connection details
- Host: IP address or domain
- Port: Usually 8080
- TLS certificate: Must be valid
- Macaroon: Needs proper permissions
-
Test from browser
- Try accessing
https://your-node:8080/v1/getinfo - Should return JSON response
- If this fails, problem is with node, not SatSigner
- Try accessing
-
Check certificate
- LND uses self-signed certs by default
- May need to import cert into device
- Or use Let’s Encrypt cert on node
eCash tokens not received
Problem: eCash tokens not appearing in wallet. Solutions:-
Verify mint connection
- Check mint URL is correct
- Mint must be online and responsive
- Try pinging mint from browser
-
Check token format
- Cashu tokens start with
cashuA... - Ensure entire token was copied
- Tokens are case-sensitive
- Cashu tokens start with
-
Verify mint is added
- Go to eCash → Mints
- Ensure the mint is in your list
- Add mint if missing
-
Check mint balance
- Mint may be out of reserves
- Try different mint
- Verify mint reputation
Nostr sync not working
Problem: Labels not syncing across devices. Solutions:-
Verify Nostr settings
- Ensure sync is enabled on all devices
- Same Nostr keypair on all devices
- At least one relay configured
-
Check relay connection
- Go to Settings → Nostr → Relays
- Verify relays are online (green indicator)
- Add more relays for redundancy:
wss://relay.damus.iowss://relay.nostr.bandwss://nos.lol
-
Force re-sync
- Pull down to refresh in Labels view
- Or disable/re-enable sync
-
Check encryption
- Labels are encrypted with device keys
- Ensure trusted devices are added
- Remove and re-add device if needed
Data & Recovery
Lost seed phrase
Problem: Cannot find mnemonic seed backup. Solutions: Unfortunately, if you lost your seed phrase and:- Your device is lost/broken
- You don’t have other backups (descriptor, xprv)
- You cannot access the app with your PIN
- Write seed phrase on paper during wallet creation
- Store in multiple secure physical locations
- Consider metal backups for durability
- Never store digitally (photos, files, cloud)
- Export descriptors as additional backup
Forgot PIN
Problem: Cannot remember PIN to unlock SatSigner. Solutions:-
Try all possible PINs
- If you remember partial PIN, try variations
- SatSigner may have attempt limits
-
Use duress PIN
- If you set one up, it opens alternative wallet
- May have different funds or be empty
-
Restore from backup
- Uninstall and reinstall SatSigner
- Import wallets using seed phrase or xprv
- Create new PIN
- Will lose labels unless you have BIP329 export
-
No way to reset PIN without reinstalling
- This is by design for security
- PIN protects encryption key
- No PIN = no access to encrypted data
App data corrupted
Problem: App data seems corrupted or inconsistent. Solutions:-
Backup current state (if possible)
- Export descriptors
- Export labels (BIP329)
- Screenshot wallet settings
-
Clear cache (Android)
- Does not delete wallet data
- May resolve UI issues
-
Reinstall app
- Back up recovery info first!
- Uninstall completely
- Reinstall fresh
- Import wallets from backup
-
Report the issue
- Open GitHub issue with details
- Include steps to reproduce
- Help improve SatSigner
Performance Issues
App is slow or laggy
Problem: SatSigner performance is poor. Solutions:-
Check device resources
- Close other apps
- Restart device
- Ensure sufficient free RAM
-
Reduce visual effects
- Disable animations in Settings (if available)
- Use simpler UTXO visualizations
-
Limit loaded wallets
- Too many active wallets can slow down sync
- Archive unused wallets
-
Update app and OS
- Newer versions may have performance improvements
- OS updates can improve app performance
High battery usage
Problem: SatSigner draining battery quickly. Solutions:-
Reduce sync frequency
- Disable auto-sync if not needed
- Sync manually when needed
-
Disable background refresh
- iOS: Settings → SatSigner → Background App Refresh → Off
- Android: Settings → Apps → SatSigner → Battery → Restrict
-
Check for stuck processes
- Force quit and reopen app
- Restart device
-
Update to latest version
- May include battery optimizations
Still Need Help?
If you’ve tried these solutions and still have issues:Check the FAQ
Common questions about SatSigner and Bitcoin
Read the Glossary
Understand Bitcoin terminology
GitHub Issues
Report bugs or request features
Documentation
Browse full documentation