CK
← All projectsCoinkite

COLDCARD firmware

Open-source firmware for COLDCARD Bitcoin signing devices.

BitcoinHardware walletsActive incident
Repository coverage

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

137security candidates209second-pass queue413AI analyses
55commits · 30 days
184commits · 60 days
253commits · 180 days
385commits · 365 days
Backfill bands
Aug 5 → Feb 6148 seen2 candidatesComplete
Feb 6 → Jun 684 seen8 candidatesComplete
Jun 6 → Jul 649 seen4 candidatesComplete
Jul 6 → Aug 525 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.

36/100 average clarity
10Strong · 80–100
45Adequate · 60–79
195Thin · 40–59
218Opaque · 0–39
42security 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.
scgbckbone2551112271643
Peter D. Gray17020162818
Dmitry Monakhov212173
@Bibo-dochex923042
kdmukai111050
doc-hex111073
Piotr Duszynski111073
tadeubas606051
copilot-swe-agent[bot]504072
Danilo500079
hitechhayekian301081
Copilot300074
Analysis record

Published AI watches

Last scanned 23 minutes ago

Moderate 59 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Harden PSBTv2 parsing

This commit tightens how COLDCARD reads PSBTv2 (Partially Signed Bitcoin Transaction version 2) files. It now rejects several malformed or ambiguous encodings that could previously be accepted: extra key data attached to fields that should…

PSBT parser hardeningrejection of non-canonical compact-size encodingsenforcement of singleton key-data emptiness
5e0dbd0eby scgbckbone+90−113 files
Vendor flagged security relevance
Low 34 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

PSBTv2 per input required lock time calculation

This commit adds support in the COLDCARD firmware for a newer Bitcoin transaction format feature (PSBTv2) that lets each input specify its own required lock time. Before this change, the device did not correctly compute the final transacti…

PSBTv2 per-input locktime parsing and validation addedBIP-370 required locktime computation implementedIncompatible height/time locktime requirements rejected with assertion
2ea2e791by scgbckbone+191−336 files
No security note in commit
Low 46 AI analysisMessage 91 · Strong
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Add regression test for non-object JSON message-sign input

This commit only adds a new automated test to the COLDCARD firmware test suite. The test checks that when a user tries to sign a text file containing valid JSON that is not a JSON object (for example, a plain number, string, null, or list)…

Regression test for input validation of JSON message-signingTest comment explicitly references avoiding a device crash on malformed JSON inputTest requested during review of pull request #808, suggesting prior related code change
adb7baa8by copilot-swe-agent[bot]+32−01 file
No security note in commit
Moderate 56 AI analysisMessage 50 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

hygiene: duress wallet activate - wipe before getting slot data

This commit is a defensive hygiene fix in the COLDCARD hardware wallet's 'trick PIN' duress-wallet feature. It moves a memory-wipe routine so that it runs before the device looks up the duress wallet slot. The change reduces the window in …

secret-handling order-of-operations changeDelta Mode coercer/wipe scenarioduress wallet secret loading
aa645247by scgbckbone+3−31 file
Vendor flagged security relevance
Low 41 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

OVC clear stale outputs from new_outputs

This firmware update fixes a cleanup issue in the COLDCARD wallet's transaction signing code. Before finalizing a new Bitcoin transaction, the device now clears out leftover 'change output' records that may have been captured during a prev…

State not reset between signing attemptsStale change-output metadata reused in transaction finalizationOVC (Output Value Check) validation may be affected by leftover data
62163ccdby scgbckbone+3−01 file
No security note in commit
Informational 15 AI analysisMessage 65 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Drop ValueError message string to save flash space

This commit removes a human-readable error message from a ValueError exception to reduce the amount of flash storage used by the firmware. It is a minor code cleanup and does not change the security behavior of the code. The function still…

dc89513cby copilot-swe-agent[bot]+1−11 file
No security note in commit
Low 49 AI analysisMessage 60 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Add changelog entry for msgsign JSON crash fix

This commit only adds a changelog note saying a previous fix stopped the COLDCARD hardware wallet from crashing when a message-signing request was valid JSON but not a JSON object (for example, a number or string instead of a dictionary). …

