Latest Release

SeedSigner v0.8.0

It's admittedly been a minute since our last release -- we've always built carefully and deliberately, and we continue to refine our software so bitcoiners everywhere can have a better and better permissionless signing device.

Quick Highlights:

Addtional legacy signing support:

  • P2PKH (bip44): Legacy format dating back to 2014
  • P2SH multisig (bip45): Legacy multisig (also 2014)

Quality-of-Life improvements ❀️

  • New animated QR scanning UI + frame-by-frame feedback
  • Much better animated QR scanning progress estimation calcs: no more stuck-at-99%-progress misery!
  • Smarter rendering of outgoing animated QRs = faster reads by wallet software
  • UX improvements when entering bip39 passphrases, verifying multisig change, etc.
  • Two new community-created 3d-printable enclosure designs

Explicit support for PSBTs w/OP_RETURN

  • displays the human-readable message or the raw hex data

Import Electrum Seeds 🌱

  • Import an Electrum native segwit mnemonic, export xpub, sign txs.

Major code refactors, Github automations, MOAR TESTSπŸ”₯!

  • Crucial yet unwieldy code got much more wieldy
  • Awesome Github Actions integrations to automate test suite checks & generate custom SeedSigner OS images
  • Significant upgrades to the test suite, both under the hood & overall test coverage

Notes:

