TZ
← All projectsTrezor

Trezor firmware

Firmware monorepo for Trezor One, Model T, and Safe devices.

BitcoinHardware walletsNormal
Repository coverage

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

916security candidates311second-pass queue1354AI analyses
336commits · 30 days
588commits · 60 days
1363commits · 180 days
2650commits · 365 days
Backfill bands
Aug 5 → Feb 61298 seen115 candidatesComplete
Feb 6 → Jun 6775 seen58 candidatesComplete
Jun 6 → Jul 6217 seen13 candidatesComplete
Jul 6 → Aug 5360 seen54 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.

66/100 average clarity
473Strong · 80–100
1321Adequate · 60–79
862Thin · 40–59
5Opaque · 0–39
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
PrisionMike945982273
Andrew Kozlik712436265
Roman Zeyde572177253171
tychovrahe292104125161
Jakub Janků22917182
Martin Pastyřík23811173
cepetr19682103059
Ioan Bizău23076140059
obrusvit21376107064
M1nd3r20671105071
Lukas Bielesch846771067
Martin Milata1744677063
Analysis record

Published AI watches

Last scanned 6 minutes ago

Informational 18 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(core): remove sha1 from regular FW

This commit removes the SHA-1 hashing function from the regular Trezor firmware. SHA-1 is an old, weak hash algorithm that is no longer considered secure for sensitive uses. The change deletes the code that exposes SHA-1 to apps running on…

Removal of a deprecated cryptographic primitive (SHA-1) from the firmware API surfaceReduction of attack surface and prevention of future misuse of a collision-vulnerable hashNo direct vulnerability patch or memory-safety bug is present in the diff
16d15774by M1nd3r+0−2006 files
No security note in commit
Low 27 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): pass static public key to `noise_xxpsk3_*_init()`

This commit changes how a cryptographic library sets up secure connections. Previously, the code automatically calculated the public key from the private key. Now, the caller must provide the public key directly. This is a code-quality ref…

Cryptographic key handling changed: public key is now supplied rather than derivedPotential reduction of key-mismatch risk if caller provides correct public keyNew null-pointer check added for static_public_key
1b3128a4by Ondřej Vejpustek+20−92 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): change order of parameters

This commit simply reorders the arguments of an internal function called dh() and updates every place that calls it. The actual math and security behavior are unchanged; it is a code cleanup with no security effect.

33a119eeby Ondřej Vejpustek+15−151 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): prefix enums

This commit simply renames two groups of internal status labels (called enums) in the Trezor firmware's cryptographic code. The old names like WAITING_FOR_REQUEST1 were shared between two different parts of the code, so the developer gave …

f1c74046by Ondřej Vejpustek+26−222 files
No security note in commit
Low 37 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(crypto): prevent calling `memzero(NULL, ...)`

This commit fixes three places in the Trezor firmware's cryptographic code where a memory-clearing function could be called with a NULL pointer. In practice, passing NULL to memzero is harmless on Trezor's platform (it does nothing), but i…

NULL pointer passed to memory-zeroing helper in cryptographic codeUndefined behavior in C standard library contractDefensive hardening in Noise protocol implementation
0394e934by Ondřej Vejpustek+11−51 file
No security note in commit
Informational 18 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(crypto): return remote static key from `noise_xxpsk3_*_handle_*()`

This commit is a code cleanup (refactor) for the cryptographic handshake code used in Trezor devices. It changes how the other party's long-term public key is returned to the caller: instead of storing it inside an internal state structure…

Removal of long-term public key storage from internal handshake stateCaller-supplied output buffer for remote static public key reduces internal secret retentionError-path memzero of returned key material on failure
3ead1aa6by Ondřej Vejpustek+79−423 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ProjectProfile to ProjectConfig

This commit is a simple rename from 'ProjectProfile' to 'ProjectConfig' in two Rust source files. It only changes variable names, struct names, and error messages. There is no change to program logic, security behavior, or how data is hand…

581b37bcby cepetr+18−182 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce ResolvedBuildArgs

