KS
← All projectsKeystone

Keystone 3 firmware

Open-source device firmware for Keystone 3 hardware wallets.

BitcoinHardware walletsNormal
Repository coverage

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

107security candidates287second-pass queue61AI analyses
116commits · 30 days
155commits · 60 days
272commits · 180 days
532commits · 365 days
Backfill bands
Aug 5 → Feb 6260 seen14 candidatesComplete
Feb 6 → Jun 6117 seen7 candidatesComplete
Jun 6 → Jul 639 seen4 candidatesComplete
Jul 6 → Aug 5115 seen4 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.

41/100 average clarity
35Strong · 80–100
64Adequate · 60–79
201Thin · 40–59
232Opaque · 0–39
37security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
ww35126871755128026
soralit1143318048
Adam Tucker931111063
aaron3041048
willwang1521025
John Boyd621088
Qkin-Keystone2610036
qkin1211050
Greg Pfeil410071
Daira-Emma Hopwood210085
bianminyan4500032
stone wang300038
Analysis record

Published AI watches

Last scanned 9 minutes ago

Informational 19 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(simulator): return password error on PIN mismatch in SimulatorLoadAccountSecret

This commit fixes a bug in the firmware's simulator (a software stand-in used for testing, not the real hardware wallet). When checking a stored account password/PIN, the simulator was accidentally returning 'success' even when the passwor…

Incorrect success return on authentication failure in simulator-only codeMismatch between simulator and real-device authentication error semanticsFunctional regression in multi-account PIN creation in simulator builds
6bec6930by soralit+4−11 file
No security note in commit
Moderate 64 AI analysisMessage 80 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: remove insecure PRNG fallback

This commit removes a weak, predictable random-number generator that was bundled as a backup inside the firmware's SLIP-39 code. Previously, if the device's proper hardware random source was accidentally left out of a build, the firmware c…

Removal of deterministic LCG PRNG (random32)Removal of weak-symbol random_buffer fallbackRemoval of unused random helper APIs
17c78e30by ww3512687+108−693 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 47 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: upgrade rust version

This commit upgrades the Rust compiler toolchain from one nightly version to a newer one and adjusts code to keep the project building and tests passing. It does not fix a known security bug or change how user funds are protected. Most of …

82a48133by soralit+511−1321 files
No security note in commit
Low 42 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(zcash): defer checked batch cleanup after signing

This patch changes when a Zcash batch signing screen frees a sensitive internal data structure. Instead of destroying the data immediately when the page is cleared, it now schedules the cleanup to run after the signing operation has finish…

Use-after-free / premature-free risk in cryptographic signing pathAsync deferred cleanup introduced to avoid race with FIFO signing taskInline comment explicitly describes security-relevant ordering constraint
3b8995faby Adam Tucker+32−11 file
No security note in commit
Low 35 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Release Zcash batch review widgets before signing

This commit fixes a potential memory/resource issue in the Zcash batch signing flow on the Keystone 3 hardware wallet. Before opening the signature view, the code now explicitly frees (destroys) the on-screen review widgets. Without this c…

Resource cleanup before sensitive signing operationUI object destruction to prevent memory pressure during cryptographic signing flowPotential UI state inconsistency mitigated by explicit widget release
2982da56by Adam Tucker+4−01 file
No security note in commit
Moderate 56 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Reject existing Zcash batch signatures

This firmware update changes how Keystone hardware wallets handle Zcash batch signing. Previously, the device might have accepted a transaction request that already contained spend authorization signatures. Now it rejects such requests. Th…

Defensive input validation added to reject pre-existing spend authorization signatures in Zcash batch PCZT flowPotential host-supplied signature smuggling vector in batch signing mitigatedNew unit tests cover both Orchard and Ironwood pools for the rejection behavior
a50410acby Adam Tucker+126−33 files
No security note in commit
Moderate 64 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Scope Zcash shielded signing to selected account

This commit fixes a bug in the Keystone 3 hardware wallet's Zcash shielded transaction signing. Previously, when a user reviewed and approved a transaction for one account, the device could accidentally authorize a spend from a different a…

Account-scoping enforcement added to shielded spend authorizationPrevents cross-account signing under same seedNew validation in PCZT check path before signing
3d14c7ddby Adam Tucker+166−296 files
Vendor flagged security relevance
Low 43 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(zcash): skip finalized dummy spends during signing

This commit fixes a bug in the Keystone hardware wallet's Zcash signing code. When signing a batch of Zcash transactions that include 'dummy' placeholder spends (zero-value decoy actions used for privacy), the signer could get stuck or fai…

