SP
← All projectsSpecter

Specter DIY

DIY air-gapped Bitcoin hardware-wallet firmware.

BitcoinHardware walletsNormal
Repository coverage

33 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

13security candidates5second-pass queue28AI analyses
8commits · 30 days
10commits · 60 days
12commits · 180 days
33commits · 365 days
Backfill bands
Aug 5 → Feb 618 seen6 candidatesComplete
Feb 6 → Jun 65 seen1 candidatesComplete
Jun 6 → Jul 60 seen0 candidatesComplete
Jul 6 → Aug 50 seen0 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

66/100 average clarity
7Strong · 80–100
11Adequate · 60–79
15Thin · 40–59
0Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Schnuartz AI513177
White7hat7111193
k9ert10710064
3rd Iteration515056
Tads212076
Oren111073
Schnuartz111058
Mike Tolkachev302054
maggo83200058
al-munazzim202083
Azzbo77101058
Analysis record

Published AI watches

Last scanned 16 minutes ago

Informational 15 AI analysisMessage 68 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

Fix reproducible build (#371) (#412)

This commit fixes the firmware build process so that two people building from the same source code get the exact same binary file. Previously, the build script embedded local git details (like the repository URL, branch name, or commit has…

Reproducible build hardeningRemoval of build-environment-dependent metadata from release artifactsHash-locked dependency installation via pip --require-hashes
e4266c10by Schnuartz AI+218−196 files
No security note in commit
High 77 AI analysisMessage 93 · Strong
SP SpecterSpecter DIY BitcoinHardware wallets

Fix: Reject dead-TRNG output in get_random_bytes (#370) (#372)

This commit fixes a security bug in how Specter DIY generates random numbers for creating cryptocurrency wallet secrets. Previously, if the hardware random-number generator (TRNG) stalled or failed, the device would silently use all-zero o…

Silent use of dead TRNG output for cryptographic seed generationTRNG timeout returns 0 per byte, producing all-zero or majority-zero buffersEntropy pool was fed with dead bytes before any validation
65fcb983by White7hat7+221−73 files
Vendor flagged security relevance
High 78 AI analysisMessage 85 · Strong
SP SpecterSpecter DIY BitcoinHardware wallets

feat: Fix change-output classification to require verified descriptor derivation (#387)

This commit fixes a security bug in Specter DIY, a hardware wallet, where the device could wrongly hide a transaction output as 'change' (your own money coming back) when it actually went to an attacker or to another of your own wallet add…

Fixes incorrect change-output classification that could hide attacker-controlled or self-payment outputsAdds cryptographic verification of PSBT derivation metadata against locally stored descriptor and output scriptPubKeyAdds explicit warnings for inconsistent host-supplied change metadata
fc0e32d6by Schnuartz AI+1514−599 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 65 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

chore: Update embit to v0.8.2 (#376)

This commit updates the embedded embit cryptography library to version 0.8.2 and adds a small compatibility shim so Specter DIY can accept a new style of Bitcoin wallet descriptor that mixes fixed and multi-path keys. Most of the changes a…

Dependency update to embit v0.8.2Monkey-patch of cryptographic descriptor parsing to bypass a library validation errorNew test coverage for mixed multipath/fixed-path descriptor parsing
2ff670caby Mike Tolkachev+224−1116 files
No security note in commit
Moderate 60 AI analysisMessage 73 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

Re-add mixed-inputs warning for multi-wallet transactions (#382)

This commit restores a security warning on the Specter DIY hardware wallet. When a user is about to sign a Bitcoin transaction that spends coins from more than one wallet, or from several unknown sources, the device now shows a clear 'mixe…

Re-adds a security warning that was previously removedMitigates multisig/mixed-input change-address attack classWarning is now displayed at the top of the confirmation screen without requiring scrolling
72234589by Schnuartz AI+283−218 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 68 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

Bump firmware version to v1.10.3 (#351)

This commit changes a single version number string in the bootloader from v1.10.1 to v1.10.3. There is no functional code change, no bug fix, and no security-relevant behavior modification. It is purely a release version bump.

eb8397d2by k9ert+1−11 file
No security note in commit
Informational 0 AI analysisMessage 68 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

Update bootloader submodule to latest (#350)

This commit only updates a Git submodule pointer for the bootloader to a newer commit. No actual source code changes are shown, and no verified security references were provided. There is no direct evidence in the materials that this updat…

95353b64by k9ert+1−11 file
No security note in commit
Informational 15 AI analysisMessage 53 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

Bump firmware version to v1.10.1 (#346)

This commit simply updates a hardcoded firmware version string from v1.10.0 to v1.10.1 and removes a trailing space in a comment. There is no functional code change and no security relevance visible in the diff.

df07bb65by Mike Tolkachev+2−21 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
SP SpecterSpecter DIY BitcoinHardware wallets

Fix: minor comment cleanups (#343)

This commit only fixes three comments in the source code: two replace the word 'he' with 'they' for inclusive language, and one corrects 'dont' to 'don't'. No executable code, logic, or security behavior was changed.

8131bc93by al-munazzim+3−32 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
SP SpecterSpecter DIY BitcoinHardware wallets

Docs: fix grammar and update LVGL library name (#342)

This commit only updates two lines in documentation files: it renames the GUI library from 'LittlevGL' to 'LVGL' and fixes a grammar typo ('splitted' to 'split'). There are no code changes and no security implications.

d6c2bb0eby al-munazzim+2−22 files
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

release: prepare release (#340)

This commit is a routine release preparation for the Specter DIY hardware wallet. The only meaningful change is updating an embedded version string from '0100900099' to '0101000099'. There are no security fixes, new features, or behavior c…

30ebb834by k9ert+62−622 files
No security note in commit
Informational 18 AI analysisMessage 58 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

Fix #329: Hide disabled QR scanner in recovery phrase import menu (#338)

This commit fixes a UI bug in the recovery phrase import menu. Previously, the menu showed buttons for import methods (like a QR scanner) even when those methods were disabled. Now it only shows methods that are actually enabled. This is a…

UI consistency fix for disabled functionalityNo cryptographic, authentication, or authorization changesNo input validation, memory safety, or privilege changes
6bbec30aby Azzbo77+1−11 file
No security note in commit
Informational 15 AI analysisMessage 70 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

feat: Removed ben and added k9ert keys for releasing (#306)

This commit updates the list of trusted public keys used to sign firmware releases for the Specter DIY hardware wallet. One maintainer's key (ben) was removed and another maintainer's key (k9ert) was added. There is no code change that int…

7bfd5196by k9ert+1−11 file
No security note in commit
Informational 19 AI analysisMessage 73 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

Show Transaction Version, Locktime and inputs' sequences when signing transactions! (#321)

This commit adds more information to the transaction signing screen of the Specter DIY hardware wallet. It now shows the transaction version, locktime, and each input's sequence number, helping users spot unusual transaction settings (such…

UI now surfaces transaction version, nLockTime, and input nSequence during signingSequence values are interpreted to warn about RBF and relative locktimeLocktime is flagged when all inputs have sequence=0xFFFFFFFF (locktime disabled)
3d1bb8edby Oren+207−108 files
No security note in commit
Informational 11 AI analysisMessage 93 · Strong
SP SpecterSpecter DIY BitcoinHardware wallets

Add full M3Y support and fix QR scanning issues for GM65 and M3Y (#335)

This commit adds support for a new QR scanner model (M3Y) and fixes several QR scanning bugs for existing GM65 scanners. The changes are primarily about hardware compatibility and reliability: making sure different scanner models are detec…

No memory-safety fixes (buffer increase is functional, not overflow mitigation)No input validation or sanitization changes beyond completeness checks for QR framesNo cryptographic changes
97ab4d41by Tads+361−1222 files
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

Add support for selecting and combining build actions (#333)

This commit is a build-system and documentation refactor. It splits a single long firmware build script into smaller selectable actions (like 'build main firmware', 'build bootloader', 'assemble', 'sign', 'hash', etc.), fixes a Dockerfile …

1f98790bby Tads+194−605 files
No security note in commit
Informational 11 AI analysisMessage 53 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

Add bootloader to upgrade binary (#323)

This commit changes a build script so that the upgrade package now includes the bootloader alongside the main application firmware, and adds a safety flag that stops the script on first error. There is no direct evidence in the commit that…

Build script now includes bootloader in upgrade binaryBuild script now fails fast with set -eNo explicit security claim in commit message or diff
ed9ad9a6by k9ert+4−21 file
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

fix: import issues (#332)

This commit fixes how the project's test scripts set up Python's module search path and how they detect a missing optional dependency. It only changes files inside the 'test/' directory, which are used for running automated tests on a regu…

5bc685c5by k9ert+16−72 files
No security note in commit
Informational 21 AI analysisMessage 58 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

Fix for newer GM65 Scanners scanning CompactSeedQR + Add "About Screen" (#299)

This commit is primarily a hardware-compatibility fix for newer GM65 QR scanners used with the Specter DIY Bitcoin hardware wallet. It adds logic to detect a specific scanner firmware version and enable a special 'RAW' mode so binary QR co…

Adds STM32 flash read/write protection status reporting (RDP level, write protection)Adds firmware boot mode detection via VTOR addressAdds bootloader lock status reporting
031d285bby 3rd Iteration+596−489 files
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
SP SpecterSpecter DIY BitcoinHardware wallets

Update build firmware.sh to add no bootloader build by default (#315)

This change simply updates the project's firmware build script and documentation to also produce a 'no bootloader' firmware image by default. It is a developer convenience for testing on development boards and does not alter any runtime co…

6f66962aby 3rd Iteration+21−03 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Lower-priorityDocumentation: Fix 404 for udev nav entry via docs/udev symlink (#424)by maggo83 · b9c85b96 · Sep 8, 2026 · 1 fileMessage 58 · ThinTriage 0Details
Commit message · maggo83

Documentation: Fix 404 for udev nav entry via docs/udev symlink (#424)

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
documentation-only discount
Lower-prioritydocs: document per-release sha256.signed.txt signer (v1.10.5 = Mike Tolkachev) (#423)by Schnuartz AI · e70e37e9 · Sep 8, 2026 · 3 filesMessage 85 · StrongTriage 0Details
Commit message · Schnuartz AI

docs: document per-release sha256.signed.txt signer (v1.10.5 = Mike Tolkachev) (#423)

Co-authored-by: Schnuartz <schnuartz@gmail.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
Lower-priorityBump firmware version to v1.10.5by Mike Tolkachev · b2d87e55 · Sep 3, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Mike Tolkachev

Bump firmware version to v1.10.5

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Security candidateFix reproducible build (#371) (#412)by Schnuartz AI · e4266c10 · Sep 3, 2026 · 6 filesMessage 68 · AdequateInformational 15Details
Commit message · Schnuartz AI

Fix reproducible build (#371) (#412)

Co-authored-by: Schnuartz <schnuartz@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit fixes the firmware build process so that two people building from the same source code get the exact same binary file. Previously, the build script embedded local git details (like the repository URL, branch name, or commit hash) into the firmware, which changed the final binary depending on how the source was downloaded. The change strips those local details from release builds and adds tests to prove the output is now identical regardless of the source's git history. It is a reproducible-build hardening patch, not a fix for an exploitable vulnerability.

Security candidateFix: Reject dead-TRNG output in get_random_bytes (#370) (#372)by White7hat7 · 65fcb983 · Sep 3, 2026 · 3 filesMessage 93 · StrongHigh 77Details
Commit message · White7hat7

Fix: Reject dead-TRNG output in get_random_bytes (#370) (#372)

Co-authored-by: Nazim <nazim@openclaw.ai>
Co-authored-by: k9ert <117085+k9ert@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · High 77/100

This commit fixes a security bug in how Specter DIY generates random numbers for creating cryptocurrency wallet secrets. Previously, if the hardware random-number generator (TRNG) stalled or failed, the device would silently use all-zero or mostly-repeated bytes, which could lead to predictable private keys and seed phrases. The patch adds a sanity check that rejects such 'dead' random output and raises an error instead of using it. The bug is serious because weak randomness can let an attacker guess a user's wallet keys, but the patch only detects obvious failures (all-zero or heavily repeated output), not every possible TRNG weakness.

AI review queuedfeat: Fix change-output classification to require verified descriptor derivation (#387)by Schnuartz AI · fc0e32d6 · Sep 3, 2026 · 9 filesMessage 85 · StrongHigh 78Details
Commit message · Schnuartz AI

feat: Fix change-output classification to require verified descriptor derivation (#387)

Co-authored-by: Mike Tolkachev <contact@miketolkachev.dev>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · High 78/100

This commit fixes a security bug in Specter DIY, a hardware wallet, where the device could wrongly hide a transaction output as 'change' (your own money coming back) when it actually went to an attacker or to another of your own wallet addresses. The old code trusted the host computer's claim that an output was change based only on which wallet owned the inputs. The new code independently re-derives the output address from the wallet's descriptor and only hides it as change when the math matches exactly, the descriptor has the standard two branches, and the output is on the change branch. It also warns the user when the host's metadata does not match.

AI review queuedchore: Update embit to v0.8.2 (#376)by Mike Tolkachev · 2ff670ca · Sep 3, 2026 · 16 filesMessage 65 · AdequateInformational 19Details
Commit message · Mike Tolkachev

chore: Update embit to v0.8.2 (#376)

65/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit updates the embedded embit cryptography library to version 0.8.2 and adds a small compatibility shim so Specter DIY can accept a new style of Bitcoin wallet descriptor that mixes fixed and multi-path keys. Most of the changes are build/test plumbing (submodules, paths, smoke tests) rather than a security fix. There is no direct evidence in the commit that this resolves an exploitable vulnerability.

AI review queuedRe-add mixed-inputs warning for multi-wallet transactions (#382)by Schnuartz AI · 72234589 · Sep 3, 2026 · 8 filesMessage 73 · AdequateModerate 60Details
Commit message · Schnuartz AI

Re-add mixed-inputs warning for multi-wallet transactions (#382)

Co-authored-by: Mike Tolkachev <contact@miketolkachev.dev>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 60/100

This commit restores a security warning on the Specter DIY hardware wallet. When a user is about to sign a Bitcoin transaction that spends coins from more than one wallet, or from several unknown sources, the device now shows a clear 'mixed inputs' warning at the top of the confirmation screen. This helps protect against a known class of attack where a malicious co-signer or software wallet can trick the device into sending change to the wrong address, potentially stealing funds. The warning had existed before but was accidentally dropped during an earlier code refactor.

Lower-priorityDocumentation: Add link to udev/README.md to mkdocs (#345)by maggo83 · 3f3c8313 · Aug 16, 2026 · 1 fileMessage 58 · ThinTriage 0Details
Commit message · maggo83

Documentation: Add link to udev/README.md to mkdocs (#345)

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Lower-prioritydocs: add SECURITY.md disclosure policy, refresh security model docs (#373)by Schnuartz AI · 4139dbda · Aug 8, 2026 · 8 filesMessage 75 · AdequateTriage 0Details
Commit message · Schnuartz AI

docs: add SECURITY.md disclosure policy, refresh security model docs (#373)

75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Lower-priorityBump firmware version to v1.10.3 (#351)by k9ert · eb8397d2 · Apr 9, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · k9ert

Bump firmware version to v1.10.3 (#351)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100

This commit changes a single version number string in the bootloader from v1.10.1 to v1.10.3. There is no functional code change, no bug fix, and no security-relevant behavior modification. It is purely a release version bump.

Security candidateUpdate bootloader submodule to latest (#350)by k9ert · 95353b64 · Apr 9, 2026 · 1 fileMessage 68 · AdequateInformational 0Details
Commit message · k9ert

Update bootloader submodule to latest (#350)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
update trustboot or update path
AI analysis · Informational 0/100

This commit only updates a Git submodule pointer for the bootloader to a newer commit. No actual source code changes are shown, and no verified security references were provided. There is no direct evidence in the materials that this update fixes or introduces a security issue.

Lower-priorityBump firmware version to v1.10.1 (#346)by Mike Tolkachev · df07bb65 · Mar 19, 2026 · 1 fileMessage 53 · ThinInformational 15Details
Commit message · Mike Tolkachev

Bump firmware version to v1.10.1 (#346)

53/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
AI analysis · Informational 15/100

This commit simply updates a hardcoded firmware version string from v1.10.0 to v1.10.1 and removes a trailing space in a comment. There is no functional code change and no security relevance visible in the diff.

AI review queuedFix: minor comment cleanups (#343)by al-munazzim · 8131bc93 · Feb 10, 2026 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · al-munazzim

Fix: minor comment cleanups (#343)

Co-authored-by: al-munazzim <al-munazzim@users.noreply.github.com>

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only fixes three comments in the source code: two replace the word 'he' with 'they' for inclusive language, and one corrects 'dont' to 'don't'. No executable code, logic, or security behavior was changed.

Lower-priorityDocs: fix grammar and update LVGL library name (#342)by al-munazzim · d6c2bb0e · Feb 10, 2026 · 2 filesMessage 85 · StrongInformational 15Details
Commit message · al-munazzim

Docs: fix grammar and update LVGL library name (#342)

Co-authored-by: al-munazzim <al-munazzim@users.noreply.github.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates two lines in documentation files: it renames the GUI library from 'LittlevGL' to 'LVGL' and fixes a grammar typo ('splitted' to 'split'). There are no code changes and no security implications.

Security candidaterelease: prepare release (#340)by k9ert · 30ebb834 · Jan 29, 2026 · 2 filesMessage 58 · ThinInformational 15Details
Commit message · k9ert

release: prepare release (#340)

Co-authored-by: k9ert <kim@swanbitcoin.com>

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a routine release preparation for the Specter DIY hardware wallet. The only meaningful change is updating an embedded version string from '0100900099' to '0101000099'. There are no security fixes, new features, or behavior changes visible in the diff.

Lower-priorityFix #329: Hide disabled QR scanner in recovery phrase import menu (#338)by Azzbo77 · 6bbec30a · Jan 25, 2026 · 1 fileMessage 58 · ThinInformational 18Details
Commit message · Azzbo77

Fix #329: Hide disabled QR scanner in recovery phrase import menu (#338)

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
AI analysis · Informational 18/100

This commit fixes a UI bug in the recovery phrase import menu. Previously, the menu showed buttons for import methods (like a QR scanner) even when those methods were disabled. Now it only shows methods that are actually enabled. This is a user experience fix rather than a security vulnerability.

Security candidatefeat: Removed ben and added k9ert keys for releasing (#306)by k9ert · 7bfd5196 · Jan 22, 2026 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · k9ert

feat: Removed ben and added k9ert keys for releasing (#306)

70/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit updates the list of trusted public keys used to sign firmware releases for the Specter DIY hardware wallet. One maintainer's key (ben) was removed and another maintainer's key (k9ert) was added. There is no code change that introduces a vulnerability or fixes one; it is purely a release-process key rotation.

Security candidateShow Transaction Version, Locktime and inputs' sequences when signing transactions! (#321)by Oren · 3d1bb8ed · Jan 20, 2026 · 8 filesMessage 73 · AdequateInformational 19Details
Commit message · Oren

Show Transaction Version, Locktime and inputs' sequences when signing transactions! (#321)

Co-authored-by: k9ert <117085+k9ert@users.noreply.github.com>
Co-authored-by: k9ert <kim@swanbitcoin.com>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 19/100

This commit adds more information to the transaction signing screen of the Specter DIY hardware wallet. It now shows the transaction version, locktime, and each input's sequence number, helping users spot unusual transaction settings (such as delayed spending or disabled locktime) before they approve a signature. There is no direct evidence this fixes an active exploit; it is primarily a user-interface hardening change.

Lower-priorityAdd full M3Y support and fix QR scanning issues for GM65 and M3Y (#335)by Tads · 97ab4d41 · Dec 22, 2025 · 2 filesMessage 93 · StrongInformational 11Details
Commit message · Tads

Add full M3Y support and fix QR scanning issues for GM65 and M3Y (#335)

- Implement full M3Y scanner support (light, aim, sound, read/stop commands,
serial mode, high-speed baudrate, and factory reset)
- Improve QR data reading with end-of-line validation to ensure complete frames
- Fix scanners stopping while reading animated QR codes
- Fix GM65 failing to read single large QR codes by increasing UART buffer
from 2048 to 4096 bytes
- Fix rare LVGL recolor markup line-break issue in animated Specter pMofN QR
progress that caused hex color codes (e.g. 00F100) to render incorrectly

Closes #314

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 11/100

This commit adds support for a new QR scanner model (M3Y) and fixes several QR scanning bugs for existing GM65 scanners. The changes are primarily about hardware compatibility and reliability: making sure different scanner models are detected correctly, that large QR codes fit in the device's buffer, and that animated QR codes don't stop mid-scan. There is also a minor UI fix for colored progress icons. The commit does not appear to be a security patch; it is a feature and bug-fix update for hardware support.

Security candidateAdd support for selecting and combining build actions (#333)by Tads · 1f98790b · Dec 11, 2025 · 5 filesMessage 58 · ThinInformational 15Details
Commit message · Tads

Add support for selecting and combining build actions (#333)

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Informational 15/100

This commit is a build-system and documentation refactor. It splits a single long firmware build script into smaller selectable actions (like 'build main firmware', 'build bootloader', 'assemble', 'sign', 'hash', etc.), fixes a Dockerfile environment-variable syntax, updates developer instructions, and adds a way to fix file ownership when running builds inside Docker. There is no indication it fixes a security vulnerability or introduces a security-relevant bug.

Security candidateAdd bootloader to upgrade binary (#323)by k9ert · ed9ad9a6 · Dec 4, 2025 · 1 fileMessage 53 · ThinInformational 11Details
Commit message · k9ert

Add bootloader to upgrade binary (#323)

53/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
update trustboot or update path
AI analysis · Informational 11/100

This commit changes a build script so that the upgrade package now includes the bootloader alongside the main application firmware, and adds a safety flag that stops the script on first error. There is no direct evidence in the commit that this fixes a security vulnerability; it appears to be a build/packaging improvement.

Lower-priorityfix: import issues (#332)by k9ert · 5bc685c5 · Dec 4, 2025 · 2 filesMessage 55 · ThinInformational 15Details
Commit message · k9ert

fix: import issues (#332)

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
AI analysis · Informational 15/100

This commit fixes how the project's test scripts set up Python's module search path and how they detect a missing optional dependency. It only changes files inside the 'test/' directory, which are used for running automated tests on a regular computer, not the actual hardware wallet firmware. There is no indication this fixes a security vulnerability.

Lower-priorityFix for newer GM65 Scanners scanning CompactSeedQR + Add "About Screen" (#299)by 3rd Iteration · 031d285b · Nov 27, 2025 · 9 filesMessage 58 · ThinInformational 21Details
Commit message · 3rd Iteration

Fix for newer GM65 Scanners scanning CompactSeedQR + Add "About Screen" (#299)

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
AI analysis · Informational 21/100

This commit is primarily a hardware-compatibility fix for newer GM65 QR scanners used with the Specter DIY Bitcoin hardware wallet. It adds logic to detect a specific scanner firmware version and enable a special 'RAW' mode so binary QR codes (CompactSeedQR) scan correctly. It also adds an 'About this device' screen showing firmware and security metadata, and embeds git build info into firmware images. There is no obvious security vulnerability being patched; the changes are defensive and improve device transparency.

Security candidateUpdate build firmware.sh to add no bootloader build by default (#315)by 3rd Iteration · 6f66962a · Nov 27, 2025 · 3 filesMessage 58 · ThinInformational 15Details
Commit message · 3rd Iteration

Update build firmware.sh to add no bootloader build by default (#315)

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
update trustboot or update path
AI analysis · Informational 15/100

This change simply updates the project's firmware build script and documentation to also produce a 'no bootloader' firmware image by default. It is a developer convenience for testing on development boards and does not alter any runtime code, cryptographic checks, or security behavior of the actual device firmware.