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 51 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 candidatestandalone encrypted backups for Secure Notes & Passwordsby scgbckbone · d58fdfd5 · Jun 30, 2026 · 6 filesMessage 50 · ThinLow 29Details
Commit message · scgbckbone

standalone encrypted backups for Secure Notes & Passwords

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Low 29/100

This commit adds a new feature to the COLDCARD firmware: encrypted backups for Secure Notes & Passwords. Previously, exporting notes and passwords to a microSD card produced an unencrypted JSON file. Now the device can encrypt that export using the same 7z/AES backup encryption used for full wallet backups. The change also refactors the existing backup password code so it can be reused for both full-device and notes-only backups. A small, unrelated fix in message signing changes a logical AND to an OR when deciding whether tab/newline characters are allowed in signed text. There is no vendor disclosure of a security vulnerability, and the commit is framed as a feature addition.

Security candidaterevert SSSP bypass PIN loginby scgbckbone · 542dcd32 · Jun 25, 2026 · 3 filesMessage 45 · ThinModerate 61Details
Commit message · scgbckbone

revert SSSP bypass PIN login

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access control
AI analysis · Moderate 61/100

This commit reverts a previous security fix. The original fix prevented a 'bypass PIN' (a special trick PIN that hides the wallet) from being used a second time to finish logging in without ever entering the real main PIN. After this revert, entering the bypass PIN again at the second prompt will complete login into an empty, no-secret session, just as it did before the fix. The change also removes the bugfix note from the changelog and updates tests to expect the old, less restrictive behavior again.

Security candidateapply note or pwd as b39 passphraseby scgbckbone · 0ef6413c · Jun 24, 2026 · 9 filesMessage 45 · ThinLow 27Details
Commit message · scgbckbone

apply note or pwd as b39 passphrase

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
access controlseed or entropy pathsigning or wallet pathauthentication path
AI analysis · Low 27/100

This commit adds a new feature to the COLDCARD hardware wallet that lets users apply the text of a Secure Note or the value of a Secure Note password as their BIP-39 wallet passphrase. It also tightens how printable ASCII is checked in a few places. The change is user-facing and requires physical interaction, so it does not look like a remote exploit. However, because passphrases control which wallet is derived, any bug in how note text is sanitized or applied could cause a user to load an unexpected wallet or expose a note's contents as a passphrase.

Security candidateFix BBQr share of Unicode text: encode str to UTF-8 before sizing/splittingby Dmitry Monakhov · 97d86c95 · Jun 24, 2026 · 1 fileMessage 73 · AdequateLow 33Details
Commit message · Dmitry Monakhov

Fix BBQr share of Unicode text: encode str to UTF-8 before sizing/splitting

For 'U'/'J' payloads data is a str; planning counted codepoints while
b32encode consumes UTF-8 bytes, so multi-byte text (e.g. paper-wallet QR
art) overflowed target_vers and tripped the assert in show_bbqr_codes.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
memory safety
AI analysis · Low 33/100

This commit fixes a bug in the COLDCARD Q1 hardware wallet where displaying certain QR codes containing non-English or special characters could cause the device to crash with an assertion failure. The fix ensures text is converted to UTF-8 bytes before calculating QR code sizes, preventing a mismatch between expected and actual data length. There is no direct evidence this bug is exploitable for malicious purposes.

Lower-priorityAdd groups for secure notesby scgbckbone · edae8c1e · Jun 24, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

Add groups for secure notes

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

This commit adds a new feature to the COLDCARD firmware that lets users organize their saved secure notes and passwords into groups, similar to folders. It is a user-experience improvement and does not fix or introduce any security vulnerability.

Lower-priorityFix QR scanner setup and sleep handlingby scgbckbone · ad2088d2 · Jun 24, 2026 · 3 filesMessage 45 · ThinLow 32Details
Commit message · scgbckbone

Fix QR scanner setup and sleep handling

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

This commit fixes several bugs in how the COLDCARD Q1 hardware wallet talks to its built-in QR-code scanner. The changes make scanner startup more reliable, prevent stale 'go to sleep' commands from accidentally stopping a scan that just started, and recover better when commands time out or the user cancels. The changelog calls these 'Scanner robustness' fixes. There is no direct evidence this is a security vulnerability that can be exploited by an attacker; it is primarily a reliability/stability improvement. However, because the QR scanner is used to read sensitive data such as Bitcoin transactions and seed backups, any crash or misbehavior during scanning could in theory affect user funds or cause denial of service, so the change has defensive-security value.

Lower-priorityKeep scanner reinit state instance-localby scgbckbone · 55340577 · Jun 24, 2026 · 2 filesMessage 45 · ThinLow 26Details
Commit message · scgbckbone

Keep scanner reinit state instance-local

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

This tiny code change moves a 'needs reinit' flag from being shared across all QR scanner objects to being kept inside each individual scanner object. In the real device code the flag is removed from the base class; in the simulator it is added as an instance variable. The change is a bug-fix style cleanup that prevents scanner state from leaking between different scanner instances. There is no direct evidence in the commit of a security vulnerability, but shared mutable state can in principle cause race-condition or state-confusion bugs.

Lower-priorityfix bypass_tmp return to master secret with xprv typeby scgbckbone · 67a5c6c2 · Jun 24, 2026 · 1 fileMessage 50 · ThinModerate 61Details
Commit message · scgbckbone

fix bypass_tmp return to master secret with xprv type

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

This commit fixes a bug in how the COLDCARD wallet creates encrypted backups when a temporary seed is being bypassed. Previously, if the main secret was stored as an extended private key ('xprv') rather than as BIP39 seed words, the backup code could incorrectly encode the secret and potentially return to or expose the master secret in the wrong form. The fix ensures the correct secret type is used when restoring settings from the main seed during backup generation.

Security candidatefix testsby scgbckbone · eb112eb3 · Jun 24, 2026 · 2 filesMessage 0 · OpaqueInformational 15Details
Commit message · scgbckbone

fix tests

0/100 · OpaqueMessage clarity
✓ Mentions testing or verification! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only updates two test files to fix failing tests. It changes test input data and adds an address-format parameter that a helper function now requires. There is no change to the actual COLDCARD firmware or wallet code that users rely on, so it does not affect device security.

Security candidatebugfix: p2pkby scgbckbone · 0d04e5e1 · Jun 23, 2026 · 8 filesMessage 18 · OpaqueModerate 57Details
Commit message · scgbckbone

bugfix: p2pk

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing or wallet pathauthentication path
AI analysis · Moderate 57/100

This commit fixes a bug in the COLDCARD hardware wallet that prevented it from correctly signing Bitcoin transactions that spend from 'pay-to-public-key' (P2PK) outputs. P2PK is an older, uncommon output type where coins are locked directly to a public key rather than to a Bitcoin address. The bug meant P2PK signing was broken entirely, and the device could not handle both compressed (33-byte) and uncompressed (65-byte) public key forms. The fix updates the firmware to recognize both key lengths, compare them correctly against derived keys, and produce the right transaction signature format. It also adds tests that exercise real P2PK spends against Bitcoin Core.

AI review queuedReject witness-only UTXO for legacy inputs; Suppress fee for unverified witness UTXOs;normalize legacy inputs to proper utxoby scgbckbone · 59eb529a · Jun 23, 2026 · 6 filesMessage 50 · ThinHigh 78Details
Commit message · scgbckbone

Reject witness-only UTXO for legacy inputs; Suppress fee for unverified witness UTXOs;normalize legacy inputs to proper utxo

50/100 · ThinMessage clarity
✓ Specific, 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 · High 78/100

This update fixes a bug in the COLDCARD hardware wallet where a malicious or malformed Bitcoin transaction file (PSBT) could trick the device into using the wrong amount of money for a non-SegWit (legacy) input. Specifically, if the file only provided a lightweight 'witness UTXO' for a legacy input, the device would trust that amount. An attacker could lie about the amount, making the transaction look like it had a normal fee when it actually sent much more to the miner or another recipient. The fix rejects such files for legacy inputs, prefers the full previous transaction when both types are present, and suppresses fee calculation when a witness-only UTXO cannot be verified as genuinely SegWit.

AI review queuedimprove USB validationby scgbckbone · d5aba396 · Jun 23, 2026 · 4 filesMessage 28 · OpaqueModerate 66Details
Commit message · scgbckbone

improve USB validation

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

This commit tightens input-length checks for commands that COLDCARD receives over its USB interface. Before the change, several commands would accept packets that were too short, too long, or internally inconsistent. That could let a malicious or buggy host computer read beyond intended memory boundaries, pass malformed data deeper into the firmware, or in some cases crash the device. The patch adds explicit length and bounds assertions for many USB commands and adds tests that confirm malformed packets are rejected.

AI review queuedbugfix: 1of1 multisigby scgbckbone · 6fd256db · Jun 23, 2026 · 4 filesMessage 28 · OpaqueLow 42Details
Commit message · scgbckbone

bugfix: 1of1 multisig

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

This commit fixes a bug in the COLDCARD hardware wallet firmware that prevented signing of 1-of-1 multisignature transactions. The change also hardens how the wallet detects single-key P2SH-wrapped SegWit inputs so it no longer misclassifies them as multisig when extra unrelated key paths are present. The bug could cause legitimate transactions to fail, but the patch also reduces the chance that a malformed PSBT could trick the device into treating a simple single-key input as a multisig one.

Lower-prioritykeep NFC export tag live for repeated probesby scgbckbone · 6716fcba · Jun 23, 2026 · 2 filesMessage 45 · ThinInformational 24Details
Commit message · scgbckbone

keep NFC export tag live for repeated probes

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

This is a bugfix for the COLDCARD hardware wallet's NFC sharing feature. Previously, when exporting data over NFC, the device would write the tag contents fresh for each tap/scan attempt. Some phones check the tag multiple times before accepting it, so the repeated re-writes could cause the export to fail or behave inconsistently. The fix writes the NFC tag once and keeps it 'live' until the user exits, allowing repeated probes to succeed. There is no direct evidence in the commit that this is a security vulnerability; it appears to be a reliability/usability fix.

Security candidateWIF Store upgradeby scgbckbone · 1dddd885 · Jun 22, 2026 · 9 filesMessage 28 · OpaqueLow 40Details
Commit message · scgbckbone

WIF Store upgrade

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

This commit upgrades the COLDCARD firmware's WIF Store feature so that individual private keys imported as WIF can sign transactions even when the PSBT file lacks the usual BIP-32 key-path metadata. It adds address/scriptPubKey auto-detection, descriptor export, and Electrum-style watch-only wallet support. The change is primarily a feature enhancement, but it touches sensitive signing paths and removes a previous safety assertion that required key paths to be at least depth 8, which slightly weakens one guardrail.

Security candidateBIP-322 changes after BIP got in to the complete stateby scgbckbone · d656f371 · Jun 22, 2026 · 15 filesMessage 50 · ThinLow 43Details
Commit message · scgbckbone

BIP-322 changes after BIP got in to the complete state

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet pathauthentication pathparser or protocol path
AI analysis · Low 43/100

This commit updates COLDCARD's BIP-322 (Bitcoin message signing / proof-of-reserves) implementation to match the finalized BIP-322 specification. The main user-visible change is that the message to be signed must now be embedded directly in the PSBT file under a new standard field, instead of being imported separately by the user. The device verifies that the embedded message matches the on-screen message before signing. The change also adds HSM policy checks so BIP-322 signing is governed by message-signing rules, and it prevents BIP-322 PSBTs from being finalized into broadcastable transactions. There is no obvious vulnerability introduced; it is primarily a standards-compliance and safety hardening patch.

Lower-priorityRestore borrowed secret handling in SensitiveValuesby scgbckbone · 7e92e516 · Jun 22, 2026 · 1 fileMessage 50 · ThinModerate 55Details
Commit message · scgbckbone

Restore borrowed secret handling in SensitiveValues

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

This commit removes one line of code that was adding a secret value to an internal tracking list called 'spots' inside the COLDCARD firmware's sensitive-data handling. The title says it 'restores borrowed secret handling,' suggesting the previous code accidentally treated a borrowed/short-lived secret as something that needed to be tracked for later cleanup. The change is tiny and defensive, but the commit message alone does not explain whether any actual security bug resulted from the removed line.

AI review queuedstabilize testsby scgbckbone · 74d34cfc · Jun 22, 2026 · 5 filesMessage 28 · OpaqueInformational 15Details
Commit message · scgbckbone

stabilize tests

28/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Mentions testing or verification! 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 · Informational 15/100

This commit only changes test files in the COLDCARD firmware repository. It adds setup steps (like returning to the home screen before tests), updates menu navigation to match renamed menu items, and makes test assertions more flexible. There are no changes to the actual firmware or wallet code that users rely on, so this cannot directly affect device security.

Lower-prioritysimulator:attribute catchup with real SCANby scgbckbone · 64658621 · Jun 22, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

simulator:attribute catchup with real SCAN

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

This commit makes two small, unrelated tweaks to the Coldcard simulator. One adds copy-and-paste keyboard shortcuts to the simulator's terminal window. The other adds a missing 'busy_scanning' flag to the simulated QR-code scanner so it behaves more like the real hardware. Neither change affects real Coldcard devices or their security.

Lower-prioritydocs: NFC antenna by HWby scgbckbone · 755353f0 · Jun 22, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · scgbckbone

docs: NFC antenna by HW

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
documentation-only discount
AI analysis · Informational 15/100

This commit only updates user documentation and adds a diagram showing where the NFC antenna is located on different Coldcard hardware models (Mk4, Mk5, Q1). It also updates instructions for physically disabling the NFC antenna on each model. There are no code changes and no security fix or vulnerability introduced.

Lower-prioritybuild: automatic block height updateby scgbckbone · 2981d159 · Jun 22, 2026 · 6 filesMessage 57 · ThinLow 26Details
Commit message · scgbckbone

build: automatic block height update

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

This commit automates how the COLDCARD firmware records the latest Bitcoin block height during the build process. It fetches the current block height from two public Bitcoin explorer websites (mempool.space and blockstream.info) and stores it in a generated source file. That value is then used as a minimum block height for some COLDCARD security feature (likely related to 'SSSP/CCC'). The change itself is a build tooling update, not a fix for a known vulnerability, but it introduces a new external network dependency during firmware builds.

Lower-priorityslight menu optimization for long menusby scgbckbone · 9ff3f5c4 · Jun 19, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · scgbckbone

slight menu optimization for long menus

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

This is a tiny performance tweak in the COLDCARD wallet's menu drawing code. It changes one loop bound so the device only redraws the visible menu items instead of also iterating over off-screen items. There is no security-relevant change visible in the diff.

AI review queuedtest nitsby scgbckbone · f5a1ef32 · Jun 19, 2026 · 4 filesMessage 0 · OpaqueInformational 15Details
Commit message · scgbckbone

test nits

0/100 · OpaqueMessage clarity
✓ Mentions testing or verification! 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 · Informational 15/100

This commit only touches test helper code in the COLDCARD firmware repository. It fixes small test issues: allowing PSBT parsing from string input, validating a setting name in a hobble-mode test, and correctly setting sequence numbers and fallback locktimes in fake transaction generators used by multisig and general transaction tests. There is no change to the actual firmware or wallet security logic.

Security candidatetesting: block_h bumped for SSSP too, when CCC overrides SSSP blockby scgbckbone · 841e4433 · Jun 19, 2026 · 4 filesMessage 60 · AdequateLow 29Details
Commit message · scgbckbone

testing: block_h bumped for SSSP too, when CCC overrides SSSP block

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
authentication path
AI analysis · Low 29/100

This commit fixes a bookkeeping bug in the COLDCARD firmware's transaction-signing logic. When two optional security features—SSSP (a spending velocity limit) and CCC (a policy that can override SSSP)—are both active, the block-height tracker for SSSP was not being updated in one specific case where CCC allowed a transaction that SSSP would have blocked. The fix ensures both trackers stay in sync, so SSSP's velocity limit remains accurate after an override. There is no direct evidence in the commit that this is exploitable as a security vulnerability; it reads as a test-driven correctness fix.

AI review queuedtesting: cope with bitcoin core v30by scgbckbone · 38616234 · Jun 19, 2026 · 2 filesMessage 55 · ThinInformational 15Details
Commit message · scgbckbone

testing: cope with bitcoin core v30

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

This commit only updates the project's automated test harness to work with newer versions of Bitcoin Core (specifically version 30). It changes how tests detect Bitcoin Core's version, handle removed legacy wallet features, and adjust an expected test result about data size limits. There is no change to the COLDCARD firmware itself or to any code that runs on the device, so this has no security relevance for end users.