Device crash on malformed message-signing inputInput vector includes NFC, QR, and SD card JSON filesValid JSON but wrong type (non-object) bypasses simple format checks
07afee0dby copilot-swe-agent[bot]+3−01 file
Vendor flagged security relevance
Informational 23 AI analysisMessage 65 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Fix uncaught AttributeError on non-object JSON in parse_msg_sign_request

This commit fixes a bug where the COLDCARD firmware's message-signing feature would crash with an uncaught error if a user supplied valid JSON that wasn't a structured object (for example, a plain number, string, list, or null). The fix ch…

uncaught exception in message parsing pathinput validation gap on JSON typepotential denial-of-service via malformed request
d55ddbceby copilot-swe-agent[bot]+3−01 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Signed for mk release.

This commit only updates the release signature file (signatures.txt) for the COLDCARD firmware. It adds two new file hashes for a v5.6.2-mk release and refreshes the PGP signature covering the file. There are no code changes, no bug fixes,…

e6d01c36by Peter D. Gray+10−81 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

Signed for q1 release.

This commit only updates a release signature file. It refreshes SHA-256 hashes for changelog files and adds hashes for two new firmware release files, then re-signs the file with a PGP signature. There are no code changes, no bug fixes, an…

a310e1ddby Peter D. Gray+16−141 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

update block height

This commit simply updates a stored Bitcoin blockchain height number from 965,337 to 965,338. It is a routine, automatically generated data refresh with no code logic changes and no apparent security relevance.

3caf599eby Peter D. Gray+2−21 file
No security note in commit
Informational 15 AI analysisMessage 38 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

new policy w blank lines

This commit only edits the project's internal release notes file. It replaces a detailed list of upcoming changes with placeholder 'tbd' entries and adds a note asking contributors to leave blank lines between additions. There are no code …

3d8f90f1by Peter D. Gray+9−561 file
No security note in commit
Moderate 58 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

update for new release

This commit is a release-notes-only update for the COLDCARD hardware wallet firmware. It moves many security-relevant bug fixes and hardening items from the current changelog into the historical release notes for versions 5.6.1 and 1.5.1Q,…

USB protocol encryption upgrade (ncry v3) with direction-separated keys and replay protectionPSBT tampering detection: re-verify staged bytes before signing after Virtual Disk overwriteFirmware update integrity: abort if staged image overwritten, reject images extending past world-checksum region
ea2b89bfby Peter D. Gray+272−1124 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 28 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

update block height

This commit simply updates a stored Bitcoin blockchain height number from 963,314 to 965,337, along with its timestamp. It is an automatic, routine data refresh with no code logic changes and no apparent security relevance.

15deb2f6by Peter D. Gray+2−21 file
No security note in commit
Moderate 59 AI analysisMessage 73 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: report staged firmware modification at upgrade approval

This commit fixes a bug in the COLDCARD firmware upgrade process. Previously, if someone tampered with the staged firmware after the user saw the approval prompt but before they confirmed, the device would crash with a bare internal error …

Tamper-detection failure path hardened: assert replaced with user-facing failure storyDefense-in-depth assertion added to PIN-changing flowTest coverage added for tamper-abort message
ef73cf58by scgbckbone+6−64 files
No security note in commit
Informational 2 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bump ckcc to latest master

This commit only updates a linked external code library (a Git submodule called ckcc-protocol) to a newer version. The actual code changes inside that library are not shown in the commit diff, and no security-related information was provid…

ec1c9417by scgbckbone+1−11 file
No security note in commit
Informational 15 AI analysisMessage 0 · Opaque
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

tweaks

This commit only edits the draft release changelog file. It rewords two upcoming feature descriptions and fixes line wrapping for another entry. No source code, firmware logic, or security behavior was changed.

e166ffddby Peter D. Gray+8−41 file
No security note in commit
Moderate 62 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: reject non-ASCII BIP-39 passphrases

This update fixes a bug where COLDCARD wallets would accept BIP-39 passphrases containing non-ASCII characters (like accented letters or emojis) or non-printable characters. Because different wallet software normalizes such characters diff…

Behavioral fix that prevents silent derivation of incompatible wallet seedsInput validation added for BIP-39 passphrase across USB, UI, saved-passphrase restore, and note/password lanesRejection of non-printable ASCII and non-ASCII Unicode characters
c1a67660by scgbckbone+155−147 files
Vendor flagged security relevance
High 74 AI analysisMessage 60 · Adequate
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: capture single-sig segwit change

