Metadata-Version: 2.1
Name: cryptoadvance.specter
Version: 0.0.2
Summary: A GUI for Bitcoin Core optimised to work with airgapped hardware wallets
Home-page: https://github.com/cryptoadvance/specter-desktop
Author: Stepan Snigirev, Kim Neunert
Author-email: snigirev.stepan@gmail.com, kim.neunert@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Framework :: Flask
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: certifi (==2019.9.11)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: Click (==7.0)
Requires-Dist: ecdsa (==0.13.3)
Requires-Dist: Flask (==1.1.1)
Requires-Dist: Flask-QRcode (==3.0.0)
Requires-Dist: hidapi (==0.7.99.post21)
Requires-Dist: hwi (==1.0.3)
Requires-Dist: idna (==2.8)
Requires-Dist: itsdangerous (==1.1.0)
Requires-Dist: Jinja2 (==2.10.3)
Requires-Dist: libusb1 (==1.7.1)
Requires-Dist: MarkupSafe (==1.1.1)
Requires-Dist: mnemonic (==0.18)
Requires-Dist: pbkdf2 (==1.3)
Requires-Dist: Pillow (==6.2.0)
Requires-Dist: pyaes (==1.6.1)
Requires-Dist: python-dotenv (==0.10.3)
Requires-Dist: qrcode (==6.1)
Requires-Dist: requests (==2.22.0)
Requires-Dist: six (==1.12.0)
Requires-Dist: stem (==1.7.1)
Requires-Dist: typing-extensions (==3.7.4)
Requires-Dist: urllib3 (==1.25.6)
Requires-Dist: Werkzeug (==0.16.0)
Requires-Dist: serial (==0.0.97)
Requires-Dist: pyserial (==3.4)
Requires-Dist: docker (==4.1.0)
Requires-Dist: pytest (==5.2.2)

# Specter Desktop

[![Build Status](https://travis-ci.org/cryptoadvance/specter-desktop.svg?branch=master)](https://travis-ci.org/cryptoadvance/specter-desktop)

## DISCLAIMER

This software is **WORK IN PROGRESS and NOT READY TO USE YET**. Currently tested only in Chrome, so in other browsers it may look weird.

If something doesn't work open an issue here or ask a question in our [Telegram group](https://t.me/spectersupport) or [Slack](https://join.slack.com/t/spectersupport/shared_invite/enQtNzY4MTQ2MTg0NDY1LWQzMGMzMTk2MWE2YmVmNzE3ODgxODIxNWRlMzJjZTZlMDBlMjA5YzVhZjQ0NzJlNmE0N2Q4MzE0ZGJiNjM4NTY).

## Why?

Bitcoin Core has a very powerful command line interface and a wonderful daemon. Using PSBT and HWI it can also work with hardware wallets, but at the moment it is too linux-way. The same applies to multisignature setups. 

The goal of this project is to make a convenient and user-friendly GUI around Bitcoin Core with a focus on multisignature setup with airgapped hardware wallets.

At the moment we are working on integration of our [Specter-DIY hardware wallet](https://github.com/cryptoadvance/specter-diy) that uses QR codes as a main communication channel, and ColdCard that uses SD cards. Later on we plan to integrate "hot" hardware wallets using [HWI tool](https://github.com/bitcoin-core/HWI) and [Junction](https://github.com/justinmoon/junction).

## How to run

Clone the repo, install dependencies:

HWI support requires `libusb` (necessary? Or is `pip install libusb1` sufficient?):
* Ubuntu/Debian: `sudo apt install libusb-1.0-0-dev libudev-dev`
* macOS: `brew install libusb`

```
git clone https://github.com/cryptoadvance/specter-desktop.git
cd specter-desktop
virtualenv --python=python3 .env
source .env/bin/activate
pip3 install -r requirements.txt
pip3 install -e .
```

Run the server:

```
cd specter-desktop
python3 -m cryptoadvance.specter server
```

If your Bitcoin Core is using a default data folder the app should detect it automatically. If not, consider setting `rpcuser` and `rpcpassword` in the `bitcoin.conf` file and in the app settings.

Have a look at [DEVELOPMENT.md](https://github.com/cryptoadvance/specter-desktop/blob/master/DEVELOPMENT.md) for further information about hacking on specter-desktop.

## A few screenshots

### Adding a new device

![](screenshots/devices.jpg)

![](screenshots/device_keys.jpg)

### Creating a new wallet

![](screenshots/wallets.jpg)

![](screenshots/new_multisig.jpg)

### Wallet interface

![](screenshots/transactions.jpg)

![](screenshots/receive.jpg)

![](screenshots/send.jpg)

### Configuration

![](screenshots/bitcoin-rpc.jpg)


## Make Specter Desktop available externally over Tor
see: [docs/tor.md](docs/tor.md)


