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

Security candidatefix: remove insecure PRNG fallbackby ww3512687 · 17c78e30 · Aug 4, 2026 · 3 filesMessage 80 · StrongModerate 64Details
Commit message · ww3512687

fix: remove insecure PRNG fallback

Remove trezor-crypto's unused LCG and weak fallback so device builds must link the platform random_buffer implementation. Keep a simulator-only standard library stub.

Co-authored-by: Nikolaus Heger <nheger@gmail.com>

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
entropy or randomnesscryptography-sensitive pathseed or entropy path
AI analysis · Moderate 64/100

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 could silently fall back to the weak generator, which would make wallet backup seeds predictable. Now the weak generator is gone for hardware builds, so a missing proper random source causes the build to fail instead of silently producing insecure seeds. The simulator still keeps a simple software-only stub for testing.

Lower-priorityfeat: rename matic to polby soralit · 88132d72 · Jul 31, 2026 · 1 fileMessage 57 · ThinInformational 19Details
Commit message · soralit

feat: rename matic to pol

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 19/100

This commit simply renames the cryptocurrency token symbol from MATIC to POL in two places in the user-interface code for the Keystone 3 hardware wallet. Polygon officially rebranded its native token from MATIC to POL, so this is a routine label update. There is no security vulnerability here.

Security candidatechore: update ciby soralit · 39cfff13 · Jul 31, 2026 · 1 fileMessage 40 · ThinInformational 10Details
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
AI analysis · Informational 10/100

This commit is described as a routine CI (continuous integration) update with only one line changed in a release-related file. No code changes affecting wallet security, cryptography, or user funds are visible, and no security relevance is stated.

AI review queuedfix: regular AI code review and fixby soralit · e2c0ef31 · Jul 30, 2026 · 76 filesMessage 57 · ThinModerate 63Details
Commit message · soralit

fix: regular AI code review and fix

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 pathparser or protocol pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Moderate 63/100

This is a large, routine code-quality and hardening patch for the Keystone 3 hardware wallet firmware. It tightens how transactions are parsed and displayed for several cryptocurrencies (Arweave, Avalanche, Bitcoin, Cosmos, Ethereum, Solana). Key user-visible effects: duplicate or malformed transaction tags are now rejected, oversized Bitcoin fees trigger a warning, unknown Cosmos messages are shown as 'blind sign' with a digest instead of being silently dropped, and Ethereum nonces/values are handled with full precision. The commit message frames this as a regular AI-assisted code review and fix, not as a response to a disclosed security incident.

AI review queuedfix: guard Solana USB pubkey service for non-web3 buildsby John Boyd · 9d04150d · Jul 28, 2026 · 1 fileMessage 85 · StrongInformational 19Details
Commit message · John Boyd

fix: guard Solana USB pubkey service for non-web3 builds

CheckSolPathSupport is only compiled under WEB3_VERSION, but the USB
pubkey service introduced with the sol-cli feature calls it
unconditionally, so cypherpunk and btc-only production builds fail to
link. Compile the Solana path only for web3 firmware and answer the
request with the existing "Unsupported coin type" error elsewhere.

Co-Authored-By: Claude Fable 5 <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
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit fixes a firmware build problem, not a runtime security bug. The Solana USB public-key service was calling a function that only exists in the multi-coin 'web3' firmware variant, so the more limited 'cypherpunk' and 'bitcoin-only' firmware variants could not compile/link. The patch makes the Solana code compile only for the web3 variant and returns an 'Unsupported coin type' error for the other variants. It is a build-configuration fix with no direct exploit path.

Lower-priorityfeat(zcash): tag outputs to the wallet's own address as Mineby John Boyd · 9eb7f4c3 · Jul 28, 2026 · 5 filesMessage 85 · StrongInformational 20Details
Commit message · John Boyd

feat(zcash): tag outputs to the wallet's own address as Mine