Zcash privacy-spend signing bypass for finalized dummy actionsBatch-transport redaction state reproduced in regression testPotential signing failure / denial-of-service for Zcash PCZT transactions with dummy spends
9792998aby Adam Tucker+81−13 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

refactor(zcash): rename redacted PCZT signing helper

This commit is a simple rename of an internal function from `sign_pczt_to_pczt` to `sign_and_redact_pczt` in the Zcash Rust code. No behavior, logic, or security properties changed; it only makes the function name more descriptive. There i…

01bd8e2bby Adam Tucker+4−42 files
No security note in commit
Moderate 59 AI analysisMessage 100 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat(se): Move 2 W1 — SE generation detection, gen-isolated backend, gen-1 page-8 gate

This is a large firmware commit for the Keystone 3 hardware wallet that restructures how the secure element (SE) chip is used. It introduces a generation-aware backend so the firmware can support two different SE configurations (gen-1, the…

Generation-aware SE backend with fail-closed NULL backend for UNPROVISIONED/INVALID chipsLegacy page-8 PIN-hash wipe gated to gen-1 only to avoid erasing gen-2 R_wrappedPer-account lifecycle status pages for atomic crash recovery of create/change-PIN/delete
57a92dcdby aaron+2163−16736 files
Vendor flagged security relevance
Moderate 54 AI analysisMessage 100 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(zcash): sign shielded PCZTs without RoleSigner to fit the device stack

This commit fixes a crash in the Keystone hardware wallet when signing certain advanced Zcash transactions. The previous code used a heavy upstream signing helper that needed too much memory, causing the device to reset during an Orchard-t…

Stack overflow / device reset in signing task due to excessive stack usage by upstream RoleSignerReplacement of heavy upstream signer with lean in-repo low_level_signer to fit device stack budgetAddition of consensus-critical NU6.3 v6 Orchard/Ironwood sighash domains in pczt_ext
11592ebcby Adam Tucker+603−2173 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: remove duplicate SIG_BACKGROUND_UR_GENERATE_FAIL enumerator

This commit removes a duplicate entry in a list of internal software signal names used by the device's user interface. The duplicate would have caused the firmware to fail compilation, so the change is a straightforward build fix with no s…

1a8cfcb4by Adam Tucker+0−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: point ur-registry at upstream SDK rev

This commit simply switches a software dependency from a temporary community fork back to the project's own official upstream repository. The code being used is the same feature (Zcash batch registry support); it has just been merged into …

ef575e15by Adam Tucker+3−32 files
No security note in commit
Low 37 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Add Zcash batch signing for shielded PCZTs

This commit adds a new Zcash batch-signing feature for shielded transactions and fixes a UI bug where Zcash signing could freeze if the response QR code could not be generated. The changes introduce new Rust code to validate, parse, and si…

New batch signing path for Zcash shielded PCZTs with 35-message limitAtomic batch semantics: any invalid message aborts the whole batchPreflight check `ensure_pczt_has_signable_shielded_action` prevents silent no-signature results
745330f6by Adam Tucker+2201−5232 files
Vendor flagged security relevance
Low 27 AI analysisMessage 83 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Bump Zcash deps to Ironwood revisions + mechanical API migrations

This commit updates the Zcash-related Rust libraries inside the Keystone 3 firmware to newer versions. It also makes small code changes so the firmware keeps compiling with the new library APIs, removes some old tests that no longer work w…

Dependency bump to major new revisions of Zcash cryptographic cratesSwitch from crates.io releases to Git-pinned forks (valargroup/librustzcash and zcash/orchard)ZIP-244 sighash digest code changes in pczt_ext.rs
4487747fby Adam Tucker+201−43710 files
No security note in commit
Low 35 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat: update dice roll entropy ui

This commit updates the user interface and internal checks for generating wallet seed phrases using dice rolls as a source of randomness. It enforces a minimum number of dice rolls depending on the desired seed strength: at least 50 rolls …

Enforces minimum entropy input length based on target mnemonic strengthAdds server-side/model-layer validation in addition to UI gatingPrevents generation of 256-bit seeds from insufficient dice-roll entropy
7bc4d7d8by soralit+158−168 files
No security note in commit
Informational 15 AI analysisMessage 0 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

leap sunset

This commit removes support for the 'Leap' wallet from the Keystone 3 firmware. It deletes the Leap wallet icon and asset, removes Leap-related text strings from Chinese, Japanese, and Korean font files, and updates the Rust dependency ver…

920e9830by ww3512687+609−88123 files
No security note in commit
Low 29 AI analysisMessage 100 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat(zcash): enable Zcash for SLIP 39 wallets with 33-word shares

This commit changes how the Keystone hardware wallet enables Zcash for SLIP 39 wallets. Previously, Zcash was completely disabled for all SLIP 39 wallets. Now it is allowed when the SLIP 39 shares are 33 words long (256-bit entropy), but s…

Relaxation of a security-motivated disablement based on entropy lengthNew entropy-length gate for Zcash supportPotential risk if entropy length check is bypassed or miscalculated
2729141bby John Boyd+46−269 files
Vendor flagged security relevance
Low 35 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat(nufi-tron): update nufi-tron support

This commit adds a new way for the Keystone hardware wallet to handle Tron (TRX) transactions sent as plain JSON sign requests, alongside the older Keystone-specific format. It introduces code that parses JSON, derives the sender address f…

New transaction parsing path from untrusted JSON input (serde_json::Value then protoc::TronTx)Address-ownership check added before signing (derived address vs. JSON 'from' field)Use of keccak256 with slicing `digest[12..]` to form 20-byte TRON address
c9cc587eby qkin+571−1713 files
No security note in commit
Low 26 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

support core wallet

This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche X/P-chain derivation paths from one to ten, updates the Rust SDK dependency, and changes how signing requests extract deriva…

Change to cryptographic signing API (multiple paths / multiple signatures)Change to HD derivation path validation and selection logicChange to master-fingerprint / source-fingerprint verification
fa8a0579by ww3512687+165−13711 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.

Security candidatefix: regenerate missing zcash public infoby soralit · 91f2a356 · May 20, 2026 · 1 fileMessage 57 · ThinTriage 15Details
Commit message · soralit

fix: regenerate missing zcash public info

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidatefeat: defaultly use 20 words for web3 and bitcoin firmwareby soralit · 001c946b · May 20, 2026 · 1 fileMessage 62 · AdequateTriage 15Details
Commit message · soralit

feat: defaultly use 20 words for web3 and bitcoin firmware

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
cryptography-sensitive path
Security candidatefix: update memory management in async tasks and GUI auth code handlingby ww3512687 · ec2eb2b8 · May 18, 2026 · 4 filesMessage 67 · AdequateTriage 10Details
Commit message · ww3512687

fix: update memory management in async tasks and GUI auth code handling

67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
authentication path
Security candidatefeat(shamir): default to 33-word shares with coin-support descriptionsby John Boyd · 744ef606 · Apr 25, 2026 · 3 filesMessage 85 · StrongTriage 15Details
Commit message · John Boyd

feat(shamir): default to 33-word shares with coin-support descriptions

Change the default Shamir share word count from 20 to 33 words
(SLIP39_DEFAULT_MNEMONIC_WORDS), since 33-word shares support all
coins including Zcash.

Add descriptions to the word-count picker explaining which coins each
option supports ("Supports most coins" vs "Also supports Zcash"), with
translations for en, de, es, ja, ko, ru, and zh_CN. The translations
were partially machine-assisted and need human review: @daira knows
German and some Spanish but no Russian, Japanese, Chinese, or Korean;
the Japanese, Korean, Russian, and Simplified Chinese translations
were by Claude. All translations were checked for consistency with
existing translations in their use of the technical terms 'wallet',
'coin', 'Shamir share', and 'word'.

Co-authored-by: Daira-Emma Hopwood <daira@jacaranda.org>
Co-authored-by: Claude Opus 4.6/4.7 (1M context) <noreply@anthropic.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
Security candidatefix(monero): set 'manage' JSON key explicitly when mnemonic type is not BIP 39by Daira-Emma Hopwood · d03cab3e · Apr 25, 2026 · 3 filesMessage 85 · StrongTriage 15Details
Commit message · Daira-Emma Hopwood

fix(monero): set 'manage' JSON key explicitly when mnemonic type is not BIP 39

In AccountPublicHomeCoinGet, the "manage" JSON key was omitted (rather
than set to false) for XMR when the mnemonic type was not BIP 39. Set
it explicitly via a new IsMoneroSupportedForCurrentMnemonic() helper,
which centralizes the Monero mnemonic-type check and matches the
pattern of IsZcashSupportedForCurrentMnemonic().

Co-authored-by: Daira-Emma Hopwood <daira@jacaranda.org>
Co-authored-by: Claude Opus 4.6/4.7 (1M context) <noreply@anthropic.com>

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
Security candidatefeat(zcash): enable Zcash for SLIP 39 wallets with 33-word sharesby John Boyd · 2729141b · Apr 25, 2026 · 9 filesMessage 100 · StrongLow 29Details
Commit message · John Boyd

feat(zcash): enable Zcash for SLIP 39 wallets with 33-word shares

Previously Zcash was disabled for all SLIP 39 wallets, due to an
incompatibility with the 20-word scheme. This commit relaxes that
restriction, allowing Zcash use on SLIP 39 wallets when using 33-word
shares.

Zcash requires 256-bit seed entropy to avoid the seed becoming a
security bottleneck, potentially enabling multi-target attacks below
2^125 operations. (The same argument applies to BIP 32-like hierarchical
key derivation in general —preserving full entropy in the chain code
and public key at any tree node requires 256 bits to start with— but
for other coins this has not been a specified requirement, or depended
on in their security analysis.)

SLIP 39 requires all implementations to support both 128-bit and 256-bit
master secrets, so compliant software should accept 33-word shares.

- Add IsZcashSupportedForCurrentMnemonic() to centralize entropy check
- Use conditional checks in both CYPHERPUNK_VERSION and WEB3_VERSION
(home widget, connect wallet coin list, public key derivation in
AccountPublicSavePublicInfo and TempAccountPublicInfo)
- Call SetupZcashCache and SetupZcashSFP in CreateNewSlip39Account for
supported wallets
- Update Rust error messages to describe the actual requirement
- Show notice in asset manager when 20-word shares lack Zcash support
- Fix bug in AccountPublicHomeCoinGet where the "manage" JSON key was
omitted (rather than set to false) for Zcash when the mnemonic type
was not BIP 39

Co-authored-by: Daira-Emma Hopwood <daira@jacaranda.org>
Co-authored-by: Claude Opus 4.6/4.7 (1M context) <noreply@anthropic.com>

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Names security-relevant behavior explicitly
Why it was queued
explicit security languageentropy or randomnesssecret or key materialcryptography-sensitive pathsigning or wallet path
AI analysis · Low 29/100

This commit changes how the Keystone hardware wallet enables Zcash for SLIP 39 wallets. Previously, Zcash was completely disabled for all SLIP 39 wallets. Now it is allowed when the SLIP 39 shares are 33 words long (256-bit entropy), but still disabled for 20-word shares (128-bit entropy). The change is driven by a cryptographic requirement: Zcash's security analysis assumes the wallet seed has at least 256 bits of entropy. The patch also fixes a small UI bug where the 'manage' option for Zcash was missing entirely for non-BIP39 mnemonics, instead of being shown as disabled.

Security candidatefix buildby ww3512687 · 5c6b0014 · Apr 24, 2026 · 1 fileMessage 0 · OpaqueTriage 12Details
Commit message · ww3512687

fix build

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
Security candidatefix buildby ww3512687 · 6917368e · Apr 23, 2026 · 1 fileMessage 0 · OpaqueTriage 12Details
Commit message · ww3512687

fix build

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
Security candidatechore: update ciby soralit · 72436c1c · Apr 13, 2026 · 5 filesMessage 40 · ThinTriage 12Details
Commit message · soralit

chore: update ci

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidatechore: update ciby soralit · 9a334de0 · Apr 10, 2026 · 1 fileMessage 40 · ThinTriage 12Details
Commit message · soralit

chore: update ci

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidateton only wallet crash when update to cypherpunkby ww3512687 · 2d7f3e67 · Apr 9, 2026 · 2 filesMessage 45 · ThinTriage 15Details
Commit message · ww3512687

ton only wallet crash when update to cypherpunk

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
Security candidatechore: revert submodule pointer to match origin/masterby Qkin-Keystone · 32ff9aa1 · Apr 9, 2026 · 1 fileMessage 62 · AdequateTriage 12Details
Commit message · Qkin-Keystone

chore: revert submodule pointer to match origin/master

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
boot or update path
Security candidatefeat(nufi-tron): update nufi-tron supportby qkin · c9cc587e · Apr 9, 2026 · 13 filesMessage 57 · ThinLow 35Details
Commit message · qkin

feat(nufi-tron): update nufi-tron support

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathboot or update path
AI analysis · Low 35/100

This commit adds a new way for the Keystone hardware wallet to handle Tron (TRX) transactions sent as plain JSON sign requests, alongside the older Keystone-specific format. It introduces code that parses JSON, derives the sender address from the seed, checks it matches the 'from' field, and signs. The change is a feature addition, not a clearly labeled security fix. There are no obvious catastrophic bugs in the diff, but the new path adds complexity and a few places where input validation could be tightened.

Security candidatesupport core walletby ww3512687 · fa8a0579 · Apr 8, 2026 · 11 filesMessage 28 · OpaqueLow 26Details
Commit message · ww3512687

support core wallet

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Low 26/100

This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche X/P-chain derivation paths from one to ten, updates the Rust SDK dependency, and changes how signing requests extract derivation paths and fingerprints. There is no explicit security fix or vulnerability disclosure in the commit message or diff. The changes are feature-oriented, but they touch sensitive code paths (transaction signing, HD path handling, and master-fingerprint checks), so they warrant careful review.

Security candidatesupport core walletby ww3512687 · cbcd90c1 · Apr 8, 2026 · 11 filesMessage 28 · OpaqueLow 27Details
Commit message · ww3512687

support core wallet

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Low 27/100

This commit adds support for the Core Wallet in the Keystone 3 firmware. It mainly expands the number of Avalanche (AVAX) X/P-chain account paths from one to ten, updates the Rust signing code to accept multiple derivation paths from the wallet instead of hardcoding a single one, and bumps the Rust UR registry library version. There is no explicit security fix or vulnerability patch visible in the diff; it reads as a feature/integration change.

Security candidatefix ton wallet regenerateby ww3512687 · 0b89148f · Apr 7, 2026 · 1 fileMessage 35 · OpaqueTriage 15Details
Commit message · ww3512687

fix ton wallet regenerate

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
Security candidatechore: update-ciby soralit · 68d90b66 · Apr 3, 2026 · 1 fileMessage 40 · ThinTriage 12Details
Commit message · soralit

chore: update-ci

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidateRemove the redundant code and comments related to TONby ww3512687 · abe8f0b7 · Apr 2, 2026 · 42 filesMessage 50 · ThinInformational 15Details
Commit message · ww3512687

Remove the redundant code and comments related to TON

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathparser or protocol path
AI analysis · Informational 15/100

This commit removes the special 'TON-only wallet' feature from the Keystone 3 firmware. It deletes code that let users create or import a TON-native 24-word seed phrase separate from the normal BIP39 wallet. After this change, TON is handled like other coins using a standard BIP39-derived key. There is no security bug being fixed here; it is a feature-removal cleanup.

Security candidatechore: update ciby soralit · d719a2fd · Mar 31, 2026 · 1 fileMessage 40 · ThinTriage 12Details
Commit message · soralit

chore: update ci

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidateboot flagby ww3512687 · 0acb2d7d · Mar 31, 2026 · 1 fileMessage 0 · OpaqueTriage 12Details
Commit message · ww3512687

boot flag

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path
Security candidatefeat: add web update pad functionalityby ww3512687 · 6f61612a · Mar 30, 2026 · 3 filesMessage 57 · ThinTriage 12Details
Commit message · ww3512687

feat: add web update pad functionality

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidatechore: update ciby soralit · bf12d17f · Mar 30, 2026 · 1 fileMessage 40 · ThinTriage 12Details
Commit message · soralit

chore: update ci

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidatechore: update ciby soralit · 14c2dc57 · Mar 30, 2026 · 1 fileMessage 40 · ThinTriage 12Details
Commit message · soralit

chore: update ci

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update path
Security candidatefeat: improve update security, support X Layer, and refresh Zodl wallet integrationby ww3512687 · c42b3eeb · Mar 30, 2026 · 82 filesMessage 67 · AdequateModerate 61Details
Commit message · ww3512687

feat: improve update security, support X Layer, and refresh Zodl wallet integration

67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathboot or update pathauthentication pathparser or protocol path
AI analysis · Moderate 61/100

This firmware update for the Keystone 3 hardware wallet is billed as a security improvement. The most important change is a complete rewrite of the bootloader/firmware update path: it now uses SHA-256 and a signed/length-prefixed 'bootupdate' envelope instead of the older MD5-based verification, and removes an old USB mass-storage auto-reboot behavior that could let a plugged-in host trigger a reboot just by copying a file. The patch also hardens the USB stack against malformed endpoint numbers and oversized control transfers, enables on-chip flash encryption for the external QSPI flash, and improves I2C and random-number error handling. However, the diff is very large and mixes many unrelated features (new wallet icons, X Layer chain support, UI tweaks), so it is hard to be certain every corner case is fixed.

Security candidateremove the eraseby ww3512687 · f065ed32 · Mar 27, 2026 · 1 fileMessage 28 · OpaqueTriage 12Details
Commit message · ww3512687

remove the erase

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
boot or update path