KS
← All projectsKeystone

Keystone 3 firmware

Open-source device firmware for Keystone 3 hardware wallets.

BitcoinHardware walletsNormal
Repository coverage

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

111security candidates287second-pass queue418AI analyses
119commits · 30 days
159commits · 60 days
276commits · 180 days
535commits · 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
204Thin · 40–59
233Opaque · 0–39
38security 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.
Adam Tucker931156163
aaron30413148
ww351268717652165026
soralit1153477048
willwang15214025
John Boyd624088
Soralit321058
Qkin-Keystone26123036
qkin12111050
Greg Pfeil412071
Daira-Emma Hopwood211085
bianminyan45042032
Analysis record

Published AI watches

Last scanned 49 minutes ago

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
Moderate 59 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

replace lvgl rand

This commit swaps out the LVGL graphics library's pseudo-random number generator for the device's hardware true random number generator (TRNG) in two places: shuffling the on-screen numeric keypad and shuffling recovery-word lists. The old…

Replacement of non-cryptographic PRNG with hardware TRNG in security-sensitive shuffle routinesFisher-Yates shuffle of on-screen PIN keypad now uses TrngGetFisher-Yates shuffle of mnemonic word array now uses TrngGet
f7d64fb8by ww3512687+8−32 files
No security note in commit
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 62 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: improve Solana message handling

This commit hardens how Keystone 3 handles Solana signing requests. Previously, the device partly trusted an external 'sign type' flag from the wallet app to decide whether a QR code contained a transaction or a plain message. The patch no…

Replaces trust in external sign-type metadata with byte-level payload classificationRejects malformed transactions that contain a valid transaction prefix followed by hidden trailing dataPrevents a transaction from being displayed and signed as a plain message
756df0e7by soralit+151−387 files
No security note in commit
Low 49 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: address Solana review findings

This commit improves how Keystone 3's Solana app recognizes and displays certain transaction types. It adds support for the Solana Compute Budget program so those instructions are no longer labeled as 'Unknown,' and it adds parsing for Sol…

Previously unknown Compute Budget instructions are now parsed and labeled, reducing the chance a user approves a transaction they cannot understand.Off-chain signing messages are parsed with format and length validation, so wallet-connect-style sign-in messages are shown as text rather than misinterpreted as transactions.Unknown program accounts are surfaced explicitly in the UI instead of being hidden inside a generic 'Unknown' instruction list.
e1752174by soralit+343−5711 files
No security note in commit
Informational 12 AI analysisMessage 47 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: remove implementation plan

This commit only deletes a planning document from the repository's docs folder. No firmware code, build scripts, or cryptographic logic were changed. The deleted file described a previously completed security-hardening task about removing …