The review screen previously computed shielded output ownership via the
IVK scope check and then discarded the external-scope result, so an
output paying the wallet's own external Orchard or Ironwood receiver
rendered like a payment to a foreign address. Propagate the ownership
flag through ParsedTo and DisplayTo and render a "Mine" tag on output
rows, with the existing "Change" tag taking precedence for
internal-scope outputs.

Co-Authored-By: Claude Fable 5 <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
AI analysis · Informational 20/100

This commit fixes a UI labeling bug in the Keystone hardware wallet's Zcash transaction review screen. Previously, when a user sent Zcash to one of their own shielded addresses (an 'external' address, not a change address), the device displayed it as if it were a payment to a stranger. Now it shows a 'Mine' tag so the user can recognize it as their own address. This is a user-experience and anti-confusion improvement, not a vulnerability that lets an attacker steal funds.

AI review queuedoptimize sol derivation path allocationby ww3512687 · 9c3efd94 · Jul 28, 2026 · 1 fileMessage 45 · ThinLow 33Details
Commit message · ww3512687

optimize sol derivation path allocation

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Low 33/100

This commit refactors how a Solana cryptocurrency derivation path is stored while parsing a USB request. Previously, the code dynamically allocated a small heap buffer inside a helper function and returned it to the caller, which then had to free it. Now the caller provides a fixed-size stack buffer, and the helper just fills it. The change removes a potential memory leak and a use-after-free risk if the caller forgot to free the buffer, and it avoids relying on dynamic allocation for a small fixed-size string. There is no direct evidence in the commit of an exploitable vulnerability being fixed, but the change is a defensive hardening improvement.

Lower-priorityrefactor: remove unused QR code protocolsby soralit · 28dd305d · Jul 28, 2026 · 7 filesMessage 57 · ThinModerate 57Details
Commit message · soralit

refactor: remove unused QR code protocols

57/100 · ThinMessage clarity
✓ 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 removes old, custom QR-code transaction formats for Bitcoin-family coins, Ethereum, and XRP, and replaces them with standardized formats. It also adds explicit rejections when the device receives a transaction through the generic 'ur:bytes' QR type for Bitcoin and Ethereum. The change is described by the vendor as a cleanup of unused protocols, but it also closes a path where a specially crafted QR code could potentially be misinterpreted as a valid transaction.

Security candidatechore: upgrade rust versionby soralit · 82a48133 · Jul 28, 2026 · 21 filesMessage 47 · ThinInformational 15Details
Commit message · soralit

chore: upgrade rust version

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
boot or update pathparser or protocol path
AI analysis · Informational 15/100

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 the file changes are new unit tests and small formatting fixes needed for the newer compiler.

AI review queuedsupport sol cliby ww3512687 · 77833f49 · Jul 27, 2026 · 16 filesMessage 28 · OpaqueLow 36Details
Commit message · ww3512687

support sol cli

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 36/100

This commit adds Solana CLI support to the Keystone 3 hardware wallet firmware. It introduces a new USB command that lets a connected computer request public keys for specific Solana derivation paths, and it reworks how USB responses are sent so they happen asynchronously rather than blocking the user interface. Most changes are feature additions and defensive hardening (for example, checking for NULL pointers and ensuring password checks are complete before approving key-derivation requests). There is no explicit security bug fix or vendor security disclosure in the commit message or diff.

Lower-prioritychore: update change logby soralit · c224a7f5 · Jul 24, 2026 · 2 filesMessage 40 · ThinInformational 15Details
Commit message · soralit

chore: update change log

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only edits the project's changelog text. It rewrites the release notes for version 3.0.2, removing detailed bug-fix descriptions and replacing them with a shorter note about Zcash Ironwood support. No source code, build scripts, or firmware logic is changed, so this commit by itself does not introduce, fix, or alter any security behavior in the product.

Lower-prioritychore: bump versionby soralit · 62a5d952 · Jul 24, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · soralit

chore: bump version

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 only changes two version numbers in a header file: the build number is increased from 1 to 2, and the beta flag is turned off (set to 0). There is no code change, no bug fix, and no security-related content in the diff or commit message.

