# 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](https://store.coinkite.com/promo/8BFF877000C34A86F410), [Coldcard Q](https://store.coinkite.com/promo/8BFF877000C34A86F410), [Bitbox02](https://shiftcrypto.ch/bitbox02/?ref=MOB4dk7gpm), [Blockstream Jade](https://store.blockstream.com/?code=XEocg5boS77D), [Trezor](https://trezor.io), [Foundation Passport](https://foundation.xyz/passport), [Keystone](https://keyst.one), [Ledger](https://shop.ledger.com/pages/ledger-nano-s-plus), [Specter DIY](https://specter.solutions/hardware), using *QR*, *USB*, and *SD-card*
- **Secure**: Hardware signers only
- All wallets require hardware signers/wallets for safe seed storage
- Powered by **[BDK](https://github.com/bitcoindevkit/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, (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** |
|--------------------------------|----------------------------|
| ![](docs/multisig-setup.gif) | ![](docs/send.gif) |
| **Transaction exploring via a diagram** | **Type-to-search in all wallets** |
| ![](docs/explorer.gif) | ![](docs/global-search.gif) |
| **Automatic Label Synchronization** | **Multiparty Multisig collaboration** |
| ![](docs/label-sync.gif) | ![](docs/psbt-share.gif) |
| **Coin Categories** | |
| ![](docs/category-drag-and-drop.gif) | |
### Available on all platforms
| ![Windows](docs/tx-win.png) | ![Mac OS X](docs/tx-mac.png) | ![Linux](docs/tx-linux.png) |
|-----------------------------|-----------------------------|----------------------------|
| 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](https://bip329.org/)
- 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)
- **Hardware Signer Connectivity**
- MicroSD (files)
- USB
- QR codes (enhanced QR code detection for Laptop cameras)
- Animated QR codes including [Coldcard/BBQr](https://bbqr.org/) and [UR](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md) 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, (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)](https://github.com/bitcoindevkit/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](https://github.com/bitcoindevkit/bdk/issues/679), 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.
## Installation from Git repository
### Ubuntu, Debian, Windows
Install dependencies:
```sh
sudo apt install qt6-tools-dev-tools libqt6*
```
- Install `poetry` and run `bitcoin_safe`
```sh
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`
```sh
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
```
- *Optional*: dependency `zbar`
```sh
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
```shell
poetry run pre-commit run --all-files
```
#### Regtest docker environement with electrs and mempool
* install docker
```shell
# see https://docs.docker.com/engine/install/ubuntu/
```
* setting up a regtest environment in docker + mempool instance
```shell
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
```shell
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
```shell
nigiri rpc generatetoaddress 1 bcrt1qgsnt3d4sny4w4zd5zl9x6jufc5rankqmgphyms9vz0ds73q4xfms655y4c # mine blocks
# or use the internal faucet
nigiri faucet bcrt1qgsnt3d4sny4w4zd5zl9x6jufc5rankqmgphyms9vz0ds73q4xfms655y4c 0.01
```
* ## Installation from PyPi
### Ubuntu, Debian, Windows
- Install `poetry` and run `bitcoin_safe`
```sh
pip install bitcoin-safe
python -m bitcoin_safe
```
### Mac
- Run `bitcoin_safe`
```sh
python3 -m pip install bitcoin-safe
python3 -m bitcoin_safe
```
## Code signing policy
Free code signing provided by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/)
## Privacy policy
This program uses by default
- the electrum/esplora server of [blockstream.com](https://blockstream.com/) to fetch blockchain data
- fetches mempool fee information from [mempool.space](https://mempool.space/)
You can specify your own (personal) server for both in "Network settings".
When enabeling the Sync&Chat feature [default relays](https://github.com/andreasgriffin/bitcoin-nostr-chat/blob/main/bitcoin_nostr_chat/default_relays.py) 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.
Raw data
{
"_id": null,
"home_page": "https://www.bitcoin-safe.org",
"name": "bitcoin-safe",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "andreasgriffin",
"author_email": "andreasgriffin@proton.me",
"download_url": "https://files.pythonhosted.org/packages/c4/27/7d89549d3ef8487abf638e5314e655659e77664819bf6fca5689f618fbd2/bitcoin_safe-1.0.5.tar.gz",
"platform": null,
"description": "# Bitcoin Safe\n\n#### A bitcoin savings wallet for the entire family\n\n- **Easy** Multisig-Wallet Setup\n - Step-by-Step instructions for a secure MultiSig setup with PDF backup sheets\n - Test transactions ensure that all hardware signers are ready\n - Full support for [Coldcard](https://store.coinkite.com/promo/8BFF877000C34A86F410), [Coldcard Q](https://store.coinkite.com/promo/8BFF877000C34A86F410), [Bitbox02](https://shiftcrypto.ch/bitbox02/?ref=MOB4dk7gpm), [Blockstream Jade](https://store.blockstream.com/?code=XEocg5boS77D), [Trezor](https://trezor.io), [Foundation Passport](https://foundation.xyz/passport), [Keystone](https://keyst.one), [Ledger](https://shop.ledger.com/pages/ledger-nano-s-plus), [Specter DIY](https://specter.solutions/hardware), using *QR*, *USB*, and *SD-card* \n- **Secure**: Hardware signers only\n - All wallets require hardware signers/wallets for safe seed storage \n - Powered by **[BDK](https://github.com/bitcoindevkit/bdk)**\n- **Multi-Language**:\n - \ud83c\uddfa\ud83c\uddf8 English, \ud83c\udde8\ud83c\uddf3 Chinese - \u7b80\u4f53\u4e2d\u6587, \ud83c\uddea\ud83c\uddf8 Spanish - espa\u00f1ol de Espa\u00f1a, \ud83c\uddef\ud83c\uddf5 Japanese - \u65e5\u672c\u8a9e, \ud83c\uddf7\ud83c\uddfa Russian - \u0440\u0443\u0441\u0441\u043a\u0438\u0439, \ud83c\uddf5\ud83c\uddf9 Portuguese - portugu\u00eas europeu, \ud83c\uddee\ud83c\uddf3 Hindi - \u0939\u093f\u0928\u094d\u0926\u0940, Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629, \ud83c\uddee\ud83c\uddf9 Italian - italiano, \ud83c\uddeb\ud83c\uddf7 French - Fran\u00e7ais, \ud83c\udde9\ud83c\uddea German - Deutsch, (more upon request)\n- **Simpler** address labels by using categories (e.g. \"KYC\", \"Non-KYC\", \"Work\", \"Friends\", ...)\n - Automatic coin selection within categories\n - Transaction flow diagrams, visualizing inputs and outputs, click on inputs and output to trace the money flow\n- **Sending** for non-technical users\n - 1-click fee selection via mempool-blocks\n - Automatic merging of utxos when fees are low\n- **Sync & Chat**:\n - Encrypted cloud backup (via nostr) of labels\n - Label synchronization between different computers\n - Wallet chat and PSBTs sharing between different computers\n- **Fast**: \n - Electrum server syncing\n - planned upgrade to **Compact Block Filters** for the Bitcoin Safe 2.0 release\n\n\n\n\n### Fully featured - Easy and Powerful\n\n| **Multisig setup wizard** | **Create a PSBT, sign and broadcast** |\n|--------------------------------|----------------------------|\n| ![](docs/multisig-setup.gif) | ![](docs/send.gif) |\n| **Transaction exploring via a diagram** | **Type-to-search in all wallets** |\n| ![](docs/explorer.gif) | ![](docs/global-search.gif) |\n| **Automatic Label Synchronization** | **Multiparty Multisig collaboration** |\n| ![](docs/label-sync.gif) | ![](docs/psbt-share.gif) |\n| **Coin Categories** | |\n| ![](docs/category-drag-and-drop.gif) | |\n\n\n\n### Available on all platforms\n| ![Windows](docs/tx-win.png) | ![Mac OS X](docs/tx-mac.png) | ![Linux](docs/tx-linux.png) |\n|-----------------------------|-----------------------------|----------------------------|\n| Windows | Mac OS X | Linux |\n\n\n## Comprehensive Feature List\n\n- **Import and Export Capabilities**\n \n - CSV export for all lists\n - CSV import for batch transactions\n - Label import and export using [BIP329](https://bip329.org/)\n - Label import from Electrum wallet\n - Export of the money flow diagram to svg\n - Drag and drop for Transactions, PSBTs, and CSV files\n\n- **Wallet Features**\n \n - Simplified address labeling using categories like KYC, Non-KYC, Work, Friends\n - Cancel unconfirmed transactions (via Replace-by-Fee)\n - Bump fee on transactions (via Replace-by-Fee)\n - Encrypted wallet storage\n - Backup PDF with Descriptor (Text and QR code)\n\n- **Hardware Signer Connectivity**\n \n - MicroSD (files)\n - USB\n - QR codes (enhanced QR code detection for Laptop cameras)\n - Animated QR codes including [Coldcard/BBQr](https://bbqr.org/) and [UR](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md) format\n\n- **Search and Filtering Options**\n \n - Fast filtering across txids, utxos, labels, dates, amounts, categories\n - Search across all open wallets, txids, utxos, labels, dates, amounts, categories\n\n- **Languages**\n \n - \ud83c\uddfa\ud83c\uddf8 English, \ud83c\udde8\ud83c\uddf3 Chinese - \u7b80\u4f53\u4e2d\u6587, \ud83c\uddea\ud83c\uddf8 Spanish - espa\u00f1ol de Espa\u00f1a, \ud83c\uddef\ud83c\uddf5 Japanese - \u65e5\u672c\u8a9e, \ud83c\uddf7\ud83c\uddfa Russian - \u0440\u0443\u0441\u0441\u043a\u0438\u0439, \ud83c\uddf5\ud83c\uddf9 Portuguese - portugu\u00eas europeu, \ud83c\uddee\ud83c\uddf3 Hindi - \u0939\u093f\u0928\u094d\u0926\u0940, Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629, \ud83c\uddee\ud83c\uddf9 Italian - italiano, \ud83c\uddeb\ud83c\uddf7 French - Fran\u00e7ais, \ud83c\udde9\ud83c\uddea German - Deutsch, (more upon request)\n\n- **Transaction / PSBT Creation**\n \n - 1-click fee selection and mempool block preview\n - Automatic merging of utxos when fees are low\n - Highlighting of own addresses \n\n- **Security and Reliability**\n \n - No seed generation or storage on mainnet\n - Seed storage requires a separate hardware signer \n - Update notifications and signature verification\n - Powered by [Bitcoin Development Kit (BDK)](https://github.com/bitcoindevkit/bdk)\n\n- **Ease of Use for Multisig Wallets**\n \n - Simplified setup for multisig wallets, including step-by-step instructions and PDF backup sheet\n - Test signing with all hardware signers\n - Collaborative wallet management including chat and PSBT sharing via nostr and label synchronization between trusted devices\n - Optional custom nostr server \n\n- **Upcoming Features**\n \n - For the 2.0 Release\n - **Compact Block Filters** by default\n - Compact Block Filters are **fast** and **private**\n - Compact Block Filters (bdk) are being [worked on](https://github.com/bitcoindevkit/bdk/issues/679), 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.\n\n\n## Installation from Git repository\n\n\n### Ubuntu, Debian, Windows\n\nInstall dependencies: \n\n ```sh\n sudo apt install qt6-tools-dev-tools libqt6*\n ```\n\n- Install `poetry` and run `bitcoin_safe`\n \n ```sh\n git clone https://github.com/andreasgriffin/bitcoin-safe.git\n cd bitcoin-safe\n pip install poetry && poetry install && poetry run python -m bitcoin_safe\n ```\n\n### Mac\n\n- Run `bitcoin_safe`\n \n ```sh\n git clone https://github.com/andreasgriffin/bitcoin-safe.git\n cd bitcoin-safe\n python3 -m pip install poetry && python3 -m poetry install && python3 -m poetry run python3 -m bitcoin_safe\n ```\n\n- *Optional*: dependency `zbar`\n \n ```sh\n xcode-select --install\n /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n brew install zbar \n ```\n\n## Development\n\n* Run the precommit manually for debugging\n\n```shell\npoetry run pre-commit run --all-files\n```\n\n#### Regtest docker environement with electrs and mempool\n\n* install docker\n\n```shell\n# see https://docs.docker.com/engine/install/ubuntu/\n```\n\n* setting up a regtest environment in docker + mempool instance\n\n```shell\ncurl https://getnigiri.vulpem.com | sudo bash # see https://nigiri.vulpem.com/#install\nsudo nigiri start\nxdg-open http://localhost:5000/\n```\n\n* This creates\n * esplora localhost:3000\n electrs localhost:50000 \n * and a gui block explorer at http://localhost:5000\n* Setup mempool instance\n\n```shell\nsudo apt install docker-compose\ngit clone https://github.com/ngutech21/nigiri-mempool.git\n\npushd nigiri-mempool\nsudo docker-compose up -d\nsleep 10\n# this is needed because the database needs time to start up \nsudo docker-compose up -d\npopd\nxdg-open http://localhost:8080/\n\n# if the mempool is endlessly loading, then get the debug output with\nsudo docker-compose logs -f mempool-api\n```\n\n* this opens a mempool at http://localhost:8080/\n\n#### Control the Regtest environment\n\n* get coins to an address\n\n```shell\nnigiri rpc generatetoaddress 1 bcrt1qgsnt3d4sny4w4zd5zl9x6jufc5rankqmgphyms9vz0ds73q4xfms655y4c # mine blocks\n\n# or use the internal faucet\nnigiri faucet bcrt1qgsnt3d4sny4w4zd5zl9x6jufc5rankqmgphyms9vz0ds73q4xfms655y4c 0.01\n```\n\n* ## Installation from PyPi\n\n### Ubuntu, Debian, Windows\n\n- Install `poetry` and run `bitcoin_safe`\n \n ```sh\n pip install bitcoin-safe\n python -m bitcoin_safe\n ```\n\n### Mac\n\n- Run `bitcoin_safe`\n \n ```sh\n python3 -m pip install bitcoin-safe\n python3 -m bitcoin_safe\n ```\n\n\n\n## Code signing policy\n\n\nFree code signing provided by [SignPath.io](https://about.signpath.io/), certificate by [SignPath Foundation](https://signpath.org/)\n\n\n## Privacy policy\nThis program uses by default\n- the electrum/esplora server of [blockstream.com](https://blockstream.com/) to fetch blockchain data\n- fetches mempool fee information from [mempool.space](https://mempool.space/)\n\nYou can specify your own (personal) server for both in \"Network settings\".\n\nWhen enabeling the Sync&Chat feature [default relays](https://github.com/andreasgriffin/bitcoin-nostr-chat/blob/main/bitcoin_nostr_chat/default_relays.py) are used to transmit encrypted data to your approved trusted devices. You can specify your own relay(s) in the Sync&Chat settings.\n\nThis program will not transfer any other information to other networked systems unless specifically requested by the user or the person installing or operating it.",
"bugtrack_url": null,
"license": "GPL-3.0",
"summary": "A bitcoin savings wallet for the entire family.",
"version": "1.0.5",
"project_urls": {
"Homepage": "https://www.bitcoin-safe.org"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "91bc35d2151808ed35268cc4e8dccffac70bfa2c4f321f64470bf1cbcae35732",
"md5": "8e43cc578db5d02cc9625a74f64103a5",
"sha256": "5617dae3d41b8f9ade282211ac52643ac1280132394c582b5773e6a66865bb19"
},
"downloads": -1,
"filename": "bitcoin_safe-1.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8e43cc578db5d02cc9625a74f64103a5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.10",
"size": 4898630,
"upload_time": "2025-02-03T15:38:27",
"upload_time_iso_8601": "2025-02-03T15:38:27.970411Z",
"url": "https://files.pythonhosted.org/packages/91/bc/35d2151808ed35268cc4e8dccffac70bfa2c4f321f64470bf1cbcae35732/bitcoin_safe-1.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c4277d89549d3ef8487abf638e5314e655659e77664819bf6fca5689f618fbd2",
"md5": "b850c244589a9b6f34ed5b5ae27ac7d5",
"sha256": "0d2892497c676acc4ab2227b632223b7eed3eda8622ec51000115851f7f0704d"
},
"downloads": -1,
"filename": "bitcoin_safe-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "b850c244589a9b6f34ed5b5ae27ac7d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 4687104,
"upload_time": "2025-02-03T15:38:32",
"upload_time_iso_8601": "2025-02-03T15:38:32.650410Z",
"url": "https://files.pythonhosted.org/packages/c4/27/7d89549d3ef8487abf638e5314e655659e77664819bf6fca5689f618fbd2/bitcoin_safe-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-03 15:38:32",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "bitcoin-safe"
}