Entropy technical backgrounder
coinkite-backgrounder
Latest reviewed change
source content difference between and
Coinkite added a Current guidance banner dated August 14, 2026 pointing to the security-status page and the step-by-step migration guide, with a note that firmware updates alone do not repair an affected seed.
Technical Deep Dive into the Entropy Issue
Published Jul 30, 2026
Categories: ckcc
+Current guidance — August 14, 2026
+This article is part of the incident record. For the current fixed-release matrix, see the COLDCARD Security Status page. If an affected seed still controls funds, follow the step-by-step migration guide. Updating firmware alone does not repair an existing affected seed.
What Happened, in Simple Terms
There was no intentional weak-entropy fallback. It is important to be precise
about what happened.
First lines only. The complete diff is in the timeline below.
- Organisation
- Coinkite
- Evidence role
- Vendor advisory
- Published
- 2026-07-30
- Source changes
- 5
- Detected differences
- 6
- Unreviewed
- 0
- Copies held
- 7
Publisher-dated 30 July. Revised to add Mk4/Q/Mk5 scope and later the Mk3 4.2.0 fix; exact revision times are unresolved.
Every check is recorded, including checks that found no text change. A detected edit is therefore bounded between two checks. The publisher's exact save time is not observable from this record. Last checked .
This post is held twice: here, with this project's own note on why it matters, and again as part of the conversation captured at , which is polled for changes. Both copies are the same post; neither is a separate event.
Snapshot and diff bodies for this chain monitor are held in the local evidence archive but withheld from the public site because they can contain the addresses of people who published nothing themselves. Capture times and reviewed change summaries remain available below.
Held captures
-
Coinkite added a Current guidance banner dated August 14, 2026 pointing to the security-status page and the step-by-step migration guide, with a note that firmware updates alone do not repair an affected seed.
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 2 lines
Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc +Current guidance — August 14, 2026 +This article is part of the incident record. For the current fixed-release matrix, see the COLDCARD Security Status page. If an affected seed still controls funds, follow the step-by-step migration guide. Updating firmware alone does not repair an existing affected seed. What Happened, in Simple Terms There was no intentional weak-entropy fallback. It is important to be precise about what happened.Extracted text as captured
Blog Careers Contact RSS Email Newsletter Store × Home Blog Careers Contact RSS Email Newsletter Store ← Back to posts Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc Current guidance — August 14, 2026 This article is part of the incident record. For the current fixed-release matrix, see the COLDCARD Security Status page. If an affected seed still controls funds, follow the step-by-step migration guide. Updating firmware alone does not repair an existing affected seed. What Happened, in Simple Terms There was no intentional weak-entropy fallback. It is important to be precise about what happened. Yasmarang was MicroPython’s built-in general-purpose PRNG, introduced upstream in May 2018. It did not become part of COLDCARD’s seed-generation path until the libNgU migration in March 2021. Most language runtimes include a non-cryptographic PRNG for general-purpose tasks. Its presence was not itself unusual. COLDCARD was designed to rely exclusively on its hardware TRNG for seed generation, with no software fallback. Setting MICROPY_HW_ENABLE_RNG=0 was intended to disable the software path. A build and link integration error meant that setting did not have the intended effect, and libNgU’s rng_get() symbol resolved to MicroPython’s default Yasmarang implementation instead. The hardware TRNG did not fail and trigger a weaker fallback at runtime. This was inherited platform behavior activated by a link-time error, not an intentional seed-generation design decision or shortcut. This distinction does not change the risk or migration guidance for affected seeds. Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by aExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
Coinkite added a 'What Happened, in Simple Terms' section explaining Yasmarang, the build and link integration error, and clarifying that the hardware TRNG did not fail at runtime; 'software fallback' wording was tightened to 'fallback' elsewhere.
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 61 lines
Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc -Updated August 8, 2026 at 10:12 a.m. EDT: Clarified that the phrase -“software fallback” refers to an upstream MicroPython implementation selected -during the build. COLDCARD did not intentionally design a runtime fallback from -its hardware RNG to a weaker source for wallet seed generation. +What Happened, in Simple Terms +There was no intentional weak-entropy fallback. It is important to be precise +about what happened. +Yasmarang was MicroPython’s built-in general-purpose PRNG, introduced upstream +in May 2018. It did not become part of COLDCARD’s seed-generation path until the +libNgU migration in March 2021. Most language runtimes include a +non-cryptographic PRNG for general-purpose tasks. Its presence was not itself +unusual. +COLDCARD was designed to rely exclusively on its hardware TRNG for seed +generation, with no software fallback. Setting MICROPY_HW_ENABLE_RNG=0 was +intended to disable the software path. A build and link integration error meant +that setting did not have the intended effect, and libNgU’s rng_get() symbol +resolved to MicroPython’s default Yasmarang implementation instead. +The hardware TRNG did not fail and trigger a weaker fallback at runtime. This +was inherited platform behavior activated by a link-time error, not an +intentional seed-generation design decision or shortcut. This distinction does +not change the risk or migration guidance for affected seeds. Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a The cryptographic choice was sound. The integration was not. During that migration, wallet seed generation moved from ckcc.rng_bytes() to ngu.random.bytes(). That path resolved rng_get() to MicroPython’s software -PRNG implementation instead of COLDCARD’s hardware RNG implementation. -What “fallback” means here -Some reports describe the issue as a weak-entropy fallback. That is reasonable -shorthand for the upstream implementation that was selected, but it can imply -an intentional COLDCARD failover that did not exist. The seed-generation path -did not try the hardware TRNG, detect a failure, and then switch to weaker -software at runtime. -MicroPython’s STM32 port provides two compile-time implementations of -rng_get(): a hardware implementation when the hardware RNG feature is -enabled, and a Yasmarang software PRNG for general runtime needs on boards -without that feature. The software implementation was added -upstream in May -It was not created by Coinkite as a cryptographic backup for wallet seed -generation. -COLDCARD’s design intended ngu.random.bytes() to obtain seed entropy through -libNgU from the board-specific hardware TRNG path only. We set -MICROPY_HW_ENABLE_RNG to zero -intending to disable MicroPython’s RNG facility. But libNgU’s -guard -used #ifndef, which tested whether the macro existed rather than whether its -value was nonzero. Because the macro existed with a value of zero, the guard -passed. MicroPython compiled its software rng_get(), and libNgU’s call -resolved to that implementation. -This was a build-integration and symbol-resolution defect, not an intentional -runtime fallback policy. That distinction does not change the risk to affected -seeds; it explains where the failure occurred and what the fixed build now -prevents. +fallback instead of COLDCARD’s hardware RNG implementation. The bulk of randomness on the COLDCARD was coming from a PRNG that I didn’t know was actually in the source code base (it is from a that code provided a PRNG with the same function signature as the desired code, the build completed without identifying the wrong implementation. -The MicroPython software implementation was +The MicroPython fallback was introduced upstream in May 2018. It did not enter COLDCARD wallet seed generation until the 2021. The affected Mk2 and Mk3 firmware range is 4.0.1 through 4.1.9. Version 4.2.0 corrects new seed generation. The eight-year figure therefore describes the -age of the upstream software implementation, not the duration of affected -COLDCARD seed generation. +age of the upstream fallback code, not the duration of affected COLDCARD seed +generation. Existing review confirmed that the intended TRNG implementation was present in the firmware binary, but did not verify which rng_get() implementation the wallet seed-generation path actually reached across the two submodules. No The guard used #ifndef, which tests whether MICROPY_HW_ENABLE_RNG is defined, rather than whether its value is nonzero. We defined that macro as zero, so the #error did not stop the build. -The hotfix now explicitly excludes MicroPython’s software PRNG object and adds +The hotfix now explicitly excludes MicroPython’s fallback PRNG object and adds a build-time RNG symbol check. The build fails unless the board-specific object -defines the global rng_get() symbol and the upstream software PRNG object -defines no symbols. +defines the global rng_get() symbol and the upstream fallback object defines +no symbols. Next Steps We have released emergency hotfixes for every affected model and release track:Extracted text as captured
Blog Careers Contact RSS Email Newsletter Store × Home Blog Careers Contact RSS Email Newsletter Store ← Back to posts Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc What Happened, in Simple Terms There was no intentional weak-entropy fallback. It is important to be precise about what happened. Yasmarang was MicroPython’s built-in general-purpose PRNG, introduced upstream in May 2018. It did not become part of COLDCARD’s seed-generation path until the libNgU migration in March 2021. Most language runtimes include a non-cryptographic PRNG for general-purpose tasks. Its presence was not itself unusual. COLDCARD was designed to rely exclusively on its hardware TRNG for seed generation, with no software fallback. Setting MICROPY_HW_ENABLE_RNG=0 was intended to disable the software path. A build and link integration error meant that setting did not have the intended effect, and libNgU’s rng_get() symbol resolved to MicroPython’s default Yasmarang implementation instead. The hardware TRNG did not fail and trigger a weaker fallback at runtime. This was inherited platform behavior activated by a link-time error, not an intentional seed-generation design decision or shortcut. This distinction does not change the risk or migration guidance for affected seeds. Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a strong, unique BIP-39 passphrase. Fixed firmware is now available for every affected model and release track,Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
The backgrounder added an August 8 update and a new section clarifying that the phrase 'software fallback' refers to MicroPython's upstream Yasmarang implementation selected during the build, not an intentional runtime failover from the hardware TRNG. The body also rewords most occurrences of 'fallback' to 'software PRNG implementation' or similar.
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 44 lines
Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc +Updated August 8, 2026 at 10:12 a.m. EDT: Clarified that the phrase +“software fallback” refers to an upstream MicroPython implementation selected +during the build. COLDCARD did not intentionally design a runtime fallback from +its hardware RNG to a weaker source for wallet seed generation. Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a The cryptographic choice was sound. The integration was not. During that migration, wallet seed generation moved from ckcc.rng_bytes() to ngu.random.bytes(). That path resolved rng_get() to MicroPython’s software -fallback instead of COLDCARD’s hardware RNG implementation. +PRNG implementation instead of COLDCARD’s hardware RNG implementation. +What “fallback” means here +Some reports describe the issue as a weak-entropy fallback. That is reasonable +shorthand for the upstream implementation that was selected, but it can imply +an intentional COLDCARD failover that did not exist. The seed-generation path +did not try the hardware TRNG, detect a failure, and then switch to weaker +software at runtime. +MicroPython’s STM32 port provides two compile-time implementations of +rng_get(): a hardware implementation when the hardware RNG feature is +enabled, and a Yasmarang software PRNG for general runtime needs on boards +without that feature. The software implementation was added +upstream in May +It was not created by Coinkite as a cryptographic backup for wallet seed +generation. +COLDCARD’s design intended ngu.random.bytes() to obtain seed entropy through +libNgU from the board-specific hardware TRNG path only. We set +MICROPY_HW_ENABLE_RNG to zero +intending to disable MicroPython’s RNG facility. But libNgU’s +guard +used #ifndef, which tested whether the macro existed rather than whether its +value was nonzero. Because the macro existed with a value of zero, the guard +passed. MicroPython compiled its software rng_get(), and libNgU’s call +resolved to that implementation. +This was a build-integration and symbol-resolution defect, not an intentional +runtime fallback policy. That distinction does not change the risk to affected +seeds; it explains where the failure occurred and what the fixed build now +prevents. The bulk of randomness on the COLDCARD was coming from a PRNG that I didn’t know was actually in the source code base (it is from a that code provided a PRNG with the same function signature as the desired code, the build completed without identifying the wrong implementation. -The MicroPython fallback was +The MicroPython software implementation was introduced upstream in May 2018. It did not enter COLDCARD wallet seed generation until the 2021. The affected Mk2 and Mk3 firmware range is 4.0.1 through 4.1.9. Version 4.2.0 corrects new seed generation. The eight-year figure therefore describes the -age of the upstream fallback code, not the duration of affected COLDCARD seed -generation. +age of the upstream software implementation, not the duration of affected +COLDCARD seed generation. Existing review confirmed that the intended TRNG implementation was present in the firmware binary, but did not verify which rng_get() implementation the wallet seed-generation path actually reached across the two submodules. No The guard used #ifndef, which tests whether MICROPY_HW_ENABLE_RNG is defined, rather than whether its value is nonzero. We defined that macro as zero, so the #error did not stop the build. -The hotfix now explicitly excludes MicroPython’s fallback PRNG object and adds +The hotfix now explicitly excludes MicroPython’s software PRNG object and adds a build-time RNG symbol check. The build fails unless the board-specific object -defines the global rng_get() symbol and the upstream fallback object defines -no symbols. +defines the global rng_get() symbol and the upstream software PRNG object +defines no symbols. Next Steps We have released emergency hotfixes for every affected model and release track:Extracted text as captured
Blog Careers Contact RSS Email Newsletter Store × Home Blog Careers Contact RSS Email Newsletter Store ← Back to posts Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc Updated August 8, 2026 at 10:12 a.m. EDT: Clarified that the phrase “software fallback” refers to an upstream MicroPython implementation selected during the build. COLDCARD did not intentionally design a runtime fallback from its hardware RNG to a weaker source for wallet seed generation. Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a strong, unique BIP-39 passphrase. Fixed firmware is now available for every affected model and release track, including Edge firmware versions 6.6.0X for Mk4/Mk5 and 6.6.0QX for Q. What You Should Do The passphrase must be strong, unique, secret, and separate from the seed backup. A short, common, patterned, quoted, reused, exposed, or uncertain passphrase does not qualify; treat those funds as at risk. Even when a strong passphrase reduces the immediate exposure, it does not repair an affected seed. Unless the independent dice-entropy exception applies, replace the seed and migrate as soon as practical. If your seed was generated on a Mk2 or Mk3 running firmware 4.0.1 through 4.1.9 without at least 50 independent, private dice rolls: Update the Mk2 or Mk3 to firmware version 4.2.0 or later before generating a replacement seed.Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
Coinkite moved the backgrounder's update stamp to August 1, 2026 at 2:35 p.m. EDT and replaced Mk3 with Mk2 or Mk3 throughout: the affected firmware range became 'The affected Mk2 and Mk3 firmware range is 4.0.1 through 4.1.9', the seeded-PRNG analysis became 'On Mk2 and Mk3, the active PRNG was seeded primarily from device and timing state', the hotfix list became 'Version 4.2.0 for Mk2 and Mk3', and the migration steps and the pointer to the dedicated advisory were rewritten the same way.
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 21 lines
Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc -Updated August 1, 2026 at 9:35 a.m. EDT: Funds controlled by seeds generated +Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a strong, unique BIP-39 passphrase. passphrase reduces the immediate exposure, it does not repair an affected seed. Unless the independent dice-entropy exception applies, replace the seed and migrate as soon as practical. -If your seed was generated on a Mk3 running firmware 4.0.1 through 4.1.9 +If your seed was generated on a Mk2 or Mk3 running firmware 4.0.1 through 4.1.9 without at least 50 independent, private dice rolls: -Update the Mk3 to firmware version 4.2.0 or +Update the Mk2 or Mk3 to firmware version 4.2.0 or later before generating a replacement seed. -Generate a completely new seed on the updated Mk3. +Generate a completely new seed on the updated COLDCARD. Record and verify the new backup, wallet fingerprint, and a receive address. Send a small test transaction before moving the remaining funds. Keep the old backup until the migration is complete and confirmed. -Follow the dedicated Mk3 Security Advisory and migration +Follow the dedicated Mk2/Mk3 Security Advisory and migration instructions. Proceed calmly and verify every step. If you added at least 50 fair, independent, private dice rolls when originally submodule, Micropython). At the same time the carefully crafted TRNG code I wrote was being used, but just by chance, and only for less important things. -On Mk3, the active PRNG was seeded primarily from device and timing +On Mk2 and Mk3, the active PRNG was seeded primarily from device and timing state. Under our current attack assumptions, we estimate the effective search space at about 40 bits. This is a preliminary estimate and may change as analysis continues. It did not enter COLDCARD wallet seed generation until the libNgU migration in March 2021. -The affected Mk3 firmware range is 4.0.1 through 4.1.9. Version 4.2.0 corrects -new seed generation. The eight-year figure therefore describes the age of the -upstream fallback code, not the duration of affected COLDCARD seed generation. +The affected Mk2 and Mk3 firmware range is 4.0.1 through 4.1.9. Version 4.2.0 +corrects new seed generation. The eight-year figure therefore describes the +age of the upstream fallback code, not the duration of affected COLDCARD seed +generation. Existing review confirmed that the intended TRNG implementation was present in the firmware binary, but did not verify which rng_get() implementation the wallet seed-generation path actually reached across the two submodules. No Next Steps We have released emergency hotfixes for every affected model and release track: -Version 4.2.0 for Mk3 +Version 4.2.0 for Mk2 and Mk3 Standard version 5.6.0 for Mk4 and Mk5 Standard version 1.5.0Q for Q Edge version 6.6.0X for Mk4 and Mk5, and Edge version 6.6.0QX forExtracted text as captured
Blog Careers Contact RSS Email Newsletter Store × Home Blog Careers Contact RSS Email Newsletter Store ← Back to posts Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc Updated August 1, 2026 at 2:35 p.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a strong, unique BIP-39 passphrase. Fixed firmware is now available for every affected model and release track, including Edge firmware versions 6.6.0X for Mk4/Mk5 and 6.6.0QX for Q. What You Should Do The passphrase must be strong, unique, secret, and separate from the seed backup. A short, common, patterned, quoted, reused, exposed, or uncertain passphrase does not qualify; treat those funds as at risk. Even when a strong passphrase reduces the immediate exposure, it does not repair an affected seed. Unless the independent dice-entropy exception applies, replace the seed and migrate as soon as practical. If your seed was generated on a Mk2 or Mk3 running firmware 4.0.1 through 4.1.9 without at least 50 independent, private dice rolls: Update the Mk2 or Mk3 to firmware version 4.2.0 or later before generating a replacement seed. Generate a completely new seed on the updated COLDCARD. Record and verify the new backup, wallet fingerprint, and a receive address. Send a small test transaction before moving the remaining funds. Keep the old backup until the migration is complete and confirmed.Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
Coinkite replaced the backgrounder's fixed-firmware banner with an August 1 update stating that funds are at risk unless the seed was created with at least 50 independent private dice rolls and the wallet is protected by a strong, unique BIP-39 passphrase, added a paragraph qualifying what counts as such a passphrase, and added a sentence calling the reduced search space a direct security risk rather than a theoretical possibility for wallets meeting neither condition.
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 18 lines
Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc -Updated July 31, 2026 at 12:39 p.m. EDT: Fixed firmware is now available -for every affected model and release track, including Edge firmware versions -6.6.0X for Mk4/Mk5 and 6.6.0QX for Q. +Updated August 1, 2026 at 9:35 a.m. EDT: Funds controlled by seeds generated +on affected firmware are at risk if the seed was created without at least 50 +independent, private dice rolls and the funded wallet is not protected by a +strong, unique BIP-39 passphrase. +Fixed firmware is now available for every affected model and release track, +including Edge firmware versions 6.6.0X for Mk4/Mk5 and 6.6.0QX for Q. What You Should Do +The passphrase must be strong, unique, secret, and separate from the seed +backup. A short, common, patterned, quoted, reused, exposed, or uncertain +passphrase does not qualify; treat those funds as at risk. Even when a strong +passphrase reduces the immediate exposure, it does not repair an affected seed. +Unless the independent dice-entropy exception applies, replace the seed and +migrate as soon as practical. If your seed was generated on a Mk3 running firmware 4.0.1 through 4.1.9 without at least 50 independent, private dice rolls: Update the Mk3 to firmware version 4.2.0 or security issues, and it did not find this bug or anything serious. Both attackers and defenders have the same AI tools, but today it did not help us, and only helped the bad guys. +For funded wallets with neither the independent dice entropy nor a strong, +unique BIP-39 passphrase described above, the reduced search space is a direct +security risk, not a theoretical possibility. Technical Background In 2021, we moved COLDCARD’s elliptic-curve operations to Bitcoin Core’s libsecp256k1, using the same implementation trusted by Bitcoin Core insteadExtracted text as captured
Blog Careers Contact RSS Email Newsletter Store × Home Blog Careers Contact RSS Email Newsletter Store ← Back to posts Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc Updated August 1, 2026 at 9:35 a.m. EDT: Funds controlled by seeds generated on affected firmware are at risk if the seed was created without at least 50 independent, private dice rolls and the funded wallet is not protected by a strong, unique BIP-39 passphrase. Fixed firmware is now available for every affected model and release track, including Edge firmware versions 6.6.0X for Mk4/Mk5 and 6.6.0QX for Q. What You Should Do The passphrase must be strong, unique, secret, and separate from the seed backup. A short, common, patterned, quoted, reused, exposed, or uncertain passphrase does not qualify; treat those funds as at risk. Even when a strong passphrase reduces the immediate exposure, it does not repair an affected seed. Unless the independent dice-entropy exception applies, replace the seed and migrate as soon as practical. If your seed was generated on a Mk3 running firmware 4.0.1 through 4.1.9 without at least 50 independent, private dice rolls: Update the Mk3 to firmware version 4.2.0 or later before generating a replacement seed. Generate a completely new seed on the updated Mk3. Record and verify the new backup, wallet fingerprint, and a receive address. Send a small test transaction before moving the remaining funds. Keep the old backup until the migration is complete and confirmed.Excerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
-
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 0 lines
Extracted text as captured
Blog Careers Contact RSS Email Newsletter Store × Home Blog Careers Contact RSS Email Newsletter Store ← Back to posts Technical Deep Dive into the Entropy Issue Published Jul 30, 2026 Categories: ckcc Updated July 31, 2026 at 12:39 p.m. EDT: Fixed firmware is now available for every affected model and release track, including Edge firmware versions 6.6.0X for Mk4/Mk5 and 6.6.0QX for Q. What You Should Do If your seed was generated on a Mk3 running firmware 4.0.1 through 4.1.9 without at least 50 independent, private dice rolls: Update the Mk3 to firmware version 4.2.0 or later before generating a replacement seed. Generate a completely new seed on the updated Mk3. Record and verify the new backup, wallet fingerprint, and a receive address. Send a small test transaction before moving the remaining funds. Keep the old backup until the migration is complete and confirmed. Follow the dedicated Mk3 Security Advisory and migration instructions. Proceed calmly and verify every step. If you added at least 50 fair, independent, private dice rolls when originally creating the seed, read the dice guidance in the advisory before migrating. We do not consider that seed at risk from this RNG issue alone. If your seed was generated on affected Mk4, Mk5, or Q firmware without at least 50 independent, private dice rolls: Upgrade to the fixed firmware for the release track you use beforeExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
1 presentation-noise difference. Sidebar, ticker and other page chrome churn that our review classified as not being a change to what the source says.
- +3 -2 Only line wrapping around the term PRNG changed in extraction. The source text did not change.
The excerpts and plain unified diffs above show the text this project held and how it changed. To verify a quotation, compare it against the page itself or against the Internet Archive's copies, which are independent of this project.
Complete captures are held offline rather than mirrored here, so this page shows diffs and excerpts. If a quotation is ever disputed, the full copy can be produced. Ask.
Compare the screenshot or a quotation against the original while it is available.