This commit fixes two related security bugs in the COLDCARD hardware wallet's protection against a known 'BIP-143 amount swap' attack. First, the wallet was recording the claimed amount of a segwit input to its secure cache as soon as a tr…

Fixes deferred persistence of UTXO amount cache until after successful signingFixes missing capture of single-sig segwit change outputs (p2wpkh and p2sh-p2wpkh)Prevents cache poisoning by cancelled/malicious PSBT previews
8979a8a5by scgbckbone+322−806 files
Vendor flagged security relevance
Moderate 66 AI analysisMessage 45 · Thin
CK CoinkiteCOLDCARD firmware BitcoinHardware wallets

bugfix: Reject duplicate singleton PSBT keys

This update fixes a bug in how the COLDCARD wallet reads PSBT files (the standard format for passing Bitcoin transactions between devices). Previously, if a PSBT contained the same special 'singleton' key twice in the same section, the dev…

PSBT parser now rejects duplicate singleton keysNew test cases for duplicate keys in global/input/output mapsChangelog labels the change as a bugfix
cb6df8daby scgbckbone+30−13 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidatedocs: index all docs and fix drift vs firmwareby scgbckbone · 8e3bbfdf · Jun 19, 2026 · 15 filesMessage 57 · ThinInformational 15Details
Commit message · scgbckbone

docs: index all docs and fix drift vs firmware

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
seed or entropy pathsigning or wallet pathauthentication path
AI analysis · Informational 15/100

This commit is purely a documentation update. It adds missing entries to the docs index, updates outdated examples and menu trees, fixes a broken filename reference in a code comment, and corrects factual details (such as supported models and key storage page numbers) to match the current firmware. There are no code behavior changes that would affect security.

AI review queuedcreditby Peter D. Gray · f9b65ce9 · Jun 19, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray

credit

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

This commit only adds a thank-you credit to an upcoming release changelog. It does not change any source code, firmware behavior, or fix anything by itself. The actual bugfix it references (ignoring an unexpected 'bkpw' field in backups) was made in some earlier commit not shown here.

AI review queuedDon't restore cached backup password (bkpw) from backup fileby Dmitry Monakhov · 8d71040a · Jun 19, 2026 · 1 fileMessage 73 · AdequateHigh 72Details
Commit message · Dmitry Monakhov

Don't restore cached backup password (bkpw) from backup file

Restore mirrored the write-side strip of bkpw: a crafted backup could inject
setting.bkpw and fixate the password used for future backups. Drop it on restore

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · High 72/100

This update fixes a security flaw in how the COLDCARD wallet restores its settings from a backup file. Previously, a tampered backup could secretly set the password used for future backups, letting an attacker who later gets physical access predict or control backup encryption. The fix ignores that 'cached backup password' field during restore, so backups cannot smuggle in a chosen password.

AI review queuedBump requests from 2.32.4 to 2.33.0 in /testingby dependabot[bot] · 5feae87e · Jun 19, 2026 · 1 fileMessage 86 · StrongInformational 15Details
Commit message · dependabot[bot]

Bump requests from 2.32.4 to 2.33.0 in /testing