Legacy multisig support enables full SeedSigner compatibility with Unchained vaults! (this is unofficial; don't expect Unchained customer support to be able to help you)

The new animated QR scanning UI is sexy (@easyuxd ftw!) and adds a green/gray feedback dot: * Green = QR frame read, new data received * Gray = QR frame read, but no new data * No dot = wtf are you pointing at?

New Pro Tip: If your software coordinator seems stalled when reading a long outgoing animated QR, flick the SeedSigner joystick up/down. Why? The first few frames of an animated QR are the most valuable and they do NOT repeat. But now when you change your SeedSigner's outgoing QR code brightness (joystick up/down), those valuable frames are re-played.

Adding limited support for Electrum seeds is meant to help legacy/OG users eventually migrate away from Electrum and into more standardized wallet software. Full integration with Electrum is not planned.


image image image image image image


Four .img files are included in the release; select the one that is appropriate for your Raspberry Pi hardware:

  • "pi0.img" - For Raspberry Pi Zero v1.3 & Raspberry Pi Zero W
  • "pi2.img" - For Raspberry Pi 2 Model B
  • "pi02w.img" - For Raspberry Pi Zero 2 W & Raspberry Pi 3 Model B
  • "pi4.img" - For Raspberry Pi 4 Model B

To install on your microSD card:

  • Download the appropriate .img file
  • Write the extracted image to a MicroSD card (32MB or larger)
  • (make sure to use "dd" or a disk-authoring tool like Balena Etcher)
  • Install the memory card in your signer

Checking your download for integrity and authenticity is super important -- with SeedSigner, you are the software authenticity assurance!

More Notes:

  • Check out our Independent Custody Guide to read more on what our project is all about: https://github.com/SeedSigner/independent_custody_guide
  • If you are getting value from SeedSigner, please consider donating to our development fund: https://seedsigner.com/donate-now/

Full details:

  • Lead Maintainer: @newtonick
  • Most prolific PR reviewer/tester: @jdlcdl
  • πŸŽ‰πŸŽ‰ NINE new devs contributed to this release! πŸŽ‰πŸŽ‰

New Features:

  • Add Legacy P2PKH Signing: @3rdIteration; w/@jdlcdl, @BamaHodl, @newtonick (#567)
  • Support bip45 legacy multisig p2sh: @kdmukai, @newtonick; w/@jdlcdl (#540, #572)
  • Add limited support for electrum segwit seeds: @BamaHodl (πŸŽ‰ FIRST PR!), @kdmukai; w/@jdlcdl, @newtonick, @pointbiz, @berlinxray, @jamesturnernz, @3rdIteration (#513, #571)
  • Parse psbts with OP_RETURN data & display payload: @kdmukai; w/@jdlcdl, @newtonick, @petertodd (#517)

Improvements:

  • Animated QR scanning: new UI and improved progress calculation: @kdmukai, design by @easyuxd (#541)
  • Hold QR animation on brightness tips and reset animated QR sequence: @kdmukai; w/@jdlcdl (#495)
  • Add exit dialog when entering passphrase: @alvroble (πŸŽ‰ FIRST PR!); w/@jdlcdl, @kdmukai, @easyuxd, @seedsigner, @dulcedu (#563)
  • Render SeedQR small registration block in solid squares: @kdmukai; w/@jdlcdl (#484)
  • Clearer UI when multisig change or self-transfer outputs aren't yet verified: @3rdIteration, @newtonick; w/@kdmukai (#533, #549)

Bugfixes:

  • Xpub export can select the wrong coordinator: @kdmukai (#490)
  • Message Signing TextDoesNotFitException on long no whitespace messages: @newtonick (#576)

New Enclosures:

  • "Look Screws!": @surfac3 (πŸŽ‰ FIRST PR!); w/@newtonick (#505)
  • "Push Case": @kayth21; w/@seedsigner, @newtonick (#548)

CI / Github integrations:

  • Test suite integration w/Github Actions, runs on each PR update: @dbast (πŸŽ‰ FIRST PR!); w/@jdlcdl, @kdmukai (#469)
  • Initial build workflow via Github Actions: @overcat; w/@newtonick, @kdmukai (#392)
  • More robust automated build integrations: @dbast; w/@kdmukai (#493)

For developers:

  • Add PR template: @newtonick; w/@jdlcdl, @kdmukai (#441)
  • Update seed_phrase_to_qr.py; warnings, add Compact SeedQR: @kdmukai (#523)
  • Entropy-to-mnemonic CLI utility: @kdmukai; w/@jdlcdl, @newtonick (#404)
  • Add optional Docker env to run test suite, generate screenshots: @newtonick; w/@jdlcdl, @kdmukai (#476)

Documentation:

  • Improved manual dev build instructions: @hax0rbana-adam, @kdmukai; w/@jdlcdl (#436, #509)
  • Clarify reproducible build steps vs manual dev build: @newtonick; w/@jdlcdl, @kdmukai (#487)
  • Misc updates: @newtonick, @thedon702, @seedsigner, @smartm0use (πŸŽ‰ FIRST PR!), @akarve (πŸŽ‰ FIRST PR!), @jambolo (πŸŽ‰ FIRST PR!) (#481, #478, #458, #486, #539, #565, #532, #587, #588, #593)

Misc / Nerdy details:

  • Improve FlowTest + Exception handling interactions: @kdmukai; w/@newtonick, @Marc-Gee (#573)
  • QR Encoder refactor + fountain encoder restart(): @kdmukai; w/@jdlcdl, @newtonick (#494)
  • Taproot support enabled by default: @1ma (πŸŽ‰ FIRST PR!) (#538)
  • Improved error message for missing font: @dbast; w/@jdlcdl, @kdmukai (#471)
  • Controller import cleanup/refactor: @kdmukai; w/@jdlcdl (#496)
  • Fix unhandled exception when attempting to sign message for custom derivation address: @BamaHodl (#518)
  • UI BTC Address cutoff in PSBTAddressDetailsScreen screen: @newtonick, @kdmukai; w/@jdlcdl (#579, #583)
  • Fix issue caused by having is_sign_message method and property of same name: @BamaHodl; w/@dbast (#578)
  • Fix min python version to 3.10: @dbast; w/@jdlcdl (#470)
  • Dependency bumps for python3.10 compatibility: @LilySu (πŸŽ‰ FIRST PR!); w/@newtonick, @TABConf (#477)
  • Add Python 3.12 to test matrix as upper bound and fix findings: @dbast (#559)
  • embit version updated to v0.8.0: @newtonick; shout out @stepansnigirev! (#566)
  • Trimming / moving dependencies: @dbast; w/@jdlcdl, @newtonick (#543)
  • Refactor around Pillow deprecations: @newtonick (#485)
  • Migrate to pyproject.toml: @dbast; w/@kdmukai (#554)
  • Setup Python logging + convert print statements to logger calls: @dbast; w/@jdlcdl, @kdmukai (#558)
  • Restore log access in pytest: @kdmukai (#574)
  • Additional tests: @jdlcdl, @kdmukai (#466, #524)
  • Additional screenshots added to the screenshot generator: @kdmukai (#521)

Data updated on: 2024-12-21 09:29 UTC