This commit is a straightforward internal code refactor in Trezor's build tooling. It introduces a new ResolvedBuildArgs structure that centralizes default values for command-line build options before they are used. There is no change to u…

c24d1be8by cepetr+99−295 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): make build args tristate

This commit is a straightforward internal refactor of the Trezor firmware build tool's command-line argument handling. It changes many on/off flags from plain booleans to optional booleans so they can explicitly be set to true, false, or l…

271e249aby cepetr+57−561 file
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): introduce build options

This commit is a straightforward internal code reorganization in Trezor's build tooling. It moves build-option definitions from one Rust source file to a new module and adds the ability to load those options from a configuration file. Ther…

75085e2aby cepetr+275−2007 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce build presets

This commit is a developer tooling change for the Trezor firmware build system. It introduces 'build presets'—named configuration bundles stored in TOML files—so developers can select common build settings with a single command-line flag i…

eefe8f7fby cepetr+397−419 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): upgrade manifest.yaml for tf-tools 0.3.0

This commit is a routine update to a build-system manifest file used by Trezor's internal tooling. It reorganizes and re-labels feature flags (for example, moving options between 'Features', 'Debugging', and 'Signing' groups and simplifyin…

57b28b89by cepetr+86−1351 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(core): add tf-tools 0.3.1+ configuration file

This commit adds a single configuration file for a Trezor developer tool (a VS Code extension). It only points the tool to existing folders in the repository and contains no executable code, no secrets, and no changes to firmware behavior.…

e554f618by cepetr+8−01 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): rename ResolvedBuild to ResolvedBuildFeatures

This commit is a simple internal code cleanup: it renames a Rust data structure called ResolvedBuild to ResolvedBuildFeatures and updates the places that use it. There are no functional changes, no security fixes, and no changes to how the…

aaa2780bby cepetr+5−52 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

fix(core): fix up clippy warnings in storage.rs

This is a tiny code cleanup commit that replaces two calls to `ptr::null()` with Rust's `unwrap_or_default()` to silence automated Clippy lint warnings. It does not change what value is produced (still a null pointer when no salt is provid…

62354461by cepetr+2−21 file
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

refactor(xtask): simplify dependencies

This commit is a straightforward internal code cleanup in Trezor's build tooling. It moves a data structure and two helper methods from one Rust source file to another and updates callers accordingly. There is no change to user-facing beha…

6268349fby cepetr+9−193 files
No security note in commit
Informational 15 AI analysisMessage 47 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

docs: add xtask documentation

This commit only adds documentation. It updates the table of contents and adds a new markdown page plus a diagram explaining the project's 'xtask' build helper. No code, build scripts, or firmware logic was changed, so it cannot introduce …

4879dababy cepetr+296−03 files
No security note in commit
Informational 17 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

feat(xtask): introduce project-toml build-options

This commit is a build-system refactoring for Trezor firmware. It moves the mapping of command-line build options to Rust/cargo features out of hard-coded Rust logic and into per-project TOML files. It also adds a small change so debug bui…

Build-option mapping now lives in project.toml files, increasing the attack surface for supply-chain/build-configuration tamperingMakefile change automatically enables debug-link for PYOPT=0 debug buildsValidation added to reject storage_insecure_testing_mode in production builds
d44de007by cepetr+681−40817 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
TZ TrezorTrezor firmware BitcoinHardware wallets

ci(core): fix nightly ARM emulator filename

This commit fixes a filename-renaming step in the project's automated nightly build pipeline. It ensures ARM64 emulator files get the correct name expected by another testing tool. There is no change to the actual Trezor firmware code, dev…

ab95f08fby Martin Milata+3−01 file
No security note in commit
Informational 12 AI analysisMessage 62 · Adequate
TZ TrezorTrezor firmware BitcoinHardware wallets

chore(vendor): avoid micropython submodule noise in git status

This is a routine housekeeping change to reduce clutter in Git's status output for a third-party component (the MicroPython submodule). There is no indication it changes any code that runs on the Trezor device or affects security.

