SP
← All projectsSpecter

Specter DIY

DIY air-gapped Bitcoin hardware-wallet firmware.

BitcoinHardware walletsNormal
Repository coverage

23 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.

11security candidates2second-pass queue7AI analyses
0commits · 30 days
0commits · 60 days
5commits · 180 days
23commits · 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.

64/100 average clarity
4Strong · 80–100
7Adequate · 60–79
12Thin · 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.
k9ert1075064
3rd Iteration511056
Tads210076
Oren111073
Schnuartz110058
al-munazzim200083
Azzbo77100058
Mike Tolkachev100053
Analysis record

Published AI watches

Last scanned 0 minutes ago

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 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 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 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
Informational 11 AI analysisMessage 65 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

Revert "chore: adding the bootloader to upgrade binary for next release"

This commit undoes a previous change that added the bootloader to the device's upgrade binary. It removes the bootloader from the generated upgrade file and also removes a 'set -e' safety flag from the build script. On its own, this revert…

Build script change affecting firmware packagingBootloader removed from upgrade binary generationset -e error-on-fail flag removed from shell script
b6778187by k9ert+2−51 file
No security note in commit
Informational 11 AI analysisMessage 62 · Adequate
SP SpecterSpecter DIY BitcoinHardware wallets

chore: adding the bootloader to upgrade binary for next release

This is a build-script change for a hardware-wallet project. It adds a command-line flag so that the upgrade package generator includes the bootloader file alongside the main firmware. It also adds `set -e` so the build script stops on err…

Build script now bundles bootloader into upgrade binaryBuild script now exits on first error (`set -e`)No security-relevant description in commit message or diff
54a38094by k9ert+5−21 file
No security note in commit
Informational 15 AI analysisMessage 88 · Strong
SP SpecterSpecter DIY BitcoinHardware wallets

