Merge pull request #10965 from SomberNight/202609_header_checkpoints
What changed, and why it matters
This commit only adds new Bitcoin block header checkpoints to Electrum's built-in chain data files. Checkpoints are hardcoded reference points that help the wallet verify it is following the real blockchain and not a fake one. Updating them is a routine maintenance change; it does not fix a software bug and does not introduce new code behavior. It slightly strengthens protection against certain long-range attacks by extending the known-good chain history.
No immediate action required. Treat as routine maintenance. Users should update to a version containing current checkpoints to benefit from the strongest SPV header verification, but the absence of this update does not create a new exploitable vulnerability.
Security signals we found
Hardcoded blockchain checkpoints extended for all supported networks
No executable code or cryptographic logic changed
No bug fix, privilege change, or input validation change present
Routine data update that marginally improves SPV header-chain trust anchoring
Evidence from the diff
The merge commit updates checkpoints.json for mainnet, signet, testnet, and testnet4. Each entry is a [block_hash, bits/work] pair used by Electrum’s simplified payment verification (SPV) header verification. The change is purely data: +276 lines across four JSON files, no executable code modified. Mainnet entries include non-zero work values; testnets use 0 (expected for networks where difficulty reset rules differ). This is a periodic hardening update, not a vulnerability patch.
Changed components
electrum/chains/mainnet/checkpoints.jsonelectrum/chains/signet/checkpoints.jsonelectrum/chains/testnet/checkpoints.jsonelectrum/chains/testnet4/checkpoints.jsonInspect captured patch +276 / −0
### electrum/chains/mainnet/checkpoints.json
@@ -1890,5 +1890,25 @@
[
"00000000000000000001b315e72169bef4867bf780527aa97c625ee9c001dc5d",
215792178253545146775692269235391904135218095902949376
+ ],
+ [
+ "000000000000000000001e045d65f500623f19ae94e1516e08175efe606b04ef",
+ 201386156614374436710958547839307502410469568826834944
+ ],
+ [
+ "00000000000000000001d64ab6a43c427b2c2438a40980308224d3d79f814234",
+ 211995196999759460994199096039995000850151983156297728
+ ],
+ [
+ "0000000000000000000117f7c3cf6648645e969ebdb295ac14061bfa7251cf32",
+ 213572157266439505242940871974495870228360734370168832
+ ],
+ [
+ "00000000000000000000807f9dc917442a67910426d79ebb2f8aa2149327ce8a",
+ 211480748423418983166991398978878869227233094901170176
+ ],
+ [
+ "00000000000000000000d29ee44c13e924c37abcaa80c537609ce70b1fea1f33",
+ 214292677573643640381615288597024997757051109113856000
]
]
\ No newline at end of file
### electrum/chains/signet/checkpoints.json
@@ -610,5 +610,21 @@
[
"0000000fce481bd689af96794ea36ad8e80bc4635f068104aeff53bc17326ecf",
0
+ ],
+ [
+ "000000043f98be9b64e4f667a55ee2c8719ca96d384e1fc33c6331e14d927f5b",
+ 0
+ ],
+ [
+ "0000000ebfc0a433e884accd5659276b371c679856d67422d722b7d40f50ca4a",
+ 0
+ ],
+ [
+ "00000002c743136ac87e406130bef35b62b8bcc8e9f848742f66121069703aa4",
+ 0
+ ],
+ [
+ "00000008e8fedfedb4370fd91bd5e9003b72224da9565ddce09149a7d253fc4a",
+ 0
]
]
\ No newline at end of file
### electrum/chains/testnet/checkpoints.json
@@ -9942,5 +9942,225 @@
[
"000000000000041b511bf0b926371d5045f70bbc30d36b66f1c84ed30d765886",
0
+ ],
+ [
+ "000000000000030bd13af384dc1ea4e2eaa375e976d5544d49ae160c1252e3a7",
+ 0
+ ],
+ [
+ "0000000026494b3068e616f074928b82299a8c5a89d8835ac26dd716bd6e4d40",
+ 0
+ ],
+ [
+ "00000000008889eb2c6e8ef9284bcb7e3713fe6ed38e8170e1010708b1871e86",
+ 0
+ ],
+ [
+ "000000000010b5207fa79afcf3769a10b322610d993485dae7bfbc2ec4488e91",
+ 0
+ ],
+ [
+ "000000000052680f38272b4a8a4f4f624bb86f35914d40aab6e8d704d55c6cb9",
+ 0
+ ],
+ [
+ "000000000086335973780b3d8d191fe501592a571cebcf530ef09bce5aafeb4a",
+ 0
+ ],
+ [
+ "00000000003d37384a311e3da15867c14b1017ae203a73f29c9feedd57737eca",
+ 0
+ ],
+ [
+ "000000000019296e274b209edc1a0532dc6f0a55028cb3fce1886ff1bafc4670",
+ 0
+ ],
+ [
+ "000000000006b784fa861de8931080bf6728b07cbf1edd49d97fc30a2bf9cd49",
+ 0
+ ],
+ [
+ "000000000000ad6372984ff458296f28609179cf2107dfc45f31804ce6b139de",
+ 0
+ ],
+ [
+ "0000000000003850345aab9395d19ce5234ad8ccc881a4c5961b6a5dfd0020c2",
+ 0
+ ],
+ [
+ "000000000000028ca9b82adfb381c2e49abf2519bdc1df6052e5ab1374670d68",
+ 0
+ ],
+ [
+ "0000000079ea13bc6cf3845641c51200b4254dcfc8188330492e91e164592289",
+ 0
+ ],
+ [
+ "00000000002bec30755bda206b4580ff53e77a102c374bb88f310860dfb7430a",
+ 0
+ ],
+ [
+ "0000000000b2f3b729c0228d15dbe86c60add4e79d0385302099766a3b0e5070",
+ 0
+ ],
+ [
+ "000000000029ee2bc4f29647071660cb86b93a968c053dd659e233077f0485a8",
+ 0
+ ],
+ [
+ "000000000065b9ff043fac77ede3e757c5cbe950b794baf026e45e47e2dce41b",
+ 0
+ ],
+ [
+ "00000000001e2c40798066e053b765ec1a16f874bf6a30f4b9c2d87828f7f17b",
+ 0
+ ],
+ [
+ "00000000000942b4376d68da2f327c47373deffba709081a788f76d0471b3737",
+ 0
+ ],
+ [
+ "000000000001e6dd5fda3479ceccca0a3d4e2a4f9999f4cc5f0aa485fe5762e7",
+ 0
+ ],
+ [
+ "000000000000321ce1a8bd019ba9960888e79b9852f6284508a31422f1e209be",
+ 0
+ ],
+ [
+ "000000000000209ee1c2fce9f811a0a90bcad73d67df886ccb44cffd12dde3a0",
+ 0
+ ],
+ [
+ "000000000000002fa123aeb22833e463ce2119eb767adcea6d62be0cff3ba7b3",
+ 0
+ ],
+ [
+ "0000000000000353dd53198bc520ce15f8f47e9e63d1fc858eb1ba68a81a6e3b",
+ 0
+ ],
+ [
+ "00000000fb7caedb79746a0e5c87e67a6b1376d5f7b8378406df9e1864ffe08a",
+ 0
+ ],
+ [
+ "00000000006f8412657d5ca0d758720e63c9cd5df13a6511bf486d77fe087ec3",
+ 0
+ ],
+ [
+ "000000000bb2a9f5c924fd1ed4cb388d28876ac9abe86bf232972f9abca38df8",
+ 0
+ ],
+ [
+ "000000000004271e67ec40c86e67e5d587221c53bc25b679dd3c0546191f4c9e",
+ 0
+ ],
+ [
+ "000000000005045b653e0f0caf913c60285dcb4fcb81d7db397cbef2e91fb305",
+ 0
+ ],
+ [
+ "0000000000473d5e924d37f0607d3531f361beff389a878cc06f4b37538ae0be",
+ 0
+ ],
+ [
+ "000000000000089512e3ebaf9f0baef308969078ab9bb4860617f659c7fa9349",
+ 0
+ ],
+ [
+ "00000000000035b5ea88f263c0623d68bc970ed08f17384665e1d4b30ee4849f",
+ 0
+ ],
+ [
+ "000000000001a0ed1630a1f7459603b234657c786450fbe13ccbeb50f1233335",
+ 0
+ ],
+ [
+ "000000000000120025279e745adaa0b1ba4703e1866106843c9cbcec3a33191f",
+ 0
+ ],
+ [
+ "000000000000076b997b2edea419cd1db3ddf736aba3c2c0d3ce03690b78522a",
+ 0
+ ],
+ [
+ "00000000000ae879642d8aed9ac81aef93aa2baca18991283a4861de78907683",
+ 0
+ ],
+ [
+ "00000000004e42397e1c952dd88f24f71769a48ab4abbdfa79131f0312d7df69",
+ 0
+ ],
+ [
+ "000000000011d657801bb748d06d1828337caf7e001dfcaa1d2aac0067624d9b",
+ 0
+ ],
+ [
+ "0000000000a16bfef8235365b3a0d06c47e3f97131885a6ee0d61e817801c7e1",
+ 0
+ ],
+ [
+ "0000000000f66519465da296d324e8687a6c794bff46f71cabc7152b36c7b25d",
+ 0
+ ],
+ [
+ "00000000003a8df1f88af7cfe038587d2bf561175e5fee1464fe1c58a2fa40a9",
+ 0
+ ],
+ [
+ "00000000000155b0fe2069846b86d3877b5188d0cd8a729b3cdb1dd8732a7d9d",
+ 0
+ ],
+ [
+ "00000000000637d202fcd87c5882a629fa027e6742d580cd9c691fcf686094a7",
+ 0
+ ],
+ [
+ "000000000000ecb25d6dea8a203b0d1ec0fa6083f5efc306986348cacf5d5e83",
+ 0
+ ],
+ [
+ "00000000000052dc5658b1ff470cd6a4328f76db29a0061a0fd4213413c0573b",
+ 0
+ ],
+ [
+ "00000000000015f427fefb57c26da54836c01e267dc6dbbc6f6b8a08ef0e0836",
+ 0
+ ],
+ [
+ "000000000065bff015d9716931cf07d2ea0255c65c46afe8c067b49894680d45",
+ 0
+ ],
+ [
+ "0000000000deaca10540c70a9f68f64573c096f4ceb1b753a8cea7062eafdf83",
+ 0
+ ],
+ [
+ "000000000062b6a1ce8344d0d67ba48393ed1ed1064d6442b2d74f4e734782e6",
+ 0
+ ],
+ [
+ "0000000000611495992f373e7b27d443925c45b61438749592b7386739f73fcc",
+ 0
+ ],
+ [
+ "0000000000a4bc37deae701a21e8932f72f8f39f18694f56f72c76b3f8f1809d",
+ 0
+ ],
+ [
+ "00000000001cbf19a163ede9f49705bf8f342bc05a2f9b0da19b44813d78a9ad",
+ 0
+ ],
+ [
+ "00000000001a2e2684f3951f083b753df5078144fac4384948699d6bd6f5d1de",
+ 0
+ ],
+ [
+ "00000000000663fcb08255ec25caed5fc46de11f4dba7c746a922abc2f25d8f5",
+ 0
+ ],
+ [
+ "0000000000015232ba4fb9d3098ada414854603f205447bcfb03411f0f061bdd",
+ 0
]
]
\ No newline at end of file
### electrum/chains/testnet4/checkpoints.json
@@ -274,5 +274,25 @@
[
"000000000001fa52cf7346a418640560743e051f8096a21ca452f3569bfe4f9e",
0
+ ],
+ [
+ "00000000004429ff89ac61afddc3bef227668d3b60248b19484702147a1a2eee",
+ 0
+ ],
+ [
+ "00000000004875f7099851b41029ce5645984218777cb4957d0a206e9fa0c590",
+ 0
+ ],
+ [
+ "0000000000000001d43142ffa5f38b2a2530a672f7d49b58369f97777d5688ea",
+ 0
+ ],
+ [
+ "0000000000017069c1a3700160dbec43f7ec357cdb86fc54a98701ddcebebb07",
+ 0
+ ],
+ [
+ "00000000007899e1a91526d0258948b023f565a35fe0b0d2f9c898a39906495b",
+ 0
]
]
\ No newline at end of fileWhy this scored 21/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.