06cab32bby Martin Milata+1−11 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.

Security candidatefeat: confirm cancel outputby Ioan Bizău · c1e9277b · Jan 12, 2026 · 12 filesMessage 47 · ThinInformational 15Details
Commit message · Ioan Bizău

feat: confirm cancel output

[no changelog]

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

This commit adds a new on-screen prompt that asks users to confirm they really want to cancel a transaction-signing flow. It is a user-experience and safety feature, not a security fix. There is no evidence of a vulnerability being patched.

Security candidaterefactor: extract `ConfirmActionOptions`by Ioan Bizău · 3f0cbc03 · Jan 12, 2026 · 4 filesMessage 47 · ThinInformational 15Details
Commit message · Ioan Bizău

refactor: extract `ConfirmActionOptions`

[no changelog]

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

This commit is a straightforward code cleanup: it bundles several settings for confirmation screens into a single ConfirmActionOptions struct instead of passing them as separate function arguments. There is no change to user-facing behavior, no bug fix, and no security-related change.

Security candidaterefactor: use `ConfirmActionOptions` in `ConfirmValue`by Ioan Bizău · eb5ede77 · Jan 12, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · Ioan Bizău

refactor: use `ConfirmActionOptions` in `ConfirmValue`

[no changelog]

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

This commit is a straightforward internal code cleanup in the Trezor firmware's user-interface layer. It replaces several individual settings inside a 'ConfirmValue' screen builder with a shared 'ConfirmActionOptions' object. There is no change to user-visible behavior or to security logic; it is purely a refactor to reduce duplicated code.

Security candidatefeat(delizia): swipe to go back on confirm_valueby Ioan Bizău · 90e30e57 · Jan 12, 2026 · 7 filesMessage 57 · ThinInformational 19Details
Commit message · Ioan Bizău

feat(delizia): swipe to go back on confirm_value

[no changelog]

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

This commit adds a 'swipe down to go back' feature to the Delizia user interface on Trezor hardware wallets. When reviewing a cryptocurrency transaction, a user can now swipe down on the amount screen to return to the address screen and double-check it. It is a usability improvement, not a fix for a vulnerability.

Security candidaterefactor: introduce `StrPropertyType`by Ioan Bizău · 8129ce47 · Jan 12, 2026 · 14 filesMessage 70 · AdequateInformational 15Details
Commit message · Ioan Bizău

refactor: introduce `StrPropertyType`

* for properties that cannot have `bytes` values, which `PropertyType`
allows
* also replace `str(x)` calls with `x or ""` for dealing with the `None`
case

[no changelog]

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive pathsigning or wallet pathboot or update path
AI analysis · Informational 15/100

This commit is a straightforward internal code cleanup. It introduces a new type alias called StrPropertyType for UI properties that are always text strings (never raw bytes), and replaces some str(x) conversions with x or "" to handle possible None values more cleanly. There is no indication this fixes a security bug or changes user-visible behavior.

Security candidatefeat(core): Add error handling in driver init functions + update syscall stubs.by kopecdav · 2caaca62 · Jan 12, 2026 · 9 filesMessage 62 · AdequateLow 26Details
Commit message · kopecdav

feat(core): Add error handling in driver init functions + update syscall stubs.

[no changelog]

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

This commit changes how the Trezor firmware's vibration motor (haptic) driver reports and handles errors. Previously, some haptic functions returned simple true/false success values, and some callers ignored the result of initialization. Now those functions return a structured status code, callers capture the status (though mostly still ignore it), and one resume path actually halts on failure. A test-only haptic syscall was removed. The changes are defensive cleanups rather than a fix for a known exploitable bug, but they reduce the chance that a failing haptic device could leave the system in an inconsistent state.

Security candidaterefactor(core/bootloader): unify bootloader event loop in rustby tychovrahe · fc2b18da · Jan 8, 2026 · 27 filesMessage 62 · AdequateLow 28Details
Commit message · tychovrahe

