KS
← All projectsKeystone

Keystone 3 firmware

Open-source device firmware for Keystone 3 hardware wallets.

BitcoinHardware walletsNormal
Repository coverage

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

119security candidates294second-pass queue551AI analyses
9commits · 30 days
37commits · 60 days
279commits · 180 days
504commits · 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.

42/100 average clarity
35Strong · 80–100
72Adequate · 60–79
211Thin · 40–59
235Opaque · 0–39
39security 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.
soralit11634116248
Adam Tucker931193263
aaron30430248
Soralit959154
ww351268717652176026
willwang15215025
John Boyd626088
github-actions[bot]323076
Aaron Chen222068
Qkin-Keystone26126036
qkin12112050
Greg Pfeil414071
Analysis record

Published AI watches

Last scanned 28 minutes ago

Low 42 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2293 from KeystoneHQ/merge/v3.1.0

This is a large firmware release merge (v3.1.0) for the Keystone 3 hardware wallet. The visible changes are mostly a major FreeRTOS kernel upgrade (from v10.x to v11.3.0), build-system improvements, and user-facing feature tweaks such as b…

FreeRTOS kernel major version upgrade (10.x -> 11.3.0) with MPU hardeningSwitch from ARM_CM4F non-MPU port to ARM_CM4_MPU portNew MPU configuration flags: configTOTAL_MPU_REGIONS=8, configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY=1, configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS=0
0c0ae467by stone+59616−26981300 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 48 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update ci (#2292)

This commit only updates a Git submodule pointer in a release-tracking file. The actual code change is a one-line pointer update from one commit hash to another in a file named 'keystone3-firmware-release'. There is no visible security-rel…

90d1c789by Soralit+1−11 file
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update ci

This commit only updates a Git submodule pointer (keystone3-firmware-release) from one commit hash to another. No source code, build scripts, CI configuration, or security-related files are changed in the visible diff. There is no evidence…

a7f6db29by Soralit+1−11 file
No security note in commit
Moderate 58 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

release 3.1.0

This is a large firmware release commit (version 3.1.0) for the Keystone 3 hardware wallet. The most significant change visible in the diff is a major upgrade of the FreeRTOS real-time operating system kernel from version 10.x to 11.3.0, c…

FreeRTOS major version upgrade (10.x → 11.3.0) with MPU port enabledNew MPU sandbox task/runtime/validator files addedconfigENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY=1 and configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS=0 set
2b007a29by Soralit+59615−26980300 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 76 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge release v3.0.8 (#2291)

This commit is a routine version-bump merge for release v3.0.8. It only updates changelogs, a Git submodule pointer, and a build version number. There is no code change visible in the diff and nothing that suggests a security fix or vulner…

b5e8f9fcby github-actions[bot]+18−24 files
No security note in commit
Low 47 AI analysisMessage 76 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge release v3.0.6 (#2290)

This firmware update adds support for Solana's new V1 transaction format and changes how oversized or malformed transaction details are displayed. The code introduces a dedicated parser for V1 messages with strict size and structure checks…

New parser enforces hard limits on V1 message fields and rejects malformed 0x81-prefix payloads instead of falling back to message signingCompute-budget instructions in V1 are explicitly ignored to prevent fee-display spoofingUI pagination change for large transaction details reduces truncation risk
87b78ae1by github-actions[bot]+564−2812 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

pin to new release config (#2285)

This commit only updates a Git submodule pointer (keystone3-firmware-release) from one commit hash to another. There is no code change visible in the diff, no description of what the new release config contains, and no security-related inf…

bc01c889by Aaron Chen+1−11 file
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

update the release repo (#2282)

This commit simply updates a Git submodule pointer for the project's release repository. There is no visible code change, no description of any security issue, and no indication this is anything other than a routine release-tracking update.

3ac7e802by Aaron Chen+1−11 file
No security note in commit
Moderate 59 AI analysisMessage 76 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge release v3.0.4 (#2279)

This is a routine firmware release merge (v3.0.4) for the Keystone 3 hardware wallet. The bulk of the changes are UI tweaks, new feature support (Solana CLI, Lace Wallet), and hardening fixes found during an internal 'regular AI review'. T…

NUL-byte rejection in EIP-712 typed data parsingC-string conversion hardening against NUL bytesNull-pointer and UTF-8 validation added to UR parsing entry points
6ab436a2by github-actions[bot]+4960−548845 files
No security note in commit
Informational 13 AI analysisMessage 59 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Build fix (#2273)

This commit is a routine build-system and code-formatting fix. It resets cached CMake build options so each build starts from known defaults, makes cbindgen header-generation failures visible instead of silently ignored, runs Rust formatti…

8568a657by stone wang+8−145 files
No security note in commit
Low 44 AI analysisMessage 36 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

limit file count (#2272)

This commit adds a hard cap on how many files the device will list from its SD card when loading multi-signature Bitcoin wallet data. It also tightens up null-pointer and length checks while scanning directories. The likely goal is to prev…

Unbounded directory listing now bounded by FATFS_MAX_FILE_NUMBERNull-pointer guards added for fileName, number, and path parametersLength checks added before copying filenames into caller buffers
de6879c3by stone wang+31−146 files
No security note in commit
Low 46 AI analysisMessage 73 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2268 from KeystoneHQ/regular-review-fix

This commit tightens which old-style Bitcoin-like transactions the Keystone hardware wallet will accept. It now rejects raw protobuf Bitcoin (BTC) and Dogecoin (DOGE) legacy UTXO transactions, allowing only Bitcoin Cash (BCH), Dash (DASH),…

Deprecation of raw-protobuf Bitcoin transaction handlingRejection of unsupported legacy UTXO variants at multiple entry pointsShift from coin_code string matching to protobuf variant matching for legacy path eligibility
1c70d3d4by Soralit+134−166 files
No security note in commit
Moderate 61 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: mark legacy utxo transaction as deprecated and disable btc legacy transactions

This commit disables the older, raw-protobuf signing path for Bitcoin and Dogecoin transactions in the Keystone 3 hardware wallet firmware. It keeps the legacy path active only for Bitcoin Cash (BCH), Dash (DASH), and Litecoin (LTC). The c…

Disables a legacy transaction parsing/signing code path for Bitcoin and DogecoinAdds explicit rejection checks before raw transaction parsing, checking, signing, and view routingSwitches discriminator from coin_code string to protobuf transaction variant to prevent spoofing
1fcd2346by Soralit+134−166 files
No security note in commit
Moderate 63 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2264 from KeystoneHQ/regular-review-fix

This firmware update is a routine 'regular review fix' that hardens how the Keystone 3 hardware wallet checks and displays several cryptocurrency transactions before signing. The most important security changes are: (1) the sign button is …

Sign slider disabled until parse success prevents premature approvalArweave DataItem tag-count mismatch now rejected in pre-checkAvalanche transaction re-validated by type in pre-check, tampered asset ID rejected
87c7e7e2by Soralit+623−20423 files
No security note in commit
Moderate 67 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2263 from KeystoneHQ/driver-optimize

This commit updates the hardware random number generator (TRNG) driver in a cryptocurrency hardware wallet firmware. It adds detection for a physical fault/attack signal from the TRNG and, if triggered, wipes the random data and aborts via…

Added TRNG fault/attack status detection (TRNG_IT_RNG0_ATTACK)Zeroization of sensitive local buffer and output buffer on TRNG failureAssertion abort on detected TRNG attack condition
a409efe0by Soralit+29−51 file
No security note in commit
Moderate 59 AI analysisMessage 18 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

driver optimzie

This commit updates the hardware random number generator (TRNG) driver in a cryptocurrency hardware wallet firmware. It adds detection for a physical tamper/attack signal from the TRNG chip and, if an attack is detected, wipes the random d…

New check of TRNG_IT_RNG0_ATTACK tamper/attack interrupt statusFailure path now zeroes output and local buffer before abortingAddition of ASSERT guards and secure memset_s usage
25f3d951by ww3512687+29−51 file
No security note in commit
Moderate 61 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: regular ai review fix

This firmware update for the Keystone 3 hardware wallet fixes several security and safety issues found during an internal AI-assisted review. The most important changes are: (1) the signing slider is now disabled until a transaction is ful…

Signing slider disabled until parse success prevents approval of malformed transactionsArweave DataItem tag-count mismatch rejected in pre-check before confirmation pageAvalanche transaction re-validated by type during fingerprint check
edbeae79by soralit+623−20423 files
No security note in commit
High 76 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2262 from KeystoneHQ/regular-review-fix

This firmware update fixes several security and safety issues found during a regular AI-assisted code review. The most important changes are: (1) Zcash wallet data is now encrypted with a key derived from the wallet seed and a fresh random…

Zcash UFVK encryption key changed from sha256(password) to seed-derived BIP32 keyZcash UFVK IV changed from deterministic seed-derived value to fresh TRNG-generated IV per blobZcash UFVK storage format now uses magic-prefixed blob with embedded IV and rejects legacy blobs
04d942ffby Soralit+1852−52633 files
No security note in commit
High 80 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: regular AI review and fix

This firmware update fixes several security and safety issues found during an internal AI-assisted review. The most important changes are: (1) Zcash wallet data was being encrypted with a key derived from the user's login password and a fi…

Zcash UFVK encryption key changed from sha256(login password) to seed-derived BIP32 keyZcash UFVK IV changed from deterministic seed-derived value to fresh TRNG-generated IV per encryptionNew 'z2' UFVK blob format stores IV with ciphertext; legacy blobs rejected/migrated
776d8832by soralit+1852−52633 files
Vendor flagged security relevance
Moderate 59 AI analysisMessage 58 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Merge pull request #2260 from KeystoneHQ/replace-lvgl-rand

This commit replaces the on-screen keyboard shuffle and a word-list randomizer so they use the device's true random-number generator (TRNG) instead of LVGL's weaker pseudo-random function. The change is defensive: it removes a source of pr…

Replaced pseudo-random generator with hardware TRNG in security-sensitive shuffle operationsRemoved fixed-range modulo reduction bias source (`lv_rand(0, 2048) % n`)Changed include from LVGL UI library to device TRNG driver in utility code
230abd77by Soralit+8−32 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-priorityrefactor: flatten check_transparent_input with let-else + map_orby Adam Tucker · e76f36e3 · Jun 23, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · Adam Tucker

refactor: flatten check_transparent_input with let-else + map_or

Replace the nested match/match in check_transparent_input with a let-else for
the script->address refinement and .map_or for the derivation lookup, per the
reviewer's suggestion. The // 1/2/3 step comments are preserved. No behavior
change.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a pure code-style refactor in a Zcash transaction-checking function. It rewrites nested match statements into a flatter let-else and map_or pattern, but the commit message and diff show no change to the actual logic, error messages, or security behavior.

Lower-prioritystyle: import alloc::{format, vec} at the top of check.rsby Adam Tucker · 658f5b57 · Jun 23, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Adam Tucker

style: import alloc::{format, vec} at the top of check.rs

Replace the inline `alloc::format!` / `alloc::vec!` prefixes with a single
`use alloc::{format, string::ToString, vec};`, matching the sibling pczt
modules and keeping the allocator import in one place. No behavior change.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is purely a code-style cleanup: it replaces repeated `alloc::format!` and `alloc::vec!` calls with a single `use` import at the top of the file. The commit message explicitly states there is no behavior change, and the diff confirms only import paths were shortened, with no logic, data flow, or security checks altered.

Lower-priorityrefactor: drop dead seed-fingerprint check from transparent derivation helperby Adam Tucker · d6e8bbde · Jun 23, 2026 · 2 filesMessage 85 · StrongInformational 12Details
Commit message · Adam Tucker

refactor: drop dead seed-fingerprint check from transparent derivation helper

Every caller of the helper already filters by seed fingerprint before
invoking it, so its internal `if seed_fingerprint != ... { Ok(false) }`
branch was unreachable. Drop it and the now-unused seed_fingerprint
parameter, return Result<()> (the helper only validates the derived pubkey,
erroring on mismatch), and rename it to check_transparent_derivation.
check_transparent_input returns Ok(true) directly for a matched derivation.
No behavior change.

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
defensive validation
AI analysis · Informational 12/100

This commit is a code cleanup (refactor) in the Zcash PCZT handling code. It removes an unused internal check and an unused function parameter, renames a helper function, and changes its return type. The commit message explicitly states there is no behavior change, and the diff supports that: every caller already filtered by seed fingerprint before calling the helper, so the removed branch was unreachable. There is no security-relevant change evident from the diff.

AI review queuedrefactor: thread ShieldedPool enum instead of stringly pool labelsby Adam Tucker · 28380dac · Jun 23, 2026 · 4 filesMessage 85 · StrongInformational 14Details
Commit message · Adam Tucker

refactor: thread ShieldedPool enum instead of stringly pool labels

Replace the `pool_label: &str` threaded through the Orchard/Ironwood check,
parse, and sign helpers with the existing `ShieldedPool` enum, lifted into
`pczt/mod.rs` as its shared home. Rename `check_orchard` to the pool-agnostic
`check_shielded_bundle`. Each helper derives the label from the enum
internally, so all error messages are unchanged.

Addresses review feedback that the customizable string pool label was
confusing next to the always-Orchard bundle type, and that an Orchard-named
helper was being used for the Ironwood pool.

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 14/100

This is a code cleanup change with no security impact. It replaces free-form text labels like "Orchard" and "Ironwood" with a fixed enum type when checking, parsing, and signing Zcash shielded transaction bundles. The actual behavior and error messages stay the same; only the internal code structure is improved.

AI review queuedAdd Ironwood PCZT supportby Adam Tucker · c28575be · Jun 23, 2026 · 9 filesMessage 68 · AdequateModerate 59Details
Commit message · Adam Tucker

Add Ironwood PCZT support

Add cypherpunk Zcash PCZT parse/check/sign support for v6/Ironwood while
preserving existing Orchard and transparent behavior. Legacy multi_coins
paths reject v6/Ironwood PCZTs instead of mis-handling them. Signed
responses stamp the firmware version and redact optional PCZT fields
(including Ironwood bundle data) before returning QR-sized results.

Restores, against the new builder API, the runtime-constructed regression
tests dropped during the dependency bump:
- internal-OVK change-spoofing rejection (parse + check)
- empty Sapling bundle with non-zero value sum rejection
- Orchard spend/output value + ownership decode (parse + check)

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: broader security terminologysecond-pass: security-sensitive path
AI analysis · Moderate 59/100

This commit adds support for a new Zcash transaction format called Ironwood PCZT to the Keystone hardware wallet firmware. It also hardens the wallet against several real attack scenarios: legacy code paths now refuse to handle the new format (instead of mis-processing it), a bug where an attacker could make a payment to themselves look like the user's own change is now blocked, and malformed transaction bundles with contradictory value sums are rejected. The changes are mostly defensive and include many new regression tests.

Security candidateBump Zcash deps to Ironwood revisions + mechanical API migrationsby Adam Tucker · 4487747f · Jun 23, 2026 · 10 filesMessage 83 · StrongLow 27Details
Commit message · Adam Tucker

Bump Zcash deps to Ironwood revisions + mechanical API migrations

Pin the Zcash crates to the Ironwood fork revisions (orchard via
zcash/orchard, the zcash_*/pczt crates via the valargroup fork) using
[patch.crates-io], enable the zcash_unstable="nu6.3" cfg, and apply the
mechanical API migrations the bump forces:

- TransparentAddress::from_script_from_chain / from_script_pubkey
- Note::from_parts note-version argument, SignableInput::from_parts
- pczt_ext ZIP-244 sighash digest adjustments

Tests embedding the old PCZT wire format or the pre-bump builder API are
dropped here (they no longer parse/compile); equivalents against the new
API are restored with the Ironwood feature in the following commit.

NOTE: this commit does not build in isolation. The parse.rs/sign.rs API
migrations are interleaved with the Ironwood parsing/signing changes and
land together in the next commit; this is split out purely to isolate
the dependency bump for review.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing boundary
AI analysis · Low 27/100

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 with the new wire format, and adjusts how transaction hashes are computed. The commit itself is described by its author as not building in isolation; the remaining matching changes are in the next commit. There is no direct evidence in the commit that this fixes or introduces a security vulnerability.

AI review queuedRefactor PCZT handling: extract shared helpers (no dependency changes)by Adam Tucker · bd1298f6 · Jun 23, 2026 · 4 filesMessage 83 · StrongInformational 14Details
Commit message · Adam Tucker

Refactor PCZT handling: extract shared helpers (no dependency changes)

Pure code reorganization ahead of Ironwood support, on the existing
Zcash dependencies:

- move validate_sapling_bundle_consistency into pczt/mod.rs behind a
shared validate_supported_pczt entry point
- extract transparent_derivation_matches_selected_account and
map_orchard_verifier_error helpers
- have check_pczt_transparent report whether a wallet input was found
- thread a pool_label through the Orchard check helpers
- generalize the shielded-pool renderer to GuiZcashOverviewShielded

The original test suite is retained and passes on the current
dependencies (cypherpunk: 73 tests, multi_coins: 38 tests), showing the
refactor introduces no behavior change. The dependency bump and the
Ironwood feature follow in later commits.

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validationsecond-pass: broader security terminology
AI analysis · Informational 14/100

This commit is a pure internal code reorganization (refactor) for Zcash PCZT handling. It moves helper functions around, renames some UI rendering code, and adds a shared PCZT parsing helper, but the commit message and diff show no intentional behavior change. The original test suite is retained and reported to pass. There is no indication this fixes or introduces a security vulnerability.

AI review queuedfeat: add vizor tutorialby soralit · 9a423f33 · Jun 23, 2026 · 2 filesMessage 40 · ThinInformational 15Details
Commit message · soralit

feat: add vizor tutorial

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply adds a new on-screen tutorial entry for a cryptocurrency wallet integration called 'Vizor'. It is a UI content addition with no security-relevant code changes.

Lower-priorityremove the noneeded cancel opby aaron · 4bc89798 · Jun 23, 2026 · 1 fileMessage 45 · ThinLow 25Details
Commit message · aaron

remove the noneeded cancel op

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 25/100

This commit removes a single function call, FpCancelCurOperate(), from the lock screen's verification loading animation. The function likely cancels any ongoing fingerprint operation before showing a 'please wait' verification hint. Without additional context, it is unclear whether this change fixes a security bug or is simply a cleanup. The commit message gives no security explanation.

Lower-priorityfix: fix the issue on lock screen pw and fp race issueby aaron · 2051feef · Jun 23, 2026 · 4 filesMessage 62 · AdequateModerate 57Details
Commit message · aaron

fix: fix the issue on lock screen pw and fp race issue

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Moderate 57/100

This commit fixes a race condition on the lock screen between password verification and fingerprint recognition. Previously, if a fingerprint scan result arrived while a password was being verified, the two flows could interfere with each other. The fix adds checks to ignore or delay fingerprint operations whenever a password verification loading screen is active, and cancels any ongoing fingerprint operation when that loading screen appears.

AI review queuedfeat: add vizor wallet to cypherpunkby soralit · 7a5cef79 · Jun 23, 2026 · 7 filesMessage 57 · ThinInformational 15Details
Commit message · soralit

feat: add vizor wallet to cypherpunk

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 pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply adds a new wallet called 'Vizor' to the list of supported wallets in the Keystone 3 firmware's user interface. It includes a new icon image and registers the wallet name so users can select it. There is no indication of any security vulnerability or malicious change in the code shown.

AI review queuedrun font scriptsby ww3512687 · d2ccb0ee · Jun 23, 2026 · 4 filesMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

run font scripts

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit is a routine localization and asset update. It adds a Polish language translation, updates Korean font data to include one additional character, fixes minor code indentation, and reorders some translated strings. There is no evidence of any security fix or vulnerability being introduced.

Security candidatefix ar bugsby ww3512687 · 26fffdc3 · Jun 22, 2026 · 9 filesMessage 0 · OpaqueModerate 57Details
Commit message · ww3512687

fix ar bugs

0/100 · OpaqueMessage clarity
! Very short subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Moderate 57/100

This commit fixes several bugs in the firmware of the Keystone 3 hardware wallet, mainly around how Arweave (AR) cryptocurrency keys and RSA prime numbers are handled. It replaces direct array indexing with safer lookups, adds checks for missing or corrupted data, stores a hash of sensitive RSA primes in a secure chip, and erases that data when an account is deleted. The changes reduce the chance that a malformed or out-of-range value could cause the device to read the wrong key, crash, or leave sensitive key material behind after deletion.

AI review queuedchore: resume Zcash firmware version changesby soralit · 4ec3335f · Jun 22, 2026 · 9 filesMessage 72 · AdequateInformational 19Details
Commit message · soralit

chore: resume Zcash firmware version changes

This reverts commit 718548072bc0929b34d9af7eb57061cc10b3b7cc.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit re-introduces Zcash-related firmware version reporting that had been temporarily reverted. It makes the device include its firmware version when generating Zcash wallet connection data and stamps the same version into every signed Zcash transaction response. The change also fixes two simulator-only stability issues: a crash when a text area is destroyed while keyboard events are still being processed, and a scheduling mismatch that made simulator background tasks run immediately instead of in order. There is no direct evidence in the commit that these changes fix an active security vulnerability; the Zcash additions are a feature/resumption, and the simulator fixes are development-environment hardening.

AI review queuedchore: revert Zcash firmware version changesby soralit · 71854807 · Jun 22, 2026 · 9 filesMessage 57 · ThinInformational 19Details
Commit message · soralit

chore: revert Zcash firmware version changes

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 pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit is a straightforward revert that removes a recently-added Zcash firmware-version reporting feature. It strips out code that embedded the Keystone firmware version into Zcash PCZT (partially-created transaction) responses and into Zcash wallet-connection QR data. The change also reverts two simulator-only UI/framework tweaks that were apparently part of the same feature branch. There is no direct evidence in the commit of a security vulnerability being fixed; it reads like a product decision to back out a feature.

AI review queuedfix the build issuesby aaron · 41a41374 · Jun 18, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · aaron

fix the build issues

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit fixes a simple C compiler error in the account manager. A variable named validCount and a loop counter i were used but never declared, and an indentation/whitespace mistake was corrected. There is no security-relevant change visible in the diff.

Lower-priorityresolve the code review commentsby aaron · 0f1e0e21 · Jun 18, 2026 · 2 filesMessage 45 · ThinLow 44Details
Commit message · aaron

resolve the code review comments

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 44/100

This commit changes two things in a cryptocurrency hardware wallet's firmware. First, it makes several low-level secure-chip operations crash or halt the device if the chip reports any unexpected failure, rather than returning the error to the caller. Second, it adds a startup check that tries to detect partially-written account data (for example, after a sudden power loss during a factory wipe) and erases the affected account. The commit title says only 'resolve the code review comments' and does not describe any security issue.

Security candidatefeat: update dice roll entropy uiby soralit · 7bc4d7d8 · Jun 18, 2026 · 8 filesMessage 62 · AdequateLow 35Details
Commit message · soralit

feat: update dice roll entropy ui

62/100 · AdequateMessage clarity
✓ 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
entropy or randomnesscryptography-sensitive path
AI analysis · Low 35/100

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 for 12-word (BIP39) or 20-word (SLIP39) seeds, and at least 100 rolls for 24-word (BIP39) or 33-word (SLIP39) seeds. Previously, the firmware only required 50 rolls regardless of seed length. The change is a security hardening measure to ensure that higher-strength seeds receive enough physical entropy, but it is a partial patch because the dice-roll input itself is not fully validated and the entropy extraction method is not visible in this diff.

Security candidatechange the se config and usageby aaron · 24f68a8e · Jun 17, 2026 · 14 filesMessage 45 · ThinModerate 57Details
Commit message · aaron

change the se config and usage

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Moderate 57/100

This firmware update changes how the Keystone hardware wallet stores and checks device passwords. Previously, the device kept a separate password hash page in its secure element (SE) storage. After this update, password verification is done by trying to decrypt the actual account secret using the password, and the old password hash pages are wiped. The change also removes hard assertions on SE operations so that failures return error codes instead of crashing, and it maps a specific secure-element authentication failure to a wrong-password error. The version number is bumped from 12.4.6 to 12.5.0.

AI review queuedchore: update uiby soralit · 3bb83d97 · Jun 16, 2026 · 5 filesMessage 40 · ThinLow 28Details
Commit message · soralit

chore: update ui

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 28/100

This commit refactors how TON (The Open Network) transactions are displayed on the Keystone 3 hardware wallet. Previously, the code assumed every transaction had exactly one message. Now it supports multiple messages, showing each one separately on screen. The change also fixes a small bug where a proof-result pointer was incorrectly cleared, and adds a safety check when parsing contract data JSON. There is no direct evidence in the commit of a security vulnerability being fixed, but supporting multi-message transactions is a meaningful hardening improvement because a malicious or unusual transaction with several messages could previously have been misrepresented or mishandled.

Lower-priorityfix: move the babylon context hash call UI only in web3 buildby aaron · 78830db5 · Jun 15, 2026 · 3 filesMessage 62 · AdequateInformational 16Details
Commit message · aaron

fix: move the babylon context hash call UI only in web3 build

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 16/100

This commit only moves three existing UI source files into a different folder (the web3 build variant). The code itself is unchanged, so this is a build-system/organization fix rather than a security patch. It likely prevents the Babylon 'derive context hash' screen from being compiled into non-web3 firmware builds.

AI review queuedadd 2.4.6 changelogby bianminyan · 6a5d7075 · Jun 15, 2026 · 2 filesMessage 38 · OpaqueInformational 15Details
Commit message · bianminyan

add 2.4.6 changelog

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only adds a new section to two changelog files describing version 2.4.6 and a new feature ('Support babylon derive context hash call'). No source code, configuration, or executable files were changed. There is no security-relevant content in the diff itself.

Lower-priorityfix: sui checkby soralit · 7842e432 · Jun 15, 2026 · 1 fileMessage 40 · ThinModerate 64Details
Commit message · soralit

fix: sui check

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Moderate 64/100

This commit removes an early 'return' statement in the Sui transaction-checking function on the Keystone 3 hardware wallet. Before the fix, the function would immediately return a blank 'success' result without validating the master fingerprint or inspecting the transaction. That means a malicious or malformed Sui transaction request could bypass the normal security checks the device is supposed to perform. The fix allows the intended validation code to run.

AI review queuedfeat: support babylon derive context hashby aaron · 78411428 · Jun 15, 2026 · 30 filesMessage 57 · ThinLow 37Details
Commit message · aaron

feat: support babylon derive context hash

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 pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Low 37/100

This commit adds a new feature to the Keystone 3 hardware wallet that lets approved Bitcoin apps (like Babylon) request a special cryptographic hash derived from the wallet's seed. The wallet shows the user the connected Bitcoin address and, after approval, returns a 32-byte hash. The code includes checks to limit which apps can ask, which Bitcoin networks are accepted, and which derivation paths can be used. It also adds a testnet display toggle for Bitcoin receive addresses. There is no direct evidence in the commit that this fixes a known security vulnerability; it appears to be a feature addition.

Lower-prioritychore: update depby soralit · dc69cfc7 · May 26, 2026 · 3 filesMessage 40 · ThinInformational 15Details
Commit message · soralit

chore: update dep

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit simply bumps two Rust library versions (ur-registry and ur-parse-lib from 1.0.3 to 1.0.4) and updates an unrelated image asset hash file. There is no visible security fix or vulnerability in the diff itself. Without knowing what changed in the updated dependencies, we cannot classify this as a security patch.