Bitcoin Safe
A bitcoin savings wallet for the entire family
- Easy Multisig-Wallet Setup
- Step-by-Step instructions for a secure MultiSig setup with PDF backup sheets
- Test transactions ensure that all hardware signers are ready
- Full support for Coldcard, Coldcard Q, Bitbox02, Blockstream Jade, Trezor, Foundation Passport, Keystone, Ledger, Specter DIY, using QR, USB, and SD-card
- Secure: Hardware signers only
- All wallets require hardware signers/wallets for safe seed storage
- Powered by BDK
- Multi-Language:
- 🇺🇸 English, 🇨🇳 Chinese - 简体中文, 🇪🇸 Spanish - español de España, 🇯🇵 Japanese - 日本語, 🇷🇺 Russian - русский, 🇵🇹 Portuguese - português europeu, 🇮🇳 Hindi - हिन्दी, Arabic - العربية, 🇮🇹 Italian - italiano, 🇫🇷 French - Français, 🇩🇪 German - Deutsch, 🇲🇲 Burmese - မြန်မာ, 🇰🇷 Korean - 한국어, 🇹🇭 Thai - ภาษาไทย (more upon request)
- Simpler address labels by using categories (e.g. “KYC”, “Non-KYC”, “Work”, “Friends”, …)
- Automatic coin selection within categories
- Transaction flow diagrams, visualizing inputs and outputs, click on inputs and output to trace the money flow
- Sending for non-technical users
- 1-click fee selection via mempool-blocks
- Automatic merging of utxos when fees are low
- Sync & Chat:
- Encrypted cloud backup (via nostr) of labels
- Label synchronization between different computers
- Wallet chat and PSBTs sharing between different computers
- Fast:
- Electrum server syncing
- planned upgrade to Compact Block Filters for the Bitcoin Safe 2.0 release
Fully featured - Easy and Powerful
Multisig setup wizard | Create a PSBT, sign and broadcast |
---|---|
![]() | ![]() |
Transaction exploring via a diagram | Type-to-search in all wallets |
![]() | ![]() |
Automatic Label Synchronization | Multiparty Multisig collaboration |
![]() | ![]() |
Coin Categories | |
![]() |
Available on all platforms
![]() | ![]() | ![]() |
---|---|---|
Windows | Mac OS X | Linux |
Comprehensive Feature List
Import and Export Capabilities
- CSV export for all lists
- CSV import for batch transactions
- Label import and export using BIP329
- Label import from Electrum wallet
- Export of the money flow diagram to svg
- Drag and drop for Transactions, PSBTs, and CSV files
Wallet Features
- Simplified address labeling using categories like KYC, Non-KYC, Work, Friends
- Cancel unconfirmed transactions (via Replace-by-Fee)
- Bump fee on transactions (via Replace-by-Fee)
- Encrypted wallet storage
- Backup PDF with Descriptor (Text and QR code)
- Message signing via USB and QR
Hardware Signer Connectivity
- MicroSD (files)
- USB
- QR codes (enhanced QR code detection for Laptop cameras)
- Animated QR codes including Coldcard/BBQr and UR format
Search and Filtering Options
- Fast filtering across txids, utxos, labels, dates, amounts, categories
- Search across all open wallets, txids, utxos, labels, dates, amounts, categories
Languages
- 🇺🇸 English, 🇨🇳 Chinese - 简体中文, 🇪🇸 Spanish - español de España, 🇯🇵 Japanese - 日本語, 🇷🇺 Russian - русский, 🇵🇹 Portuguese - português europeu, 🇮🇳 Hindi - हिन्दी, Arabic - العربية, 🇮🇹 Italian - italiano, 🇫🇷 French - Français, 🇩🇪 German - Deutsch, 🇲🇲 Burmese - မြန်မာ, 🇰🇷 Korean - 한국어, 🇹🇭 Thai - ภาษาไทย (more upon request)
Transaction / PSBT Creation
- 1-click fee selection and mempool block preview
- Automatic merging of utxos when fees are low
- Highlighting of own addresses
Security and Reliability
- No seed generation or storage on mainnet
- Seed storage requires a separate hardware signer
- Update notifications and signature verification
- Powered by Bitcoin Development Kit (BDK)
Ease of Use for Multisig Wallets
- Simplified setup for multisig wallets, including step-by-step instructions and PDF backup sheet
- Test signing with all hardware signers
- Collaborative wallet management including chat and PSBT sharing via nostr and label synchronization between trusted devices
- Optional custom nostr server
Upcoming Features
- For the 2.0 Release
- Compact Block Filters by default
- Compact Block Filters are fast and private
- Compact Block Filters (bdk) are being worked on, and will be included in bdk 1.1. For now RPC, Electrum and Esplora are available, but will be replaced completely with Compact Block Filters.
- Compact Block Filters by default
- For the 2.0 Release
Installation from Git repository
Ubuntu, Debian
Install dependencies:
sudo apt-get install qt6-tools-dev-tools libxcb-cursor0 '^libsecp256k1-.*$' '^libqt6.*$'
Install
poetry
and runbitcoin_safe
git clone https://github.com/andreasgriffin/bitcoin-safe.git cd bitcoin-safe pip install poetry && poetry install && poetry run python -m bitcoin_safe
Mac
Run
bitcoin_safe
git clone https://github.com/andreasgriffin/bitcoin-safe.git cd bitcoin-safe python3 -m pip install poetry && python3 -m poetry install && python3 -m poetry run python3 -m bitcoin_safe
libsecp256k1
/bin/bash ./tools/make_libsecp256k1.sh
Optional: dependency
zbar
xcode-select --install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install zbar
Development
- Run the precommit manually for debugging
poetry run pre-commit run --all-files
Regtest docker environement with electrs and mempool
- install docker
# see https://docs.docker.com/engine/install/ubuntu/
- setting up a regtest environment in docker + mempool instance
curl https://getnigiri.vulpem.com | sudo bash # see https://nigiri.vulpem.com/#install
sudo nigiri start
xdg-open http://localhost:5000/
- This creates
- esplora localhost:3000 electrs localhost:50000
- and a gui block explorer at http://localhost:5000
- Setup mempool instance
sudo apt install docker-compose
git clone https://github.com/ngutech21/nigiri-mempool.git
pushd nigiri-mempool
sudo docker-compose up -d
sleep 10
# this is needed because the database needs time to start up
sudo docker-compose up -d
popd
xdg-open http://localhost:8080/
# if the mempool is endlessly loading, then get the debug output with
sudo docker-compose logs -f mempool-api
- this opens a mempool at http://localhost:8080/
Control the Regtest environment
- get coins to an address
nigiri rpc generatetoaddress 1 bcrt1qgsnt3d4sny4w4zd5zl9x6jufc5rankqmgphyms9vz0ds73q4xfms655y4c # mine blocks
# or use the internal faucet
nigiri faucet bcrt1qgsnt3d4sny4w4zd5zl9x6jufc5rankqmgphyms9vz0ds73q4xfms655y4c 0.01
Qt designer
Qt componets can be explored with the qt designer:
virtualenv .env-qt-designer
source .env-qt-designer/bin/activate
pip install pyqt6-tools
pyqt6-tools designer
Code signing policy
Free code signing provided by SignPath.io, certificate by SignPath Foundation
Privacy policy
This program uses by default
- the electrum/esplora server of blockstream.com to fetch blockchain data
- fetches mempool fee information from mempool.space
You can specify your own (personal) server for both in “Network settings”.
When enabeling the Sync&Chat feature default relays are used to transmit encrypted data to your approved trusted devices. You can specify your own relay(s) in the Sync&Chat settings.
This program will not transfer any other information to other networked systems unless specifically requested by the user or the person installing or operating it.