refactor(core/bootloader): unify bootloader event loop in rust

[no changelog]

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
update trustcryptography-sensitive pathboot or update path
AI analysis · Low 28/100

This commit is a large internal refactor of the Trezor bootloader's event loop, moving it from C into Rust and changing how screens handle USB/Bluetooth communication. The title and message explicitly call it a refactor with '[no changelog]', and there is no vendor statement that this fixes a security bug. The diff shows substantial code movement but no obvious new vulnerability. Because it is a wide-reaching rewrite of security-critical boot-time code, it carries ordinary implementation risk, but the available materials do not demonstrate a concrete security issue.

Security candidatefix(core/bootloader): fix bootloader size alignmentby cepetr · dcd23b9a · Jan 7, 2026 · 2 filesMessage 62 · AdequateLow 43Details
Commit message · cepetr

fix(core/bootloader): fix bootloader size alignment

[no changelog]

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
update trustboot or update path
AI analysis · Low 43/100

This commit adjusts how the Trezor bootloader's length is calculated and pads the bootloader image to a 512-byte boundary. The old calculation added the sizes of two memory sections, which could produce a value that does not match the actual padded image size. The new calculation uses a dedicated end marker, and the linker script now explicitly fills unused space with zeros and aligns the image. This is a defensive fix in low-level firmware packaging; it does not by itself show an exploitable bug, but misaligned or incorrectly reported bootloader sizes could theoretically cause verification or update failures.

Security candidatefix(core/bootloader): fix unsafe fw warning screen alignmentby tychovrahe · 7083b949 · Jan 7, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · tychovrahe

fix(core/bootloader): fix unsafe fw warning screen alignment

[no changelog]

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
update trustcryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit fixes the horizontal centering of a small vendor logo shown on the bootloader's 'unsafe firmware' warning screen. The old code subtracted 22 pixels from the screen width before dividing by two, which would slightly offset the 24x24 image. The new code simply centers the image using the screen's midpoint. There is no security-relevant change in the diff itself.

Security candidatetests: upgrade upgrade testsby M1nd3r · 8202077e · Jan 6, 2026 · 9 filesMessage 60 · AdequateInformational 15Details
Commit message · M1nd3r

tests: upgrade upgrade tests

- allow upgrade tests to distinguish between core models

[no changelog]

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
boot or update pathauthentication path
AI analysis · Informational 15/100

This commit only changes the test suite and supporting Python tooling. It renames a model set from TREZORS to ALL_MODELS, splits devices into legacy and core groups, and updates upgrade tests so they can run against individual Trezor models rather than just broad 'legacy' or 'core' categories. There is no change to the firmware that runs on the hardware wallet, no fix for a security bug, and no new attack path.

Security candidatechore(common): deprecate uploading language blob during firmware updateby Roman Zeyde · 9c966372 · Jan 6, 2026 · 4 filesMessage 77 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(common): deprecate uploading language blob during firmware update

Remove unused protobuf field from `RebootToBootloader`.

[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
update trust
AI analysis · Informational 15/100

This commit removes an unused data field called language_data_length from the RebootToBootloader command used during Trezor firmware updates. It is a cleanup change that marks the old field as reserved in the protocol definition and regenerates the corresponding code in Python, Rust, and the device firmware. There is no security-relevant change here.

Security candidatechore(core): deprecate uploading language blob during firmware updateby Roman Zeyde · 97dfd0d7 · Jan 6, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(core): deprecate uploading language blob during firmware update

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

This commit removes a feature that let a firmware update package include a language translation file. It is a routine cleanup: the device will no longer accept or install a language blob while rebooting into bootloader mode for a firmware update. There is no indication this fixes a security bug or introduces a vulnerability.

Security candidatechore(python): deprecate uploading language blob during firmware updateby Roman Zeyde · 4d5290d0 · Jan 6, 2026 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · Roman Zeyde

chore(python): deprecate uploading language blob during firmware update

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

This commit removes a feature from Trezor's Python tools that let users upload a language translation file during a firmware update. It is a routine cleanup (chore) that deprecates the language-blob upload option and simplifies the code. There is no indication of a security fix or vulnerability.

Security candidatefix(legacy): allow cross-sign with ETH mainnetby Roman Zeyde · 08bb64a7 · Jan 6, 2026 · 4 filesMessage 88 · StrongLow 25Details
Commit message · Roman Zeyde

fix(legacy): allow cross-sign with ETH mainnet

Backport #5622 to legacy:

- Previously only non-standard networks (not SLIP-44 60 or 1) could cross-sign
with Ethereum mainnet. Now any network that isn't Ethereum mainnet can use
Ethereum derivation paths
- This is a workaround enabling access to networks like Hyperliquid that
have conflicting chain IDs and can't claim official SLIP-44 registration.

Also, backport legacy testnets' support from #5970.

88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathboot or update path
AI analysis · Low 25/100

This commit loosens address-path validation for older Trezor (legacy) devices when signing Ethereum-style transactions. Previously, only non-standard networks could use Ethereum's mainnet derivation path; now any network except Ethereum mainnet itself can do so, and Ethereum mainnet additionally accepts testnet-style paths. The stated purpose is to support newer networks like Hyperliquid that cannot get an official coin-type registration. The change is a deliberate feature backport, not a covert bug fix, but it does relax a security-relevant boundary that normally prevents cross-network address reuse.

Security candidatetest: add a test case for Ethereum cross-signing supportby Roman Zeyde · 71633aff · Jan 6, 2026 · 2 filesMessage 95 · StrongInformational 15Details
Commit message · Roman Zeyde

test: add a test case for Ethereum cross-signing support

Previously (#5622) it was tested using Holesky testnet,
which was changed to use `slip44=60` in #5970.

[no changelog]

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundary
AI analysis · Informational 15/100

This commit only adds a new automated test to the Trezor firmware test suite. It checks that a non-Ethereum network can still use the standard Ethereum account derivation path when signing a transaction. No product code was changed, so this cannot introduce a security vulnerability or fix one in the firmware itself.

Security candidatechore(core): bump to 2.10.1by obrusvit · 96cda7c4 · Jan 6, 2026 · 8 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

chore(core): bump to 2.10.1

[no changelog]

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

This commit is a routine version bump from 2.9.8 to 2.10.1 for the Trezor firmware. It only changes the version number in one header file and updates the matching version numbers in translation files, plus refreshes the translation signature metadata. There are no code behavior changes, no bug fixes, and no security-related modifications.

Security candidatefeat(tron): add TransferContract supportby Jun Luo · 4375c211 · Jan 6, 2026 · 41 filesMessage 72 · AdequateLow 35Details
Commit message · Jun Luo

feat(tron): add TransferContract support

Allows native TRX transfer
[no changelog]

Co-authored-by: PrisionMike <su.sh2396@gmail.com>

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathboot or update path
AI analysis · Low 35/100

This commit adds the ability to sign native TRON (TRX) transfers on Trezor hardware wallets. It introduces new message types, a signing workflow, user confirmation screens, and client-side helpers. The change is a feature addition rather than a fix for a known vulnerability, and there is no vendor statement that this resolves a security issue.

Security candidatechore: bump versionsby obrusvit · 93625062 · Jan 5, 2026 · 10 filesMessage 55 · ThinInformational 15Details
Commit message · obrusvit

chore: bump versions

core -> 2.9.8
secmon -> 1.0.7
legacy -> 1.14.1

[no changelog]

55/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathboot or update path
AI analysis · Informational 15/100

This commit only updates version numbers and translation metadata across the Trezor firmware repository. It does not change any executable code, fix any behavior, or alter security logic. There is nothing in the diff that introduces or fixes a security issue.

Security candidatetest(core): change `key_index` used in `crypto.tropic::test_sign` unittestby M1nd3r · 2ea5146f · Jan 2, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · M1nd3r

test(core): change `key_index` used in `crypto.tropic::test_sign` unittest

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
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only changes a test file for the Tropic cryptographic module. It swaps the hardcoded key index from 0 to 31 in a unit test. There is no change to production firmware code, no security fix, and no vulnerability being introduced or patched.

Security candidatefix(bolt,caesar,eckhart): incorrect and missing address chunkificationby PrisionMike · 9b99395e · Dec 30, 2025 · 5 filesMessage 85 · StrongLow 34Details
Commit message · PrisionMike

fix(bolt,caesar,eckhart): incorrect and missing address chunkification

- Adds missing chunkification in Bolt and Caesar.
- Fixes edge cases where chunks were overwritten or composed
incorrectly.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
AI analysis · Low 34/100

This commit fixes how cryptocurrency addresses are visually grouped into chunks on Trezor device screens for several wallet models. Previously, addresses could be displayed with missing or incorrect spacing, which might make it harder for users to visually verify an address before approving a transaction. The fix changes the low-level text layout code and passes the chunking option through two user-interface layouts. It is a display/rendering bug fix rather than a cryptographic flaw, but because address verification is a key anti-phishing step, any display issue has security relevance.

Security candidatefix(core/caesar): fix wordquiz ordinal formattingby obrusvit · 43d0f088 · Dec 30, 2025 · 4 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

fix(core/caesar): fix wordquiz ordinal formatting

[no changelog]

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit is a cosmetic wording fix for the Trezor hardware wallet's backup quiz screen. It changes how the device labels the word the user must select, switching from English-style ordinal text like '2nd' to a neutral '2 of 20' format. There is no security issue here; it is purely a user-interface and localization improvement.

Security candidatefeat(core/eckhart): update Regulatory screenby obrusvit · 4f31a2f6 · Dec 29, 2025 · 47 filesMessage 57 · ThinInformational 15Details
Commit message · obrusvit

feat(core/eckhart): update Regulatory screen

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathboot or update path
AI analysis · Informational 15/100

This commit updates the regulatory information screen on the Trezor T3W1 hardware wallet. It adds new country certification icons, reorganizes the order of regions shown, and displays the device's production year on the South Korea page. There is no security-relevant change here—only user-interface text, images, and layout.

Security candidatefix(bolt): webauthn credential scrollingby Ioan Bizău · 024b883a · Dec 29, 2025 · 2 filesMessage 57 · ThinInformational 18Details
Commit message · Ioan Bizău

fix(bolt): webauthn credential scrolling

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
credential or privilege state
AI analysis · Informational 18/100

This commit fixes a UI bug in the Trezor hardware wallet where scrolling through FIDO/WebAuthn credentials could behave incorrectly. The change updates the displayed account name in place rather than recreating the whole text element each time the page changes. There is no direct evidence this is a security vulnerability; it appears to be a user-experience fix for on-screen credential navigation.

Security candidatefix(core): correct `debug_assert` in `get_button_border()`by Roman Zeyde · 54d6bfad · Dec 23, 2025 · 1 fileMessage 77 · AdequateInformational 18Details
Commit message · Roman Zeyde

fix(core): correct `debug_assert` in `get_button_border()`

There are `MAX_KEYS` buttons + the `cancel` button.

[no changelog]

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
boot or update path
AI analysis · Informational 18/100

This commit fixes an off-by-one error in a debug-only assertion inside a Trezor hardware wallet screen. The assertion checks whether a button index is valid, but it previously rejected the last valid button (the 'cancel' button). The fix changes '<' to '<=' so the assertion no longer falsely triggers. This is a minor correctness fix in debug builds and does not change release behavior or user-facing security.

Security candidatebuild(core): remove unused `import shlex`by Roman Zeyde · ef0cb404 · Dec 22, 2025 · 5 filesMessage 57 · ThinInformational 15Details
Commit message · Roman Zeyde

build(core): remove unused `import shlex`

[no changelog]

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

This commit simply removes an unused Python import (`shlex`) from five build scripts. It does not change any program logic, behavior, or security boundary. It is a routine code cleanup with no security relevance.