Lower-priorityFix Zcash wallet preparation on unlockby Adam Tucker · dd034199 · Jul 24, 2026 · 4 filesMessage 45 · ThinLow 37Details
Commit message · Adam Tucker

Fix Zcash wallet preparation on unlock

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

This commit fixes a bug in a helper function that checks whether a text string is a valid hexadecimal value of the expected length. The changelog frames the user-visible fix as 'preventing Zcash public information from being regenerated on every unlock.' The code change tightens a length check so the function no longer accepts an expected length equal to the maximum buffer size, and it correctly detects strings that are exactly one character longer than the requested length. The security relevance is indirect: a malformed or over-long hex string could previously pass validation in edge cases, which might affect Zcash wallet preparation or other callers.

Lower-priorityUse released UR crates 1.0.8by Adam Tucker · fa0add39 · Jul 23, 2026 · 2 filesMessage 45 · ThinInformational 3Details
Commit message · Adam Tucker

Use released UR crates 1.0.8

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

This commit simply switches two software building blocks (called 'crates') from a development Git snapshot to a published release version (1.0.8) on the official Rust package registry. The change itself does not add, remove, or modify any program logic in the firmware. It only changes where the code is downloaded from and which exact released version is used. There is nothing in the commit message, title, or diff that says this fixes a security problem.

