Skip to content

Instantly share code, notes, and snippets.

@kdmukai
Last active July 7, 2026 17:15
Show Gist options
  • Select an option

  • Save kdmukai/8c9a5dd247d3925690b7186a7a6c03ee to your computer and use it in GitHub Desktop.

Select an option

Save kdmukai/8c9a5dd247d3925690b7186a7a6c03ee to your computer and use it in GitHub Desktop.
SeedSigner v0.8.7 Release Notes

SeedSigner v0.8.7 Release Notes

SeedSigner v0.8.7 Release Notes


The "Summer of SeedSigner" Release

v0.8.7 includes 80 PRs from 20 contributors along with 13 new volunteer translation teams.

This release incorporates work from a wave of new contributors via the Summer of Bitcoin mentorship program. Nine new devs contributed to v0.8.7! And this is just the first batch of work; most of the newcomers' more ambitious changes are still in the pipeline for later releases.

v0.8.7's headline user-facing feature is our expanded localization effort which now covers 22 languages, including our first right-to-left language: Persian. This means that SeedSigner is now usable by an estimated 4.5+ billion people, roughly 60% of the world!

We've also included some important quality-of-life improvements to resolve some of the most common issues users run into.

But the bulk of the dev work was focused on behind-the-scenes code refactors to improve and further professionalize the codebase, our dev processes & releated tooling, and improving the breadth and reliability of the test suite.

This is a "calm before the storm" release. Significant new features are slated for v0.9.0 while simultaneously the massive work to port SeedSigner to a microcontroller races ahead towards its first alpha preview.


How to volunteer to add YOUR language


TODO: Include reproducible build hashes, signed release, etc

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 update your microSD card:

  • Download the appropriate .img file
  • Verify your download.
  • Flash the image to a MicroSD card (64MB or larger)
    • Must use a disk-authoring tool like Balena Etcher, Raspberry Pi Imager, or "dd".

More Notes:


Full release details:

New Features:

  • BBQr PSBT decoding: @newtonick; w/@fedebuyito (#601)
  • 13 NEW LANGUAGES!:
    • Fully supported:
      • Catalan / Català
      • German / Deutsch
      • Spanish / Español
      • French / Français
      • Italian / Italiano
      • Dutch / Nederlands
    • Beta:
      • Czech / Čeština (NEW)
      • Chinese Simplified / 简体中文
      • Hindi / हिन्दी (NEW)
      • Indonesian / Bahasa Indonesia (NEW)
      • Japanese / 日本語
      • Korean / 한국어 (NEW)
      • Persian / فارسی (NEW)
      • Polish / Polski (NEW)
      • Portuguese (Brazil) / Português (Brasil) (NEW)
      • Thai / ไทย (NEW)
      • Vietnamese / Tiếng Việt (NEW)
    • In progress:
      • Greek / Ελληνικά (NEW)
      • Norwegian / Norsk (NEW)
      • Russian / русский (NEW)
      • Turkish / Türkçe (NEW)

Improvements

  • Gracefully handle PSBTs that do not contain wallet fingerprint (BlueWallet 0000000 fingerprint issue): @alvroble; w/@kdmukai (#815)
  • Export Xpub: Remove "Coordinator" selection and instead directly select QR format: @kdmukai; w/@Chaitanya-Keyal, @newtonick (#844)
  • [Performance] Scrolling text can cause delays moving to next screen: @kdmukai; w/@alvroble (#849)
  • Disable screensaver during SeedQR transcription: @FazleRabbbiferdaus172; w/@kdmukai (#740; 🎉 NEW CONTRIBUTOR!)
  • Camera connection errors: Provide better error message: @kdmukai; w/@Chaitanya-Keyal, @bitcoinprecept, @newtonick (#748)

User-Facing Bugfixes:

  • Prevent English BIP-39 words from being accidentally translated: @Chaitanya-Keyal; w/@alvroble (#813; 🎉 NEW CONTRIBUTOR!)
  • Back Navigation in Seed Entry Views: @PROWLERx15; w/@Chaitanya-Keyal, @kdmukai (#900; 🎉 NEW CONTRIBUTOR!)

Misc / Nerdy Details:

  • [Enhancement] Added 'Calculating...' spinner while generating seed from Image Entropy: @krishnavbajoria02; w/@abhigit-saha, @kdmukai, @newtonick (#711; 🎉 NEW CONTRIBUTOR!)
  • [Enhancement] Restart on Manual Build: @Chaitanya-Keyal; w/@jdlcdl, @alvroble, @kdmukai @newtonick (#758; 🎉 NEW CONTRIBUTOR!)
  • [Enhancement] MicroSD toast timer settings: @alvroble; w/@newtonick (#600)
  • [Enhancement] Light reorg and simplification of PSBTChangeDetailsScreen: @kdmukai (#827)
  • [Enhancement] Move foreign font files to the seedsigner-translations repo: @newtonick; w/@kdmukai (#819)
  • [Bugfix] Empty Passphrase Handling: @notTanveer; w/@alvroble, @kdmukai, @newtonick (#790; 🎉 NEW CONTRIBUTOR!)
  • [Bugfix] Remove unnecessary sleep time in toast.py to speed up Screenshot Generator: @alvroble; w/@fedebuyito (#750)
  • [Bugfix] Update Dice Roll Count: @PROWLERx15; w/@kdmukai (#799; 🎉 NEW CONTRIBUTOR!)
  • [Bugfix] Multiselect settings must have a selection: @kdmukai; w/@Chaitanya-Keyal (#850)
  • [Refactor] Replace Screen.display with View.run_screen: @Chaitanya-Keyal; w/@alvroble, @notTanveer, @kdmukai (#801; 🎉 NEW CONTRIBUTOR!)
  • [Refactor] Tab spacing to Spaces: @megha-66; w/@kornpow, @alvroble; @kdmukai (#739; 🎉 NEW CONTRIBUTOR!)
  • [Refactor] replace PSBT text in codebase with Proposed transaction or Transaction: @FazleRabbbiferdaus172; w/@notTanveer, @newtonick, @seedsigner, @easyuxd (#804; 🎉 NEW CONTRIBUTOR!)
  • [Refactor] Enable auto-detection of screenshot generator renderer: @alvroble; w/@Chaitanya-Keyal (#796)
  • [Refactor] Remove bip85 app num: @Chaitanya-Keyal (#809; 🎉 NEW CONTRIBUTOR!)
  • [Refactor] Make DisplayDriver a true parent class; add DisplayDriverFactory: @kdmukai; w/@alvroble (#821)
  • [l10n] Move Italian to the "Fully supported languages" list: @kdmukai (#781)
  • [l10n] Remove libraqm workarounds and enforce libraqm dependency: @alvroble; w/@kdmukai, @newtonick (#774)
  • [l10n] Promote Thai to beta status; add Thai font: @kdmukai (#784)
  • [l10n] Add logger message in Controller if libraqm not supported: @alvroble; w/@notTanveer (#787)
  • [l10n] Enable Arabic and Persian: @kdmukai; w/@alvroble (#772)
  • [l10n] Updating messages.pot to dev at 3455aa4: @kdmukai (#824)
  • [l10n] Exception str does not need to be translated: @kdmukai; w/@alvroble (#825)
  • [l10n] Initial Hindi support: @kdmukai (#845)
  • [l10n] Mark missing strings for translation: @Chaitanya-Keyal; w/@kdmukai (#867; 🎉 NEW CONTRIBUTOR!)
  • [l10n] Make multisig wallet policy display translatable: @Chaitanya-Keyal; w/@kdmukai (#881; 🎉 NEW CONTRIBUTOR!)
  • [l10n] Update seedsigner-translations submodule to latest dev: @newtonick (#886)
  • [l10n] Finalize v0.8.7 languages: @kdmukai; w/@Chaitanya-Keyal (#889)
  • [l10n][Refactor] Remove TextArea.allow_text_overflow for improved localization / screenshot usability: @kdmukai; w/@alvroble (#761)
  • [Testing] Exhaustively test PSBTParser with all supported script types: @kdmukai; w/@alvroble (#763)
  • [Testing] Exclude hardware drivers from coverage: @kdmukai; w/@fedebuyito, @kornpow (#782)
  • [Testing] Fix inadvertently persistent test artifacts: @kdmukai; w/@Chaitanya-Keyal, @alvroble, @securesigner (#853)
  • [Cleanup] Update capitalization to Sentence case for buttons: @Advaitgaur004; w/@kdmukai, @notTanveer (#727; 🎉 NEW CONTRIBUTOR!)
  • [Cleanup] Clean up else condition to catch ALL remaining possibilities: @fedebuyito; w/@alvroble, @newtonick (#684)
  • [Cleanup] BIP references cleanup to read like "BIP-XX": @PROWLERx15; w/@alvroble, @notTanveer, @kornpow (#773; 🎉 NEW CONTRIBUTOR!)
  • [Cleanup] Trivial changes: Text, comments, etc: @kdmukai (#828)
  • [Cleanup] SeedOptionsView: Remove unreachable VERIFY_ADDRESS code: @kdmukai (#826)
  • [Cleanup] Remove dead code: buttons.py: @kdmukai; w/@newtonick (#830)
  • [Cleanup] Remove dead code: components.py: @kdmukai (#831)
  • [Cleanup] Remove dead code: keyboard.py: @kdmukai (#832)
  • [Cleanup] Remove dead code: misc *_screens.py: @kdmukai (#833)
  • [Cleanup] Remove dead code: scan_screens.py: @kdmukai (#834)
  • [Cleanup] Remove dead code: screen.py: @kdmukai (#835)
  • [Cleanup] Remove dead code: mnemonic_generation.py: @kdmukai (#836)
  • [Cleanup] SettingsDefinition minor improvements + better tests: @kdmukai (#861)
  • [Cleanup] Fix typos in source code comments and strings: @securesigner; w/@Chaitanya-Keyal, @PROWLERx15 (#847; 🎉 NEW CONTRIBUTOR!)
  • [Cleanup] Remove unnecessary CameraConnectionError error message: @kdmukai (#859)
  • [Cleanup] Eliminate the "Export xpub" Settings option: @Bicaru20; w/@kdmukai, @alvroble, @newtonick (#851; 🎉 NEW CONTRIBUTOR!)
  • [Maintenance] Use PyPI version for urtypes lib: @tadeubas; w/@newtonick, @kornpow (#753)
  • [Maintenance] Bump Pillow version to 10.3.0: @alvroble; w/@Chaitanya-Keyal (#871)
  • [Screenshot Generator][Enhancement] Add ScreenshotRenderer check to catch missing screenshots: @kdmukai; w/@Chaitanya-Keyal, @FazleRabbbiferdaus172, @newtonick (#805)
  • [Screenshot Generator][Refactor] Clean up the end of the screenshot generation process: @kdmukai (#806)
  • [Screenshot Generator][Refactor] Better state management: @kdmukai; w/@alvroble (#860)
  • [Screenshot Generator][New screenshot] Brightness tip during QR display: @kdmukai; w/@alvroble (#760)
  • [Screenshot Generator][New screenshot] Generate png for RestartView: @FazleRabbbiferdaus172; w/@Chaitanya-Keyal, @kdmukai (#803; 🎉 NEW CONTRIBUTOR!)
  • [Screenshot Generator] Update IOTestScreen to preserve "Clear" button: @Chaitanya-Keyal; w/@kdmukai (#879; 🎉 NEW CONTRIBUTOR!)
  • [CI] Modify CI to run test checks on all commits: @PROWLERx15; w/@Advaitgaur004, @Chaitanya-Keyal, @newtonick (#699; 🎉 NEW CONTRIBUTOR!)
  • [Documentation] Clarify that SeedQR uses English BIP39 wordlist: @krishnavbajoria02; w/@newtonick, @kdmukai (#698; 🎉 NEW CONTRIBUTOR!)
  • [Documentation] Update encode_qr.py - Adds comments to code: @fedebuyito; w/@kdmukai, @jdlcdl, @newtonick (#643)
  • [Documentation] Mention --ignore-missing flag issue on older macOS versions: @Chaitanya-Keyal; w/@newtonick (#703; 🎉 NEW CONTRIBUTOR!)
  • [Documentation] Improved Docs: @PROWLERx15; w/@notTanveer (#731; 🎉 NEW CONTRIBUTOR!)
  • [Documentation] SeedQR: Improve clarity on BIP-39 wordlist and indexing: @kdmukai (#816)
  • [Documentation] Update the PR template: set more explicit expectations re: tests: @kdmukai; w/@Chaitanya-Keyal (#877)
  • [Release] Ceremonial version bump to 0.8.7: @Chaitanya-Keyal; w/@kdmukai (#887; 🎉 NEW CONTRIBUTOR!)

Legacy Restoration

  • In honor of SeedSigner's 5th birthday: Minor fixes to make the original v0.0.1 from Dec 2021 runnable again: @kdmukai (#843)

SeedSigner OS updates:

  • TODO (if desired)

New contributors 🎉

First-ever contributions landed in v0.8.7:

  • @Advaitgaur004 (#727)
  • @Bicaru20 (#851)
  • @Chaitanya-Keyal (9 merged PRs!)
  • @FazleRabbbiferdaus172 (3 merged PRs)
  • @krishnavbajoria02 (2 merged PRs)
  • @megha-66 (#739)
  • @notTanveer (#790)
  • @PROWLERx15 (5 merged PRs)
  • @securesigner (#847)

Team

  • Project Lead / Creator: @seedsigner ("the man")
  • Lead Developer / Summer of Bitcoin Mentor: @kdmukai
  • Lead Maintainer / SeedSigner OS Lead: @newtonick
  • UX Designer: @easyuxd
  • Most Active Reviewers/Testers: @alvroble, @Chaitanya-Keyal

🎉🎉 9 new developers and 13 new translation teams contributed to this release! 🎉🎉

@Marc-Gee

Marc-Gee commented Jun 1, 2026

Copy link
Copy Markdown

A fantastic list of items handled, and so awesome to see 9 new contributors and 13 translation teams! 😁🍊💊❤️🔥🔥

My two favorite bug fixes would be the blue wallet zero fingerprint issue and the camera cable connection error message improvement!
👏👏👏👏👏

@newtonick

Copy link
Copy Markdown

LGTM

@SeedSigner

Copy link
Copy Markdown

LGTM -- appreciate your work on this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment