KS
← All projectsKeystone

Keystone 3 firmware

Open-source device firmware for Keystone 3 hardware wallets.

BitcoinHardware walletsNormal
Repository coverage

532 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

107security candidates287second-pass queue212AI analyses
116commits · 30 days
155commits · 60 days
272commits · 180 days
532commits · 365 days
Backfill bands
Aug 5 → Feb 6260 seen14 candidatesComplete
Feb 6 → Jun 6117 seen7 candidatesComplete
Jun 6 → Jul 639 seen4 candidatesComplete
Jul 6 → Aug 5115 seen4 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

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

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Adam Tucker931134163
aaron3046148
ww35126871755182026
soralit1143359048
willwang1522025
John Boyd622088
Qkin-Keystone26113036
qkin12110050
Greg Pfeil411071
Daira-Emma Hopwood211085
bianminyan4500032
stone wang301038
Analysis record

Published AI watches

Last scanned 28 minutes ago

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

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

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

Incorrect success return on authentication failure in simulator-only codeMismatch between simulator and real-device authentication error semanticsFunctional regression in multi-account PIN creation in simulator builds
6bec6930by soralit+4−11 file
No security note in commit
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 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 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 17 AI analysisMessage 68 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Preserve Zcash account firmware version (#37)

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

Dependency source changed from crates.io to a third-party Git repository (valargroup/keystone-sdk-rust)No mention of vulnerability, CVE, security fix, or researcher attribution in commit message or diffChange is limited to a unit test assertion and dependency source pinning
20d7ea2dby Adam+11−73 files
No security note in commit
Low 28 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Preserve PCZT v1 response encoding

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

Behavioral change in serialization format selectionNew parsing helper reads wire version from raw bytesTest coverage added for v1 preservation
acf3611aby Adam Tucker+136−245 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

refactor(zcash): use shielded pool display directly

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 …

9074e087by Adam Tucker+22−334 files
No security note in commit
Low 37 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(zcash): allow transparent-only V6 PCZTs

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…

Guard relaxation: V6 PCZTs no longer blanket-rejected in transparent-only buildsBoundary enforcement remains for shielded Sapling/Orchard/Ironwood contentUnknown transaction versions still rejected
ba4ecf28by Adam Tucker+127−954 files
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 one file. No diff content is available, and there are no verified references suggesting any security relevance. It appears to be a munda…

7f2c4423by soralit+1−11 file
No security note in commit
Informational 14 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

refactor(zcash): simplify unsupported PCZT helpers

This is a simple code cleanup: three internal helper functions in the Zcash PCZT handling code are renamed to remove the word 'legacy' from their names. The actual behavior and security checks stay exactly the same. There is no functional …

0f0dc78aby Adam Tucker+6−63 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

refactor(zcash): display shielded pool names

This commit is a small code cleanup in the Zcash transaction handling code. It replaces a custom `label()` method on the `ShieldedPool` type with Rust's standard `Display` trait, so the pool name prints the same way in error messages. Ther…

83ac1e21by Adam Tucker+16−194 files
No security note in commit
Low 42 AI analysisMessage 62 · Adequate
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix(zcash): defer checked batch cleanup after signing

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

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

fix(zcash): size UFVK buffers for terminators

This commit fixes a buffer sizing bug in the Keystone hardware wallet's Zcash support. The code previously treated the maximum string length and the buffer size as the same number, leaving no guaranteed room for the null terminator at the …

Off-by-one buffer sizing for null terminator in Zcash UFVK handlingUse of string-length constant instead of buffer-size constant in strcpy_s and memset_s callsInconsistent buffer declarations across account manager and GUI code
5f158dd3by Adam Tucker+14−136 files
No security note in commit
Low 35 AI analysisMessage 45 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

Release Zcash batch review widgets before signing

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

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

fix the verifying ps hang on wrong password in btc only multi-sig

This commit fixes a user-interface bug in the Bitcoin-only multi-sig wallet screens of the Keystone 3 hardware wallet firmware. If a user entered the wrong device-unlock password while the lock screen was shown over these multi-sig views, …

UI lock-up / denial of usability on wrong passwordIncorrect routing of password verification result between overlapping viewsMissing handling for SIG_LOCK_VIEW_SCREEN_GO_HOME_PASS in password error path
2037a16aby aaron+20−02 files
No security note in commit
Moderate 64 AI analysisMessage 50 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

fix the issue of uvfk not changed if changed password

This commit fixes a bug in the Keystone 3 hardware wallet's Zcash support: when a user changed their login password, the encrypted Zcash 'unified full viewing key' (UFVK) was not re-encrypted with the new password. That meant the stored UF…

Credential/key material desynchronization after password changeZcash UFVK ciphertext keyed by login passwordAutomatic migration/recovery of stale encrypted key material
6d8e2d9dby aaron+137−464 files
No security note in commit
Informational 15 AI analysisMessage 40 · Thin
KS KeystoneKeystone 3 firmware BitcoinHardware wallets

feat: modify Lace Wallet

This commit is a routine user-interface update for the Lace wallet integration. It moves the Lace wallet icon into the 'Bitcoin Wallets' submenu, removes a separate Lace entry that previously showed both Bitcoin and Cardano support, and no…

468209b6by soralit+4−81 file
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.

AI review queuedfeat: add input ref qrby soralit · c977c08e · Apr 10, 2026 · 10 filesMessage 50 · ThinInformational 18Details
Commit message · soralit

feat: add input ref qr

50/100 · ThinMessage clarity
✓ Subject identifies a change✓ 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: security-sensitive path
AI analysis · Informational 18/100

This commit adds a new user-interface feature for Bitcoin transactions on the Keystone 3 hardware wallet. When a transaction input only provides a 'witness UTXO' (a lightweight proof of the coin being spent), the device now shows a warning asking the user to verify the input value, and offers a QR code that links to the transaction on a public blockchain explorer (mempool.space). This is a defensive UX improvement, not an attack or vulnerability fix. It helps users spot potentially fraudulent input amounts but does not change the underlying signing logic.

AI review queuedfeat(zcash): stamp firmware version into signed PCZTsby Adam Tucker · d7106d69 · Apr 9, 2026 · 6 filesMessage 85 · StrongInformational 19Details
Commit message · Adam Tucker

feat(zcash): stamp firmware version into signed PCZTs

Every signed PCZT response now carries
global.proprietary["keystone:fw_version"] = [major, minor, build]
so wallets can detect the Keystone firmware version after scanning
the signed QR and gate features accordingly.

The firmware does not enforce any minimum version — it just reports
its own. The wallet is the authority on version policy.

- build.rs reads src/config/version.h at compile time to generate
the KEYSTONE_FW_VERSION const (no manual sync needed)
- sign_pczt stamps the version via the pczt Updater role before
the Redactor strips witness data
- Simulator-only: replace the synchronous AsyncExecute stub with a
proper FIFO queue so the cypherpunk simulator doesn't crash during
wallet onboarding
- Simulator-only: guard KbTextAreaHandler against freed objects
during LVGL group cleanup

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

This commit adds a firmware version stamp to Zcash signed transaction QR codes so wallets can tell which Keystone firmware version produced the signature. It also fixes two simulator-only stability bugs: one in the async task queue and one in a keyboard text-area handler. There is no direct security vulnerability in the diff; the changes are defensive or feature additions.

AI review queuedadd sol icon in connect keystone nexusby Qkin-Keystone · 86490bcf · Apr 9, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Qkin-Keystone

add sol icon in connect keystone nexus

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 · Informational 15/100

This commit simply adds the Solana (SOL) coin icon to two lists of icons shown on the 'connect wallet' screen for the Keystone Nexus wallet. It is a cosmetic UI change with no security relevance.

AI review queuedadd sol nexus supportby Qkin-Keystone · a9d31cb9 · Apr 9, 2026 · 2 filesMessage 28 · OpaqueInformational 15Details
Commit message · Qkin-Keystone

add sol nexus support

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 two Solana (SOL) public key derivation paths when connecting the Keystone hardware wallet to compatible software wallets via the 'Keystone Connect' feature. It is a routine feature addition and does not contain any obvious security fix or vulnerability.

Security candidateton only wallet crash when update to cypherpunkby ww3512687 · 2d7f3e67 · Apr 9, 2026 · 2 filesMessage 45 · ThinLow 41Details
Commit message · ww3512687

ton only wallet crash when update to cypherpunk

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

This commit fixes a firmware crash that could occur when a wallet created with only a TON (The Open Network) mnemonic was upgraded to the 'cypherpunk' firmware version. The crash happened because two code paths that handle public key/account setup did not recognize TON-only wallets and tried to perform operations that are invalid for them. The fix adds explicit TON checks so those paths return early instead of crashing.

AI review queuedupdate rust code formatby Qkin-Keystone · a53b1778 · Apr 9, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Qkin-Keystone

update rust code format

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 only reformats Rust source code. It moves a comment onto its own line and adjusts blank lines. No program logic, calculations, or security behavior changed.

AI review queuedupdate review bug and remove useless commentsby Qkin-Keystone · bed968ee · Apr 9, 2026 · 4 filesMessage 45 · ThinLow 44Details
Commit message · Qkin-Keystone

update review bug and remove useless comments

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 44/100

This commit fixes a logic bug in how Tron transactions are routed based on QR code type. Previously the firmware treated 'TronSignRequest' as if it were a Keystone-style request and vice versa, which could send the wrong data to the wrong parser/signer. It also fixes a floating-point precision bug in how token amounts are formatted for display, replacing an unsafe logarithm calculation with a loop-based decimal count. A test helper and some comments were removed, but no security disclosure or researcher credit is present.

AI review queuedremove useless dependencyby Qkin-Keystone · 5634d954 · Apr 9, 2026 · 3 filesMessage 35 · OpaqueTriage 0Details
Commit message · Qkin-Keystone

remove useless dependency

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: broader security terminologysecond-pass: opaque commit message
AI review queuedupdate reviewby Qkin-Keystone · 4fb3a5e8 · Apr 9, 2026 · 2 filesMessage 18 · OpaqueLow 36Details
Commit message · Qkin-Keystone

update review

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 36/100

This commit updates Tron-related code in a hardware wallet firmware. It changes how decimal precision is calculated for token amounts, removes an 'unsupported transaction type' error fallback, and broadens the accepted derivation path prefixes. These are code-quality and review changes, but they could have subtle security implications if the new precision logic mishandles edge cases or if removing the catch-all error allows unexpected transaction types to be signed.

AI review queuedupdate image hashby Qkin-Keystone · 67c98a5b · Apr 9, 2026 · 1 fileMessage 28 · OpaqueTriage 0Details
Commit message · Qkin-Keystone

update image hash

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI review queuedupdate urTypeby Qkin-Keystone · 07b20298 · Apr 9, 2026 · 1 fileMessage 18 · OpaqueTriage 0Details
Commit message · Qkin-Keystone

update urType

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 review queuedfix review bugby Qkin-Keystone · 422ba32f · Apr 9, 2026 · 3 filesMessage 28 · OpaqueTriage 0Details
Commit message · Qkin-Keystone

fix review bug

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
Security candidatechore: revert submodule pointer to match origin/masterby Qkin-Keystone · 32ff9aa1 · Apr 9, 2026 · 1 fileMessage 62 · AdequateInformational 11Details
Commit message · Qkin-Keystone

chore: revert submodule pointer to match origin/master

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

This commit only changes a Git submodule pointer (a reference to another repository's version) back to match the upstream master branch. There is no code change visible, no security fix, and no security-relevant behavior described.

AI review queuedfix fmt errorby qkin · 5185c315 · Apr 9, 2026 · 4 filesMessage 28 · OpaqueTriage 0Details
Commit message · qkin

fix fmt error

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
Lower-priorityfeat(nufi-tron): add GuiGetTrxSignUrDataUnlimitedby qkin · f07c0cf8 · Apr 9, 2026 · 3 filesMessage 57 · ThinTriage 0Details
Commit message · qkin

feat(nufi-tron): add GuiGetTrxSignUrDataUnlimited

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedadd test caseby Qkin-Keystone · c55d345e · Apr 9, 2026 · 2 filesMessage 38 · OpaqueTriage 0Details
Commit message · Qkin-Keystone

add test case

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
Lower-priorityfeat(tron): update cargo lockby Qkin-Keystone · 0772a130 · Apr 9, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · Qkin-Keystone

feat(tron): update cargo lock

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 rust code formatby Qkin-Keystone · d68dcd40 · Apr 9, 2026 · 3 filesMessage 28 · OpaqueTriage 0Details
Commit message · Qkin-Keystone

fix rust code format

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
Security candidatefeat(nufi-tron): update nufi-tron supportby qkin · c9cc587e · Apr 9, 2026 · 13 filesMessage 57 · ThinLow 35Details
Commit message · qkin

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

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

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

AI review queuedupdate trc-20 tokenby Qkin-Keystone · 149f6a5c · Apr 9, 2026 · 1 fileMessage 28 · OpaqueInformational 19Details
Commit message · Qkin-Keystone

update trc-20 token

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 19/100

This commit updates the list of recognized TRC-20 tokens on a Keystone hardware wallet and changes how unknown tokens are labeled. It is essentially a configuration/data update, not a code-level security fix. The most notable change is that the USDT contract address was corrected and the decimal precision for several tokens was updated. There is no direct evidence in the commit that this fixes an active vulnerability, but incorrect token metadata could theoretically cause users to misread transaction amounts.

AI review queuedfeat(tron): add sign personal messageby Qkin-Keystone · 7c3eb022 · Apr 9, 2026 · 16 filesMessage 57 · ThinLow 39Details
Commit message · Qkin-Keystone

feat(tron): add sign personal message

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 39/100

This commit adds a new feature to the Keystone 3 hardware wallet: the ability to sign personal messages on the Tron blockchain, similar to how it already handles Ethereum personal messages. The change touches the Rust signing code, the C UI code that shows the message on the device screen, and the simulator. It is a feature addition rather than a bug fix, and there is no vendor statement that this is a security patch. The main security-relevant concern is that any new signing path must correctly validate what it signs and show it clearly to the user, otherwise a malicious app could trick the wallet into signing something the user did not intend.

AI review queuedupdate format and test caseby Qkin-Keystone · e4808e9b · Apr 9, 2026 · 3 filesMessage 55 · ThinInformational 14Details
Commit message · Qkin-Keystone

update format and test case

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 14/100

This commit only adds and updates unit tests for the Tron app in the Keystone 3 firmware. It does not change any production code logic. The tests cover signing, parsing, address generation, and edge cases for transaction formatting. There is no indication of a security fix or vulnerability being addressed.

AI review queuedadd test case for errorby qkin · 7ea18bf2 · Apr 9, 2026 · 2 filesMessage 48 · ThinInformational 15Details
Commit message · qkin

add test case for error

48/100 · ThinMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds and updates test code for error handling in the Tron app. It expands unit tests to check that various error types convert correctly and removes an unnecessary `mut` keyword from a test variable. There are no changes to production code or security-sensitive behavior.

AI review queuedfeat(nufi-tron): update check/parse/sign funcby qkin · 1fda8b74 · Apr 9, 2026 · 5 filesMessage 57 · ThinLow 48Details
Commit message · qkin

feat(nufi-tron): update check/parse/sign func

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 48/100

This commit refactors how the Keystone 3 hardware wallet handles TRON (TRX) transactions. It switches the signing pipeline from accepting a custom JSON transaction description to accepting a raw protobuf transaction, and it tightens the HD path validation. The change is mostly a feature update for NuFi TRON support, but it also removes some address-derivation checks that previously ensured the transaction's 'from' address matched the wallet's key. That removal could, in theory, make it easier for a malicious companion app to ask the device to sign a transaction that does not belong to the wallet, though the companion app still needs to pass the wallet's master fingerprint and xpub checks. There is no explicit security bug or exploit shown in the diff, but the change is security-relevant because it alters the trust boundary between the host and the device.

AI review queuedfeat(nufi-tron): fix support keystone-nexus txby qkin · 7c125dd6 · Apr 9, 2026 · 2 filesMessage 57 · ThinLow 26Details
Commit message · qkin

feat(nufi-tron): fix support keystone-nexus tx

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 26/100

This commit adds support for a new Tron transaction format used by the NuFi/Keystone Nexus wallet integration. It changes how the firmware parses, validates, and signs certain Tron QR-code transactions, and it adjusts how unknown TRC-20 token amounts are converted for display. There is no direct evidence in the commit that this fixes a security vulnerability; it reads as a feature/compatability update.