SeedSigner v0.8.0: The 'Low Time Preference' Release

SeedSigner offers anyone the opportunity to build a verifiably air-gapped, stateless Bitcoin signing device using inexpensive, publicly available hardware components (usually < $50).

SeedSigner v0.8.0: The 'Low Time Preference' Release
  • "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," announced the project.
Check out SeedSigner's independent custody guide to learn what the project is all about. If you're getting value from the project, consider making a donation to SeedSigner's development fund.

Highlights

  • Additional legacy signing support.
    • P2PKH (BIP-44): Legacy format dating back to 2014.
    • P2SH multisig (BIP-45): Legacy multisig (also 2014).
  • Quality-of-Life improvements.
    • New animated QR scanning UI + frame-by-frame feedback (green/gray dot):
      • Green = QR frame read, new data received
      • Gray = QR frame read, but no new data
      • No dot = wtf are you pointing at?
    • 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 BIP-39 passphrases, verifying multisig change, etc.
    • Two new community-created 3d-printable enclosure designs.
  • Explicit support for PSBTs w/OP_RETURN asd .
    • Displays the human-readable message or the raw hex data.
  • Import Electrum Seeds.
    • Import an Electrum native segwit mnemonic, export xpub, sign txs.
"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."
  • Major code refactors, Github automations, MOAR TESTS.
    • Crucial yet unwieldy code got much more wieldy.
    • Awesome Github Actions integrations to automate test suite checks and generate custom SeedSigner OS images.
    • Significant upgrades to the test suite, both under the hood and overall test coverage.
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."

Full release notes

New Features

  • Add Legacy P2PKH Signing.
  • Support BIP-45 legacy multisig P2SH.
  • Add limited support for Electrum segwit seeds.
  • Parse PSBTs with OP_RETURN data and display payload.

Improvements

  • Animated QR scanning: new UI and improved progress calculation.
  • Hold QR animation on brightness tips and reset animated QR sequence.
  • Add exit dialog when entering passphrase.
  • Render SeedQR small registration block in solid squares.
  • Clearer UI when multisig change or self-transfer outputs aren't yet verified.

Bugfixes

  • Xpub export can select the wrong coordinator.
  • Message Signing TextDoesNotFitException on long no whitespace messages.

New Enclosures

CI / Github integrations

  • Test suite integration with Github Actions, runs on each PR update.
  • Initial build workflow via Github Actions.
  • More robust automated build integrations.

For developers

Documentation

  • Improved manual dev build instructions.
  • Clarify reproducible build steps vs manual dev build.
  • Misc updates.

Misc / Nerdy details

  • Improve FlowTest + Exception handling interactions.
  • QR Encoder refactor + fountain encoder restart().
  • Taproot support enabled by default.
  • Improved error message for missing font.
  • Controller import cleanup/refactor.
  • Fix unhandled exception when attempting to sign message for custom derivation address.
  • UI BTC Address cutoff in PSBTAddressDetailsScreen screen.
  • Fix issue caused by having is_sign_message method and property of same name.
  • Fix min python version to 3.10.
  • Dependency bumps for python3.10 compatibility.
  • Add Python 3.12 to test matrix as upper bound and fix findings.
  • embit version updated to v0.8.0.
  • Trimming / moving dependencies.
  • Refactor around Pillow deprecations.
  • Migrate to pyproject.toml.
  • Setup Python logging + convert print statements to logger calls.
  • Restore log access in pytest.
  • Additional tests.
  • Additional screenshots added to the screenshot generator.

GitHub Repo