AI review queuedPreserve Zcash account firmware version (#37)by Adam · 20d7ea2d · Jul 22, 2026 · 3 filesMessage 68 · AdequateInformational 17Details
Commit message · Adam

Preserve Zcash account firmware version (#37)

* Preserve Zcash account firmware version

* Keep UR dependencies at 1.0.7

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

This commit is a small, non-security code change. It updates a Zcash wallet test to verify that the firmware version string is preserved when account data is encoded and decoded, and it switches two Rust library dependencies from the public crates.io registry to a specific Git revision from a third-party fork. There is no direct evidence in the commit that this fixes a vulnerability.

AI review queuedPreserve PCZT v1 response encodingby Adam Tucker · acf3611a · Jul 22, 2026 · 5 filesMessage 45 · ThinLow 28Details
Commit message · Adam Tucker

Preserve PCZT v1 response encoding

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 28/100

This commit changes how the Keystone hardware wallet handles Zcash PCZT (partially-created transaction) files. Previously, after checking and signing a transaction, the device always returned the result in the newer v2 format. Now it remembers whether the incoming file was in v1 or v2 format and returns the signed result in the same version. This is a compatibility fix for wallets that only understand PCZT v1, not a fix for a vulnerability that lets an attacker steal funds.

Lower-prioritychore: bump to beta versionby soralit · 72b77ca7 · Jul 22, 2026 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · soralit

chore: bump to beta version

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only changes two version numbers in a header file, marking the firmware as a beta build. There are no code changes, no bug fixes, and no security-related modifications.

Lower-prioritychore: update keystone-sdk-rust versionby soralit · 88793d72 · Jul 22, 2026 · 2 filesMessage 57 · ThinInformational 3Details
Commit message · soralit

chore: update keystone-sdk-rust version

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 3/100

This commit simply updates two Rust library versions (ur-registry and ur-parse-lib) used by the Keystone 3 firmware and removes a temporary patch that pointed to a specific Git commit. There is no information in the commit itself saying this fixes a security problem, and no independent references were provided. It looks like a routine dependency maintenance change.

Lower-prioritytest(zcash): harden v1 PCZT end-to-end coverageby Adam Tucker · 2c54cb53 · Jul 21, 2026 · 3 filesMessage 67 · AdequateInformational 12Details
Commit message · Adam Tucker

test(zcash): harden v1 PCZT end-to-end coverage

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
defensive validation
AI analysis · Informational 12/100

This commit only adds and updates test code for the Zcash PCZT (Partially-Created Zcash Transaction) feature. It hardens end-to-end test coverage for version 1 PCZTs that include both transparent and Orchard shielded inputs/outputs. There are no changes to production firmware logic, only test fixtures and test assertions.

AI review queuedrefactor(zcash): use shielded pool display directlyby Adam Tucker · 9074e087 · Jul 21, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · Adam Tucker

refactor(zcash): use shielded pool display directly

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

This commit is a minor code cleanup in the Zcash shielded-transaction handling code. It removes temporary variables named `pool_label` and instead uses the existing `pool` value directly when building error messages. There is no change to security logic, transaction validation, or cryptographic operations.

Lower-priorityfix(zcash): validate transparent PCZT formatsby Adam Tucker · 0d02c355 · Jul 21, 2026 · 2 filesMessage 57 · ThinModerate 60Details
Commit message · Adam Tucker

fix(zcash): validate transparent PCZT formats

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
defensive validation
AI analysis · Moderate 60/100

This commit tightens validation for Zcash transaction formats (PCZT) on the Keystone 3 hardware wallet. Previously, the firmware only checked that a transaction was version 6 or higher and not v6 specifically, plus that it had no Sapling or Orchard shielded components. The new code also verifies the exact transaction version, version group ID, and the consensus branch's Orchard protocol revision. A new test confirms that a v6 transaction on the Nu6 branch is rejected for transparent-only operations. The change appears to prevent unsupported or ambiguous transaction formats from being signed or parsed, which could reduce the risk of signing a transaction the wallet does not fully understand.

Lower-prioritytest(zcash): restore v1 PCZT end-to-end coverageby Adam Tucker · 75b69553 · Jul 21, 2026 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Adam Tucker

test(zcash): restore v1 PCZT end-to-end coverage

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only adds and updates test code for the Zcash cryptocurrency support in the Keystone 3 firmware. It restores an end-to-end test that exercises version 1 PCZT (Partially Created Zcash Transaction) handling for older Orchard transaction formats. There are no changes to production code, user-facing behavior, or security-sensitive logic.

Lower-prioritybuild(zcash): use released protocol cratesby Adam Tucker · ef5ad05f · Jul 21, 2026 · 4 filesMessage 80 · StrongInformational 11Details
Commit message · Adam Tucker

build(zcash): use released protocol crates

Use crates.io releases for PCZT, Orchard, and the librustzcash crate family. Keep ur-registry patched to the merged SDK revision until its updated batch envelope is published.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 11/100

This commit is a routine build update for the Zcash parts of the Keystone 3 firmware. It switches several Rust libraries from using specific GitHub revisions to using published versions from crates.io, and bumps a few version numbers. There is no direct evidence in the commit that this fixes a security vulnerability. It is primarily a dependency-maintenance change.

Lower-prioritytest(zcash): restore transparent-output PCZT coverageby Adam Tucker · 4bdf2148 · Jul 21, 2026 · 1 fileMessage 72 · AdequateInformational 13Details
Commit message · Adam Tucker

test(zcash): restore transparent-output PCZT coverage

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

This commit only adds a new automated test for the Zcash cryptocurrency code. It restores test coverage to make sure that an Orchard (privacy-focused) transaction with a regular transparent output is still accepted by the validation logic. There are no changes to production code, user-facing behavior, or security-sensitive logic.

AI review queuedfix(zcash): allow transparent-only V6 PCZTsby Adam Tucker · ba4ecf28 · Jul 21, 2026 · 4 filesMessage 57 · ThinLow 37Details
Commit message · Adam Tucker

fix(zcash): allow transparent-only V6 PCZTs

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 · Low 37/100

This commit changes how Keystone's Zcash transaction handling treats version 6 (V6) PCZTs. Previously, all V6 Zcash transactions were rejected in the non-cypherpunk (transparent-only) code path. The patch now allows V6 transactions as long as they contain only transparent inputs and outputs, while still rejecting shielded or unknown transaction formats. This is a feature expansion to support transparent-only V6 Zcash transactions, not a fix for an active security vulnerability.