chore: Get build back to work and some CI (#307)

This commit is a routine build and continuous-integration (CI) maintenance change for the Specter DIY hardware wallet project. It adds Nix package-manager files to pin build dependencies, a GitHub Actions workflow to compile the firmware, …

ce35419bby k9ert+45671−0243 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-priorityBump firmware version to v1.10.3 (#351)by k9ert · eb8397d2 · Apr 9, 2026 · 1 fileMessage 68 · AdequateTriage 0Details
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
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 · ThinTriage 0Details
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 review queuedFix: minor comment cleanups (#343)by al-munazzim · 8131bc93 · Feb 10, 2026 · 2 filesMessage 80 · StrongTriage 12Details
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
Lower-priorityDocs: fix grammar and update LVGL library name (#342)by al-munazzim · d6c2bb0e · Feb 10, 2026 · 2 filesMessage 85 · StrongTriage 0Details
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
Security candidaterelease: prepare release (#340)by k9ert · 30ebb834 · Jan 29, 2026 · 2 filesMessage 58 · ThinTriage 12Details
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
Lower-priorityFix #329: Hide disabled QR scanner in recovery phrase import menu (#338)by Azzbo77 · 6bbec30a · Jan 25, 2026 · 1 fileMessage 58 · ThinTriage 0Details
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
Security candidatefeat: Removed ben and added k9ert keys for releasing (#306)by k9ert · 7bfd5196 · Jan 22, 2026 · 1 fileMessage 70 · AdequateTriage 12Details
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
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 · StrongTriage 0Details
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
Security candidateAdd support for selecting and combining build actions (#333)by Tads · 1f98790b · Dec 11, 2025 · 5 filesMessage 58 · ThinTriage 12Details
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
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 · ThinTriage 0Details
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
Lower-priorityFix for newer GM65 Scanners scanning CompactSeedQR + Add "About Screen" (#299)by 3rd Iteration · 031d285b · Nov 27, 2025 · 9 filesMessage 58 · ThinTriage 0Details
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
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.

Security candidateChange button text from 'Enter BIP-39 password' to 'Enter passphrase' (#327)by Schnuartz · 7447f04a · Nov 27, 2025 · 2 filesMessage 58 · ThinTriage 18Details
Commit message · Schnuartz

Change button text from 'Enter BIP-39 password' to 'Enter passphrase' (#327)

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
access control
Lower-priorityfix: macos build (#325)by k9ert · a2395571 · Nov 24, 2025 · 1 fileMessage 48 · ThinTriage 0Details
Commit message · k9ert

fix: macos build (#325)

48/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Security candidateRevert "chore: adding the bootloader to upgrade binary for next release"by k9ert · b6778187 · Nov 17, 2025 · 1 fileMessage 65 · AdequateInformational 11Details
Commit message · k9ert

Revert "chore: adding the bootloader to upgrade binary for next release"

This reverts commit 54a38094e822c42b6acaabf30a5cbbca418388ef.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
update trustboot or update path
AI analysis · Informational 11/100

This commit undoes a previous change that added the bootloader to the device's upgrade binary. It removes the bootloader from the generated upgrade file and also removes a 'set -e' safety flag from the build script. On its own, this revert does not introduce a clear security vulnerability; it is a build-script change whose security implications depend heavily on whether the bootloader is supposed to be included in upgrades.

Security candidatechore: adding the bootloader to upgrade binary for next releaseby k9ert · 54a38094 · Nov 17, 2025 · 1 fileMessage 62 · AdequateInformational 11Details
Commit message · k9ert

chore: adding the bootloader to upgrade binary for next release

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
update trustboot or update path
AI analysis · Informational 11/100

This is a build-script change for a hardware-wallet project. It adds a command-line flag so that the upgrade package generator includes the bootloader file alongside the main firmware. It also adds `set -e` so the build script stops on errors. There is no direct evidence in the commit that this fixes or introduces a security vulnerability; it appears to be a release-engineering change.

AI review queuedExpand detection of possible multisig descriptors & Add data input parsing CI tests (#301)by 3rd Iteration · a5c99266 · Oct 23, 2025 · 9 filesMessage 68 · AdequateTriage 12Details
Commit message · 3rd Iteration

Expand detection of possible multisig descriptors & Add data input parsing CI tests (#301)

68/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
Lower-priorityAdd shield lite (#310)by 3rd Iteration · 339eea9f · Oct 23, 2025 · 8 filesMessage 51 · ThinTriage 0Details
Commit message · 3rd Iteration

Add shield lite (#310)

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

51/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Lower-priorityBuild docco additions (#311)by 3rd Iteration · 8f6b3bff · Oct 16, 2025 · 1 fileMessage 43 · ThinTriage 0Details
Commit message · 3rd Iteration

Build docco additions (#311)

43/100 · ThinMessage clarity
✓ Descriptive subject✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
documentation-only discount
Security candidatechore: Get build back to work and some CI (#307)by k9ert · ce35419b · Oct 7, 2025 · 243 filesMessage 88 · StrongInformational 15Details
Commit message · k9ert

chore: Get build back to work and some CI (#307)

* fix: pin dependencies via on nix and create flake

* ci: try build

* Update flake.nix

Co-authored-by: Ruben <36157890+ubbabeck@users.noreply.github.com>

* Update shell.nix

Co-authored-by: Ruben <36157890+ubbabeck@users.noreply.github.com>

* fix: as suggested by mike

* a bit more concrete prerequisites

* nix prefixes

---------

Co-authored-by: Ruben <36157890+ubbabeck@users.noreply.github.com>

88/100 · StrongMessage clarity
✓ 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
access controlseed or entropy pathsigning or wallet pathboot or update pathauthentication path
AI analysis · Informational 15/100

This commit is a routine build and continuous-integration (CI) maintenance change for the Specter DIY hardware wallet project. It adds Nix package-manager files to pin build dependencies, a GitHub Actions workflow to compile the firmware, and a large amount of documentation, hardware files, and project scaffolding. There is no indication in the diff that any cryptographic, wallet, or firmware runtime code was changed in a way that introduces a security vulnerability.