Bumps [requests](https://github.com/psf/requests) from 2.32.4 to 2.33.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.33.0)

---
updated-dependencies:
- dependency-name: requests
dependency-version: 2.33.0
dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

86/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
documentation-only discountautomated dependency-update discountsecond-pass: broader security terminology
AI analysis · Informational 15/100

This is an automated dependency update by Dependabot that bumps the Python 'requests' library used only in the project's testing environment from version 2.32.4 to 2.33.0. It changes one line in a test requirements file. There is no indication this affects the COLDCARD firmware itself or introduces a security issue.

Lower-priorityREADME.md update build repro steps (were misordered before)by scgbckbone · 0949c0ac · Jun 19, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · scgbckbone

README.md update build repro steps (were misordered before)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates the README.md file to correct the order of steps for building a reproducible copy of the COLDCARD firmware. It changes documentation text: adding a step to change into the firmware directory, updating the example release tag and binary filename, and moving the directory change to stm32 after the checkout. There are no code changes and no security implications.

Security candidatebundle small fixesby scgbckbone · c36eac23 · Jun 19, 2026 · 48 filesMessage 28 · OpaqueModerate 66Details
Commit message · scgbckbone

bundle small fixes

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathseed or entropy pathsigning or wallet pathauthentication pathparser or protocol path
AI analysis · Moderate 66/100

This is a large bundle of bug fixes for the COLDCARD hardware wallet firmware. Most changes fix user-interface crashes ('yikes'), incorrect error messages, or policy edge cases rather than a single critical vulnerability. The most security-relevant fixes are: (1) disabling NFC and Virtual Disk before entering HSM mode to reduce the attack surface of the locked-down operating mode; (2) preventing a trick/bypass PIN that has no secrets from completing a Single-Signer Spending Policy unlock; (3) stopping OP_RETURN and non-standard scripts from being hidden or mis-displayed during transaction approval; (4) rejecting malformed JSON/QR message-signing requests and control characters that could be used to trick the user; and (5) preventing duplicate multisig wallets with reordered keys from being imported as if they were only a rename. The commit also adds many regression tests for these behaviors.

Lower-priorityfix typo in nfc-pushtx.mdby scgbckbone · a24a894c · May 16, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

fix typo in nfc-pushtx.md

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit fixes a simple spelling mistake in a Markdown documentation file. The word 'colcard.com' was corrected to 'coldcard.com'. It does not change any code, configuration, or security behavior of the COLDCARD firmware.

Lower-priorityunreleased regression introduced in 300323f18d20d6e0a904f5f3bcc9d63d84d2f6a7by scgbckbone · ca06dfd2 · Apr 25, 2026 · 1 fileMessage 60 · AdequateInformational 23Details
Commit message · scgbckbone

unreleased regression introduced in 300323f18d20d6e0a904f5f3bcc9d63d84d2f6a7

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 23/100

This commit fixes a user-interface bug in COLDCARD firmware where pressing certain menu keys (like '1' to change account number or '2' to toggle a format option) would accidentally fall through and trigger an export using default settings, instead of waiting for the user to confirm with 'y'. The fix adds 'continue' statements so the device loops back to the menu, and changes the confirmation check to also accept '1' as a valid choice after account entry. It is described by the developer as an unreleased regression, meaning it was caught before reaching users.

Lower-prioritybugfix: NFC verify address wrong error messageby scgbckbone · 3a1ef6fe · Apr 20, 2026 · 3 filesMessage 55 · ThinInformational 17Details
Commit message · scgbckbone

bugfix: NFC verify address wrong error message

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 17/100

This commit fixes a minor user-interface bug in the COLDCARD hardware wallet's NFC 'Verify Address' feature. Previously, if the NFC read was cancelled or returned no address, the code could produce a confusing or wrong error message because it tried to unpack a missing result. The fix checks whether the NFC read actually returned anything before proceeding, and a new test confirms that cancelling the prompt no longer appears to 'crash' or mislead the user. There is no indication this bug could be used to steal funds or bypass security.

Lower-prioritybugfix: attribute error on exception object + more 7z header testsby scgbckbone · 883be60f · Apr 20, 2026 · 3 filesMessage 60 · AdequateLow 26Details
Commit message · scgbckbone

bugfix: attribute error on exception object + more 7z header tests

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Low 26/100

This commit fixes a small bug in how COLDCARD reports errors when it tries to verify or decrypt a backup file. In older code, when something went wrong while reading a 7z backup, the error-handling code itself crashed because it tried to read a non-existent property (e.message) on the exception object. That meant the user would see a confusing 'AttributeError' or 'Yikes' screen instead of a helpful message like 'Confused file? Truncated file?'. The fix changes e.message to e so the real error is shown. It also adds more tests for malformed backup headers. This is a user-experience and diagnostic improvement, not a direct theft-of-funds vulnerability.

Lower-prioritybugfix: default menu position in custom path address format menuby scgbckbone · 393ebf5b · Apr 20, 2026 · 4 filesMessage 50 · ThinInformational 20Details
Commit message · scgbckbone

bugfix: default menu position in custom path address format menu

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 20/100

This commit fixes a UI bug in the COLDCARD address explorer. When a user entered a custom BIP32 path, the device was highlighting the wrong default address format on the selection menu. For example, a path meant for classic Bitcoin addresses (starting with m/44h) might have had Segwit highlighted by default. The fix corrects the menu's default cursor position and adds a warning not to reorder the underlying address-format list. There is no direct security vulnerability here—just a user-experience bug that could, in rare cases, lead a user to confirm an unintended address type.

AI review queuedbugfix: "Send Password" menu item visibility reversed, do not store password as None, UX fixesby scgbckbone · 2b5178bd · Apr 20, 2026 · 3 filesMessage 50 · ThinLow 38Details
Commit message · scgbckbone

bugfix: "Send Password" menu item visibility reversed, do not store password as None, UX fixes

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: broader security terminology
AI analysis · Low 38/100

This update fixes three small but real bugs in the COLDCARD's Notes & Passwords feature. The most important fix corrects a reversed menu setting: the 'Send Password' option was accidentally shown only when USB was disabled, and hidden when USB was enabled. It also prevents the device from storing a blank password as the special value 'None', which could crash the device later when sending a password. Finally, it stops a misleading 'Saving...' message from appearing after a failed import.

Lower-priorityfix: correct container type for settings.wifs; proper button text UX with parenthesesby scgbckbone · 44e7be36 · Apr 20, 2026 · 3 filesMessage 62 · AdequateLow 32Details
Commit message · scgbckbone

fix: correct container type for settings.wifs; proper button text UX with parentheses

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

This commit fixes two small issues in the Coldcard firmware. First, it changes the on-screen prompt when enabling a high-security 'HSM' policy to put the button name in parentheses, matching how the device normally displays button labels. Second, it corrects a bug in the code that manages saved private key imports (WIFs): the code was treating a list as if it were a dictionary, which could cause the wrong entry to be deleted or an error to be silently ignored. The commit also updates a test to expect the new prompt text.

Security candidatefinal solution can_cancel=Trueby scgbckbone · 300323f1 · Apr 20, 2026 · 13 filesMessage 35 · OpaqueLow 40Details
Commit message · scgbckbone

final solution can_cancel=True

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing or wallet pathauthentication path
AI analysis · Low 40/100

This commit changes how number-entry prompts behave across the COLDCARD wallet interface. Previously, many prompts did not allow the user to cancel, so pressing the cancel button could be misread as entering '0' and the operation would continue. Now, canceling is explicitly allowed and the code checks for it, returning the user to the previous screen instead of proceeding with a default value. This is a user-experience and safety improvement rather than a remote-exploitable bug, but it prevents accidental or coerced confirmations in security-sensitive flows like exporting xpubs, creating multisig wallets, and signing messages.

Lower-prioritybugfix: exiting nickname entry with nickname already saved deleted previous nickname; fixed settings_get with prelogin argby scgbckbone · c998432f · Apr 20, 2026 · 4 filesMessage 50 · ThinInformational 24Details
Commit message · scgbckbone

bugfix: exiting nickname entry with nickname already saved deleted previous nickname; fixed settings_get with prelogin arg

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 24/100

This commit fixes a bug in the COLDCARD hardware wallet where cancelling out of the 'Set Nickname' screen would accidentally delete an existing nickname. The nickname is shown on the login screen to help users identify their device. The fix also corrects a related test helper that was not properly reading pre-login settings. There is no direct evidence this was a security vulnerability, but it could be a minor usability/reliability issue.

Lower-prioritybugfix: enable disabled 7z magic check in check_file_headersby scgbckbone · 9c6cfcbb · Apr 20, 2026 · 3 filesMessage 50 · ThinLow 34Details
Commit message · scgbckbone

bugfix: enable disabled 7z magic check in check_file_headers

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Low 34/100

This commit fixes a bug where COLDCARD backup files in 7z format were not properly checked for the correct file header ('magic bytes'). Because the check was accidentally disabled, the device could accept backup files with wrong or corrupted headers. The fix turns the check back on and adds tests to make sure bad headers are rejected with a clear error message.

Security candidatebugfix: Delta Mode Trick PIN restore from backupby scgbckbone · be614dab · Apr 20, 2026 · 6 filesMessage 45 · ThinLow 48Details
Commit message · scgbckbone

bugfix: Delta Mode Trick PIN restore from backup

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

This commit fixes a bug where a special security feature called 'Delta Mode Trick PIN' was not being restored when a user restored their Coldcard wallet from a backup. A Trick PIN is a decoy PIN that can do things like show a fake wallet or wipe the device. Delta Mode is a type of Trick PIN that must be very similar to the real PIN. Because of the bug, after restoring from backup, this protection would silently disappear, leaving users who relied on it less protected than they expected. The fix changes the backup-restore code so Delta Mode Trick PINs are correctly recreated, and adds an automated test to check this.

AI review queuedtyposby scgbckbone · 6869ba87 · Apr 20, 2026 · 9 filesMessage 0 · OpaqueLow 26Details
Commit message · scgbckbone

typos

0/100 · OpaqueMessage clarity
! Very short subject! 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 26/100

This commit only fixes spelling mistakes in comments and user-facing text strings across nine source files. There are no code logic changes, no security fixes, and no functional behavior differences.

Lower-prioritydo not repeat HSM_DISABLE_CMDS in HOBBLED_CMDSby scgbckbone · 02bd4287 · Apr 20, 2026 · 1 fileMessage 45 · ThinLow 33Details
Commit message · scgbckbone

do not repeat HSM_DISABLE_CMDS in HOBBLED_CMDS

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

This commit is a small code cleanup in the COLDCARD firmware's USB command handling. It removes a manually duplicated list of commands that were already defined elsewhere (HSM_DISABLE_CMDS) and instead reuses that existing list. There is no direct evidence this fixes an active security bug, but it reduces the risk of future mistakes where the two lists become inconsistent and a restricted command accidentally stays allowed.

Lower-prioritytesting: fix bitcoind param listby scgbckbone · d0f83457 · Apr 20, 2026 · 1 fileMessage 55 · ThinInformational 15Details
Commit message · scgbckbone

testing: fix bitcoind param list

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100

This commit fixes a minor Python syntax bug in a test helper file. Two missing commas in a list of command-line arguments for a local Bitcoin test node (bitcoind) were added. Without the commas, Python would accidentally concatenate two strings into one invalid argument, which would cause the test setup to fail. This change only affects internal testing code and has no security relevance for COLDCARD users or real funds.

Lower-prioritybetter fitting UX message for MK versionsby scgbckbone · 00afe533 · Apr 20, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

better fitting UX message for MK versions

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

This commit only changes the on-screen title of a feature from 'Spending Policy' to 'Spend Policy' for older COLDCARD models that lack a full keyboard (non-QWERTY versions). It is a user-interface wording tweak with no security effect.

Lower-priorityremove redundant double newline in "Show Version"by scgbckbone · 621523c1 · Apr 8, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

remove redundant double newline in "Show Version"

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

This commit removes one extra blank line from the on-screen 'Show Version' display text. It is a cosmetic formatting cleanup with no security relevance.

Lower-priorityWait UX for chain changesby scgbckbone · fdf630ab · Apr 8, 2026 · 1 fileMessage 45 · ThinInformational 19Details
Commit message · scgbckbone

Wait UX for chain changes

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

This tiny patch adds a 'Wait...' loading screen while the COLDCARD wallet switches between Bitcoin networks (for example, mainnet to testnet). The change appears aimed at preventing user confusion or accidental interaction during a brief reconfiguration, not at fixing a serious security flaw. There is no direct evidence in the commit that this resolves an exploit.

AI review queuedSigned for Edge release.by Peter D. Gray · 29ef16be · Mar 25, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

Signed for Edge release.

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

This commit only updates the signed release manifest file (signatures.txt). It refreshes SHA-256 hashes for changelog files and adds hashes for two new firmware build files, then re-signs the file with a PGP signature. There is no source code change and no security fix or vulnerability present in the diff itself.

Lower-priorityregtest inherits chains parameters from testnet (saves flash space)by scgbckbone · 33449756 · Mar 16, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · scgbckbone

regtest inherits chains parameters from testnet (saves flash space)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a small code cleanup. It makes the 'regtest' (regression test) Bitcoin network settings inherit from 'testnet' instead of duplicating the same values. The only unique setting kept for regtest is its special Bech32 address prefix ('bcrt'). There is no security issue here.