Deleted document references a prior security-hardening task (issue #2255 / PRNG fallback removal)No source-code or build-system changes in the diff
4620fe94by ww3512687+0−1041 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 19 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat: rename matic to pol

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…

88132d72by soralit+2−21 file
No security note in commit
Informational 10 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update ci

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…

39cfff13by soralit+1−11 file
No security note in commit
Moderate 63 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix: regular AI code review and fix

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, Solan…

Arweave: duplicate required tags now rejected, malformed/trailing Avro data now rejectedArweave: DataItem tag count mismatch now rejectedAvalanche: trailing transaction bytes now rejected via parsed_size checks
e2c0ef31by soralit+3998−142676 files
No security note in commit
Informational 19 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

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

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…

Build/link-time failure fix for conditional feature compilationExplicit error response added for unsupported coin type on non-web3 buildsNo input validation, memory safety, or cryptographic changes observed
9d04150dby John Boyd+10−01 file
No security note in commit
Informational 20 AI analysisMessage 85 · Strong
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

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

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 disp…

UI mislabeling of self-owned Zcash shielded outputsNew `is_mine` ownership flag propagated across Rust/C FFI boundaryNo change to signing logic, key handling, or transaction validation
9eb7f4c3by John Boyd+57−45 files
No security note in commit
Low 33 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

optimize sol derivation path allocation

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 …

Eliminates heap allocation for a fixed-size derivation-path bufferRemoves manual free responsibility from caller, reducing memory leak / use-after-free riskSwitches helper return type from pointer to bool to enforce explicit success/failure handling
9c3efd94by ww3512687+12−201 file
No security note in commit
Moderate 57 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

refactor: remove unused QR code protocols

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 gener…

Removal of custom protobuf-based QR transaction paths reduces attack surfaceExplicit rejection of ur:bytes for Bitcoin-family and Ethereum transactionsLegacy handlers used unwrap() and raw protobuf deserialization on untrusted QR input
28dd305dby soralit+58−5067 files
No security note in commit
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 36 AI analysisMessage 28 · Opaque
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

support sol cli

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 s…

New USB command exposes public-key export for a specific coin type and derivation pathAdded NULL/empty checks before returning generated UR data and before using cached passwordMoved several UR result sends from synchronous to asynchronous (task-queue based) dispatch
77833f49by ww3512687+282−2016 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: update change log

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…

c224a7f5by soralit+12−232 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

chore: bump version

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 commi…

62a5d952by soralit+2−21 file
No security note in commit
Low 37 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Fix Zcash wallet preparation on unlock

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…

Input validation hardening in a shared utility functionChangelog describes a Zcash wallet preparation/unlock behavior fixPotential off-by-one length check corrected
dd034199by Adam Tucker+8−44 files
No security note in commit
Informational 3 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Use released UR crates 1.0.8

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 …

fa0add39by Adam Tucker+8−102 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-priorityfeat: add bsc thorchain contractsby soralit · 92339df3 · Sep 15, 2025 · 2 filesMessage 57 · ThinTriage 0Details
Commit message · soralit

feat: add bsc thorchain contracts

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedsupport iota walletby ww3512687 · 3806ad42 · Sep 15, 2025 · 7 filesMessage 28 · OpaqueInformational 15Details
Commit message · ww3512687

support iota wallet

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

This commit adds support for the IOTA wallet in the Keystone 3 firmware. It is a routine feature addition: a new wallet icon is included, the wallet is added to the status bar and connect-wallet lists, and the firmware build number is bumped. There is no indication of a security fix or vulnerability.

AI review queuedUpdate version for beta_testby bianminyan · fe25cc1a · Sep 15, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · bianminyan

Update version for beta_test

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit simply bumps a build number in a version header from 9 to 13 for a beta test. It does not change any executable logic, fix any bug, or alter any security behavior. There is no security relevance visible in the change itself.

Lower-priorityfeat: add bsc thorchain contractsby soralit · 75a0c4fb · Sep 12, 2025 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · soralit

feat: add bsc thorchain contracts

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedfix ada crashby 0xApprentice · 8ce06467 · Sep 10, 2025 · 1 fileMessage 28 · OpaqueLow 35Details
Commit message · 0xApprentice

fix ada crash

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

This commit increases the memory stack size for a task that handles sensitive data, with the stated goal of fixing a crash related to Cardano (ADA). A too-small stack can cause memory corruption or a device crash when handling certain operations. While the change itself is defensive, the crash occurs in a security-sensitive task, so it could theoretically affect availability or stability during sensitive operations. There is no direct evidence in the commit that this is exploitable for theft or key extraction.

AI review queuedfix: buildby soralit · 5965959d · Sep 10, 2025 · 2 filesMessage 2 · OpaqueInformational 15Details
Commit message · soralit

fix: build

2/100 · OpaqueMessage clarity
✓ Uses a recognizable type or scope! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit is a routine build fix. It updates a cached image hash file and adds a missing function declaration inside a conditional compile block for a Web3-specific version. There is no visible security relevance.

AI review queuedDisordered keyboardby willwang · 7f1be015 · Sep 5, 2025 · 5 filesMessage 18 · OpaqueModerate 50Details
Commit message · willwang

Disordered keyboard

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Moderate 50/100

This commit adds a feature that shuffles the on-screen numeric keypad layout each time the device lock screen appears. The goal is to make it harder for someone watching or recording your screen to figure out your PIN based on where your fingers tap. The change itself is a security improvement, not a vulnerability fix, but the commit message is vague and gives no explanation.

AI review queuedupdate hardware version displayby willwang · 841e50ad · Sep 4, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · willwang

update hardware version display

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit simply changes two user-facing text labels from 'Version 3.0' and 'Version 3.1' to 'V3.0' and 'V3.1'. It is a cosmetic string formatting update with no security relevance.

AI review queuedadd 2.2.12 changelogby bianminyan · 695095a4 · Sep 4, 2025 · 2 filesMessage 38 · OpaqueInformational 15Details
Commit message · bianminyan

add 2.2.12 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 release notes for firmware version 2.2.12. It does not change any executable code, configuration, or security controls. The changelog mentions a bug fix for Cardano passphrase message signing, but the commit itself contains only documentation updates.

AI review queuedDisordered keyboardby willwang · 9b13b0cc · Sep 3, 2025 · 1 fileMessage 18 · OpaqueLow 42Details
Commit message · willwang

Disordered keyboard

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 42/100

This commit adds a shuffled numeric keypad for PIN entry on a hardware wallet. Instead of always showing 0-9 in the same order, the digits now appear in a random order each time. This is a defensive measure to make it harder for someone watching or recording the screen to learn your PIN based on where you tap.

Security candidatefix buildby willwang · 947fb0f6 · Sep 3, 2025 · 2 filesMessage 0 · OpaqueInformational 11Details
Commit message · willwang

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
cryptography-sensitive path
AI analysis · Informational 11/100

This commit is a build fix that restructures conditional compilation blocks for different firmware variants (Web3, Cypherpunk, BTC-only). It does not appear to change runtime behavior for any single firmware build; it mainly ensures the correct code paths compile under each build configuration. There is no clear security-relevant change.

AI review queuedUpdate versionby bianminyan · b93fbb3d · Sep 3, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · bianminyan

Update version

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only changes one number in a version header, bumping the build version from 10 to 12. There is no functional code change, no bug fix, and no security-related content visible in the diff.

AI review queuedfmtby willwang · 273f573c · Sep 3, 2025 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · willwang

fmt

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit only reformats a single Rust test file using a code formatter (rustfmt). It changes whitespace and line breaks in an existing test assertion but does not alter any executable logic, constants, or behavior. There is no security relevance.

Security candidateAdd support for SLIP39 in Cardano wallet functionalityby willwang · 0ba89f3b · Sep 3, 2025 · 18 filesMessage 83 · StrongLow 27Details
Commit message · willwang

Add support for SLIP39 in Cardano wallet functionality

- Introduced new `slip23.rs` module for SLIP39 seed handling.
- Updated `address.rs` to include SLIP39 address derivation tests.
- Enhanced error handling in `errors.rs` for invalid seeds.
- Modified `lib.rs` to expose the new SLIP39 module.
- Updated various wallet functions to accommodate SLIP39, including key generation and transaction signing.
- Adjusted UI components to reflect SLIP39 compatibility in wallet operations.

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 boundarycryptography-sensitive pathsigning or wallet path
AI analysis · Low 27/100

This commit adds support for the SLIP39 standard (a way to split a wallet backup into multiple shares) to the Cardano wallet features of a Keystone hardware wallet. It is a feature addition, not a clear security fix. The code changes how Cardano master keys are derived when a SLIP39 wallet is used, and removes several UI blocks that previously disabled Cardano for SLIP39 users. There is no vendor statement or external report saying this commit fixes a vulnerability.

AI review queuedupdate bsc iconby willwang · 0c4ca3c4 · Sep 3, 2025 · 4 filesMessage 28 · OpaqueInformational 15Details
Commit message · willwang

update bsc icon

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

This commit simply swaps the on-screen icon for the BSC (Binance Smart Chain) wallet connection in the Keystone hardware wallet firmware. It updates the PNG source image, its converted embedded C array, the image hash file, and a widget reference. There is no change to security logic, cryptography, transaction handling, or user confirmation flows.

AI review queuedUpdate version for beta_testby bianminyan · fb25f051 · Sep 2, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · bianminyan

Update version for beta_test

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit simply changes one number in a version file, lowering the build version from 10 to 9 for a beta test. It does not modify any security-related code, fix any bug, or introduce any vulnerability.

AI review queuedfix bugby willwang · 99eadbc3 · Aug 29, 2025 · 1 fileMessage 0 · OpaqueLow 35Details
Commit message · willwang

fix bug

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 35/100

This commit fixes a bug in the 'forget password' screen of a Keystone hardware wallet. It resets a global flag called g_isTonMnemonic to false when leaving that screen. Without this reset, the wallet might incorrectly remember that it was handling a TON (The Open Network) style recovery phrase even after the user navigates away. That leftover state could lead to wrong behavior, confusion, or possibly security-relevant mistakes if the flag later influences how secrets are parsed or stored.

Lower-priorityfix ton wallet check and forgetby willwang · 411b3b79 · Aug 26, 2025 · 6 filesMessage 45 · ThinTriage 0Details
Commit message · willwang

fix ton wallet check and forget

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedupdate rust panic displayby willwang · 6d62fec4 · Aug 25, 2025 · 1 fileMessage 35 · OpaqueInformational 16Details
Commit message · willwang

update rust panic display

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: broader security terminologysecond-pass: opaque commit message
AI analysis · Informational 16/100

This commit changes the on-screen message shown when the device's Rust code crashes ('panics'). It now first reassures the user that their assets are safe and blames a 'failed data request,' then prints the technical Rust panic details in gray text instead of showing only the raw panic message. There is no direct evidence this fixes a security vulnerability; it appears to be a user-experience improvement that may also reduce information leakage from panic messages.

AI review queuedfix key imagesby willwang · de4174eb · Aug 22, 2025 · 2 filesMessage 28 · OpaqueModerate 57Details
Commit message · willwang

fix key images

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

This commit fixes how the Keystone hardware wallet generates Monero 'key images' for transactions that use extra one-time public keys (subaddresses or additional transaction keys). Before the fix, the code always used the main transaction public key to derive key images, even when Monero rules say it should use an additional key. This mismatch could cause the wallet to generate the wrong key image, which in a hardware wallet context most likely means a transaction would fail to build or be rejected, rather than funds being stolen. The commit adds logic to pick the correct additional key based on subaddress major/minor indices and the output index.

Security candidatefix: buildby soralit · 00ddb4b8 · Aug 22, 2025 · 1 fileMessage 2 · OpaqueInformational 15Details
Commit message · soralit

fix: build

2/100 · OpaqueMessage clarity
✓ Uses a recognizable type or scope! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only adds two function declarations (a setter and a getter for an 'extendable' flag) to a header file. There is no executable code change, no bug fix, and no security-relevant behavior visible in the diff. It appears to be a straightforward build fix to satisfy a compiler or linker error caused by missing declarations.

AI review queuedfix monero unwrapby willwang · fadd5bc9 · Aug 22, 2025 · 1 fileMessage 28 · OpaqueModerate 57Details
Commit message · willwang

fix monero unwrap

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

This commit changes how the Monero signing code in the Keystone 3 firmware handles failures when computing cryptographic key images. Previously, the code used `.unwrap()`, which would cause the firmware to panic (crash) if key-image generation failed. The patch replaces those unwraps with proper error propagation (`Result<...>`), so failures are returned as errors instead of crashing. For a hardware wallet, a panic during transaction signing could potentially be triggered by a malformed transaction and might be used to deny service or, in the worst case, leak sensitive state through crash behavior. The patch is a defensive hardening fix.

AI review queuedUpdate versionby bianminyan · 8ed565ca · Aug 19, 2025 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · bianminyan

Update version

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit simply bumps a build number in a version header file from 8 to 10. There are no code changes, no bug fixes, and no security-related modifications visible in the diff.

AI review queuedfix uiby willwang · c4ca4617 · Aug 19, 2025 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · willwang

fix ui

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit adjusts the vertical positioning of a divider line and a button on the device's 'About' info screen. It is purely a cosmetic user-interface fix with no security relevance.

AI review queuedmodified device infoby willwang · 3c18bd9f · Aug 19, 2025 · 1 fileMessage 28 · OpaqueInformational 19Details
Commit message · willwang

modified device info

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

This commit removes a UI button that displayed the device's public key (labeled as device UID) from the 'About' info screen of a Keystone hardware wallet. It is a user-interface change, not a fix for a code vulnerability. The change reduces information exposure through the screen but does not alter any cryptographic or security logic.