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
57commits · 30 days
184commits · 60 days
253commits · 180 days
386commits · 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 17 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 candidateexternal entropy required for CCC key and temporary seedsby scgbckbone · 7100bb66 · Aug 5, 2026 · 5 filesMessage 35 · OpaqueLow 46Details
Commit message · scgbckbone

external entropy required for CCC key and temporary seeds

35/100 · OpaqueMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body! Contains work-in-progress language! Opaque security-relevant change
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 46/100

This commit changes how COLDCARD creates two special types of secrets: temporary seeds and the 'CCC' co-signing key. Previously these were generated purely from the device's own random number generator. Now the user must add their own randomness (for example by mashing buttons, rolling dice, or flipping coins) before the secret is created. This makes it harder for an attacker who has somehow compromised the device's random generator to predict or control those secrets. It is a defensive hardening change, not a fix for a known active attack.

Security candidateWarn before dice-only seed generationby scgbckbone · 71763b2c · Aug 5, 2026 · 3 filesMessage 45 · ThinInformational 22Details
Commit message · scgbckbone

Warn before dice-only seed generation

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 22/100

This commit adds a warning screen before users create a Bitcoin wallet seed using only dice rolls. It tells users that no hardware randomness is added, and that the on-screen hash must be kept secret because anyone who sees it could recreate the wallet and steal funds. This is a user-experience and safety improvement, not a fix for a software vulnerability.

Security candidaterng: verify libngu bytes path reaches hardware driverby scgbckbone · 8570af2a · Aug 5, 2026 · 1 fileMessage 60 · AdequateLow 45Details
Commit message · scgbckbone

rng: verify libngu bytes path reaches hardware driver

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
entropy or randomness
AI analysis · Low 45/100

This commit adds build-time checks to ensure the firmware's random-number generator actually chains all the way down to the hardware chip. It does not fix a known exploit, but it prevents a future build misconfiguration from silently causing the wallet to use weaker random numbers, which could eventually make private keys guessable. Think of it as adding an assembly-line inspection that verifies a critical safety wire is connected end-to-end.

Security candidateRequire external entropy for all new master seed wallets - with new options dice/coin/mashby scgbckbone · 886582c8 · Aug 4, 2026 · 10 filesMessage 78 · AdequateLow 37Details
Commit message · scgbckbone

Require external entropy for all new master seed wallets - with new options dice/coin/mash

Deduplicate dice and coin collection while retaining separate mash handling. Capture raw mash press edges with the DWT CPU cycle counter (~8.33ns at 120MHz) before debounce. Credit two bits per inter-press gap, requiring 65 presses for 64 credited gaps; key identity is mixed in but receives no entropy credit.

78/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Low 37/100

This commit changes how new COLDCARD wallets are created: instead of relying only on the device's internal random-number generators, users must now add their own physical randomness by either mashing keys, rolling dice, or flipping coins. The internal random sources are still used, but the user's extra randomness is mixed in. This is a security improvement meant to reduce the risk that a hidden flaw in the device's random-number hardware could produce a predictable wallet. The change also adds checks to catch obviously biased dice or coin results.

Security candidatereseed with full 32 bytes of digest from SE1/SE2 entropy sourcesby scgbckbone · ac1644cd · Aug 4, 2026 · 2 filesMessage 55 · ThinModerate 59Details
Commit message · scgbckbone

reseed with full 32 bytes of digest from SE1/SE2 entropy sources

55/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomness
AI analysis · Moderate 59/100

This commit fixes a security weakness in how the COLDCARD MK4 hardware wallet seeds its random number generator (RNG). Previously, the firmware took a 256-bit hash of entropy from two secure elements, but only used the first 32 bits (4 bytes) of that hash to reseed the RNG. The change now uses the full 256-bit (32-byte) digest. More entropy bits means the RNG's initial state is much harder to predict, which matters when the device is generating cryptographic secrets like Bitcoin seed phrases. The commit also adds length checks to make sure the expected amount of entropy is actually received from each secure element.

Security candidaterng: discard 12 words after SEIS clear per RM0432 32.3.7by scgbckbone · 43b21392 · Aug 4, 2026 · 2 filesMessage 50 · ThinModerate 61Details
Commit message · scgbckbone

rng: discard 12 words after SEIS clear per RM0432 32.3.7

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
entropy or randomnessseed or entropy pathboot or update path
AI analysis · Moderate 61/100

This commit changes how the COLDCARD hardware wallet's random-number generator (RNG) recovers from a rare 'seed error' condition. The manufacturer is now following an STMicroelectronics guideline to throw away the first 12 random numbers after clearing the error, because those values could be left over from before the error and might be predictable. Random numbers are critical for creating private keys and transaction signatures, so using weak or stale randomness could in theory weaken security. The patch is defensive and does not by itself prove an attack exists.

Security candidatedocs: why RNG clock errors don't invalidate RNG_DRby scgbckbone · 6e403982 · Aug 4, 2026 · 2 filesMessage 74 · AdequateInformational 15Details
Commit message · scgbckbone

docs: why RNG clock errors don't invalidate RNG_DR

74/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Explains rationale or failure mode! No meaningful explanatory body
Why it was queued
entropy or randomnessdefensive validationseed or entropy pathboot or update path
AI analysis · Informational 15/100

This commit only adds explanatory comments to two source files about why the COLDCARD firmware ignores certain hardware random-number-generator clock-error flags. It does not change any code behavior. The comments cite ST documentation saying these clock errors do not affect the quality of random numbers and that a dead clock is still caught by a data-ready timeout. There is no security-relevant code change.

Security candidateMix secure element entropy into seed generationby scgbckbone · 493b77c3 · Aug 3, 2026 · 2 filesMessage 50 · ThinModerate 59Details
Commit message · scgbckbone

Mix secure element entropy into seed generation

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
entropy or randomnesssecure hardware boundaryseed or entropy path
AI analysis · Moderate 59/100

This commit strengthens how the COLDCARD wallet creates the master secret (seed) by blending randomness from the main microcontroller's true random number generator with additional randomness from two separate secure-element chips. Previously the seed relied only on the microcontroller's TRNG. The change is a defensive hardening measure: even if the TRNG were biased or partially compromised, the secure elements' independent entropy would still contribute unpredictability. The commit also documents a separate bugfix for detecting random-number-generator fault flags and failing safely.

Security candidatebootloader: reject DFU images longer than signed firmware_lengthby scgbckbone · 2aba35b9 · Aug 2, 2026 · 2 filesMessage 73 · AdequateHigh 81Details
Commit message · scgbckbone

bootloader: reject DFU images longer than signed firmware_length

verify_firmware_in_ram() authenticated only hdr->firmware_length bytes,
but the untrusted DFU element length was passed unchecked to
psram_do_upgrade(), which flashed that many bytes. Anything appended
past the signed length (up to FW_MAX_LENGTH_MK4, which reaches the top
of flash and covers the whole internal /flash filesystem) was written
to flash without possessing the signing key, e.g. via recovery-mode SD
upgrade of the currently-installed signed image.

- verify_firmware_in_ram(): require len == hdr->firmware_length,
fail closed on any mismatch
- psram_do_upgrade(): assert size <= FW_MAX_LENGTH_MK4 (defense in depth)

Affects Mk4 and Q1 (shared bootloader sources).

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing boundaryupdate trustboot or update path
AI analysis · High 81/100

This fix closes a serious bug in the COLDCARD Mk4 and Q1 bootloader. Previously, when installing a firmware update from a microSD card in recovery mode, the bootloader verified only the portion of the file that the firmware header said was signed. Any extra bytes appended after that signed portion were still written to the device's flash memory, even though they were not signed. An attacker who could get a victim to install a legitimate-looking signed firmware file with malicious data tacked onto the end could overwrite parts of the device's internal storage without needing COLDCARD's signing key. The patch now rejects any update whose total length does not exactly match the signed length, and adds a hard upper-size limit as a backup safeguard.

AI review queuedcautions, editby Peter D. Gray · c849c4e0 · Aug 1, 2026 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · Peter D. Gray

cautions, edit

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! 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 is a minor formatting edit to the README.md file. It changes a 'Security Advisory' heading from being displayed as a code block (with diff-style coloring) to a normal Markdown heading, and adds a horizontal rule. There are no code changes, no new security claims beyond what was already present, and no functional impact on the COLDCARD firmware.

AI review queuedcautionsby Peter D. Gray · 266f581a · Aug 1, 2026 · 1 fileMessage 0 · OpaqueCritical 100Details
Commit message · Peter D. Gray

cautions

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 · Critical 100/100

This commit adds a security advisory to the COLDCARD firmware README. Coinkite states that firmware releases from 2021 through July 2026 contained a bug that produced weak randomness (poor entropy) when generating secrets such as wallet seed phrases. Because weak randomness can make private keys guessable by attackers, any Bitcoin or other cryptocurrency funds protected by seeds created on affected COLDCARD devices during that period may be at risk of theft. The advisory recommends regenerating seeds and moving funds immediately, and lists specific firmware versions where the issue is fixed. The commit itself only changes documentation; it does not contain the actual code fix.

Security candidatebugfix: separate SE1 check nonceby scgbckbone · 4e7755b5 · Aug 1, 2026 · 2 filesMessage 45 · ThinModerate 60Details
Commit message · scgbckbone

bugfix: separate SE1 check nonce

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
boot or update path
AI analysis · Moderate 60/100

This commit fixes a bug in the COLDCARD Mk4 bootloader where the same encryption counter value (nonce) was reused for both a verification check value and the real secret data. The fix changes the last byte of the nonce to a distinct value (0x80) when encrypting/decrypting the check value, so it no longer overlaps with the counter range used for actual secrets. Reusing a counter with AES-CTR-style encryption can weaken confidentiality guarantees and, in some cryptographic designs, allow an attacker who sees two encrypted blocks with the same nonce to learn information or tamper with data. The change is small and defensive, and the changelog credits an external reporter.

AI review queuedbugfix: block SIGHASH_SINGLE by defaultby scgbckbone · f87a8051 · Aug 1, 2026 · 3 filesMessage 45 · ThinModerate 64Details
Commit message · scgbckbone

bugfix: block SIGHASH_SINGLE by default

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 64/100

This update changes the COLDCARD hardware wallet so that it refuses to sign Bitcoin transactions using the SIGHASH_SINGLE signature mode unless the user has explicitly enabled a 'Warn' setting. SIGHASH_SINGLE lets a signer lock in only one output while leaving other outputs changeable later. That could allow someone to alter where remaining funds go after the COLDCARD has already signed. The change adds SIGHASH_SINGLE to the existing safety check that already blocked SIGHASH_NONE, and it includes a test to confirm the block works.

AI review queuedSigned for Edge release.by Peter D. Gray · 9a88e1a5 · Jul 31, 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 release signature file. It adds two new firmware file hashes for recently built releases and refreshes the PGP signature that covers the file. There is no code change and no indication of a security fix or vulnerability.

AI review queuedSigned for MK3 release.by Peter D. Gray · f32e0579 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

Signed for MK3 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 a signed release manifest file (signatures.txt). It refreshes cryptographic hashes for release notes and adds a new firmware file entry, then re-signs the file with PGP. There is no code change and no security vulnerability is present in the diff.

AI review queuedupdates mk3by Peter D. Gray · 50fceee9 · Jul 31, 2026 · 2 filesMessage 0 · OpaqueCritical 85Details
Commit message · Peter D. Gray

updates mk3

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 · Critical 85/100

This commit updates Coldcard's release notes to announce that a previously disclosed limited-entropy bug in seed generation now also affects Mk3 hardware, and that a new Mk3 firmware version 4.2.0 has been released as a hotfix. The earlier notes told Mk3 users to stop generating seeds and move funds; the revised notes say Mk3 users can safely generate seeds again after installing 4.2.0. Seeds created before this fix may have only about 40 bits of randomness, making them far weaker than intended and potentially guessable by attackers.

AI review queuedupdate block heightby Peter D. Gray · 1f03a52f · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

update block height

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

This commit simply updates a hardcoded Bitcoin blockchain height number in a file that is automatically generated. There is no security issue here.

AI review queuedSigned for mk release.by Peter D. Gray · f7945e0b · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

Signed for mk 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 release signature file. It adds two new file hashes for a COLDCARD Mk firmware release and refreshes the PGP signature that covers the file. There is no code change, no bug fix, and no security patch in the diff itself.

Lower-priorityFor 2026-07-31T0518-v5.6.0by Peter D. Gray · 217b794f · Jul 31, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Peter D. Gray

For 2026-07-31T0518-v5.6.0

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

This commit only updates an auto-generated timestamp and version number in a firmware build file. It does not change any executable code, logic, or security behavior. There is no security issue here.

AI review queuedupdate block heightby Peter D. Gray · 85b1fe56 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

update block height

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

This commit simply updates a hardcoded Bitcoin block height number in a single file by one block, along with its timestamp. There is no code logic change and no apparent security relevance.

AI review queuedSigned for q1 release.by Peter D. Gray · 47deea23 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

Signed for q1 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 a signed release manifest file (signatures.txt). It records new cryptographic hashes for firmware release files and their PGP signature. There is no code change, no bug fix, and no security patch in the commit itself.

Lower-priorityFor 2026-07-31T0517-v1.5.0Qby Peter D. Gray · 2183c2f0 · Jul 31, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Peter D. Gray

For 2026-07-31T0517-v1.5.0Q

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

This commit only updates an auto-generated timestamp and version string used by the COLDCARD Q1 hardware wallet's FAT filesystem driver. The change is cosmetic/build-metadata only and does not alter any executable logic, security boundary, or user-facing behavior.

AI review queuedupdate block heightby Peter D. Gray · e1fd9b85 · Jul 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Peter D. Gray

update block height

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

This commit simply updates a recorded Bitcoin block height number in a generated file, moving it from block 960,344 to 960,347. There is no code logic change, no user-facing behavior change, and no security relevance.

AI review queuednitby Peter D. Gray · 4ba45bc9 · Jul 31, 2026 · 1 fileMessage 0 · OpaqueInformational 15Details
Commit message · Peter D. Gray

nit

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 removes a period at the end of one changelog sentence. It is a trivial punctuation/typography fix with no code or security behavior change.

Security candidatefixes rngby Peter D. Gray · ca724637 · Jul 31, 2026 · 11 filesMessage 0 · OpaqueCritical 91Details
Commit message · Peter D. Gray

fixes rng

0/100 · OpaqueMessage clarity
! Very short subject! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
entropy or randomnessseed or entropy path
AI analysis · Critical 91/100

This commit fixes a critical random-number bug in COLDCARD hardware wallets. The device was accidentally using a weak, software-based fallback random generator instead of its secure hardware one when creating Bitcoin seed phrases. Because the fallback generator had very little real randomness, attackers who captured a public transaction or signature could potentially figure out the wallet's private keys and steal funds. The patch forces the build to use the hardware random source and adds a build-time check to make sure the weak fallback is never linked in again. Coinkite issued an emergency hotfix and warned users to move funds from wallets created with affected firmware.