mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-26 23:13:25 +00:00
build-wine/deterministic.spec: add Coldcard plugin and ckcc-protocol dependancy Require version 0.7.2 of ckcc-protocol (window fixes) Rework import paths to new standards Updated icons New minimum version, for latest PSBT constants Upgrade to final PSBT (BIP 174) standard encoding Remove log noise Show bootloader version number as well Handle case where libraries are missing better Remove noise about missing packages, for rest of world Add reference to ckcc-protocol module/data Remove dead code Beef up the README more Slightly better looking Add version numbers and upgrade firmware feature Split out DFU support into own file First pass at adding Coinkite Coldcard hardware wallet to Electrum
65 lines
2.4 KiB
Markdown
65 lines
2.4 KiB
Markdown
|
|
# Coldcard Hardware Wallet Plugin
|
|
|
|
## Just the glue please
|
|
|
|
This code connects the public USB API and Electrum. Leverages all
|
|
the good work that's been done by the Electrum team to support
|
|
hardware wallets.
|
|
|
|
## Background
|
|
|
|
The Coldcard has a larger screen (128x64) and a number pad. For
|
|
this reason, all PIN code entry is done directly on the device.
|
|
Coldcard does not appear on the USB bus until unlocked with appropriate
|
|
PIN. Initial setup, and seed generation must be done offline.
|
|
|
|
Coldcard uses an emerging standard for unsigned tranasctions:
|
|
|
|
PSBT = Partially Signed Bitcoin Transaction = BIP174
|
|
|
|
However, this spec is still under heavy discussion and in flux. At
|
|
this point, the PSBT files generated will only be compatible with
|
|
Coldcard.
|
|
|
|
The Coldcard can be used 100% offline: it can generate a skeleton
|
|
Electrum wallet and save it to MicroSD card. Transport that file
|
|
to Electrum and it will fetch history, blockchain details and then
|
|
operate in "unpaired" mode.
|
|
|
|
Spending transactions can be saved to MicroSD using the "Export PSBT"
|
|
button on the transaction preview dialog (when this plugin is
|
|
owner of the wallet). That PSBT can be signed on the Coldcard
|
|
(again using MicroSD both ways). The result is a ready-to-transmit
|
|
bitcoin transaction, which can be transmitted using Tools > Load
|
|
Transaction > From File in Electrum or really any tool.
|
|
|
|
<https://coldcardwallet.com>
|
|
|
|
## TODO Items
|
|
|
|
- No effort yet to support translations or languages other than English, sorry.
|
|
- Coldcard PSBT format is not likely to be compatible with other devices, because the BIP174 is still in flux.
|
|
- Segwit support not 100% complete: can pay to them, but cannot setup wallet to receive them.
|
|
- Limited support for segwit wrapped in P2SH.
|
|
- Someday we could support multisig hardware wallets based on PSBT where each participant
|
|
is using different devices/systems for signing, however, that belongs in an independant
|
|
plugin that is PSBT focused and might not require a Coldcard to be present.
|
|
|
|
### Ctags
|
|
|
|
- I find this command useful (at top level) ... but I'm a VIM user.
|
|
|
|
ctags -f .tags electrum `find . -name ENV -prune -o -name \*.py`
|
|
|
|
|
|
### Working with latest ckcc-protocol
|
|
|
|
- at top level, do this:
|
|
|
|
pip install -e git+ssh://git@github.com/Coldcard/ckcc-protocol.git#egg=ckcc-protocol
|
|
|
|
- but you'll need the https version of that, not ssh like I can.
|
|
- also a branch name would be good in there
|
|
- do `pip uninstall ckcc` first
|
|
- see <https://stackoverflow.com/questions/4830856>
|