File: RELEASE-NOTES

package info (click to toggle)
electrum 4.7.0%2Bdfsg2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 28,500 kB
  • sloc: python: 109,192; sh: 1,487; java: 335; xml: 51; makefile: 31
file content (2464 lines) | stat: -rw-r--r-- 114,951 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
# Release 4.7.0 (Jan 22, 2026)
 * Qt GUI (desktop):
   - new: "Submarine Payments": support reverse swaps to external address (#10303)
          Allows doing onchain payments from the wallet's lightning balance.
   - changed: flag console usage in crash reports (#10219)
   - changed: add "Tools" text to the tools button for increased visibility (#10277)
   - changed: improved UI feedback for send change to lightning function (#10247)
   - fix: improve Network Tab behavior when switching connection mode (#10280)
   - fix: re-add fiat values to csv/json history export (#10209)
   - fix: not proposing tx batching in some cases (#10204)
 * QML GUI & Android:
   - new: allow manual editing of fee/feerate (#10371)
          This also allows sending sub-1 sat/b transactions on Android.
   - new: support biometric authentication (#10340)
          Allows using the Android system lockscreen (e.g. fingerprints)
          to unlock the wallet and authorize payments.
          The previous optional built-in PIN code authentication is removed.
   - changed: make UI compatible with edge-to-edge layout (#10178)
   - changed: fee histogram colors: extend color palette to cover sub-1 s/b (#10307)
   - changed: enforce the usage of a single password for all wallet files (#10345)
   - changed: allow tap-to-focus in the qr code scanner (#10385)
   - fix: allow opening passwordless wallets (#10423)
   - fix: also protect address private keys from screenshots (#10426)
 * Lightning:
   - new: support LNURL-withdraw/LUD-3 (#9993)
          Allows scanning QR codes to receive funds on lightning (e.g. ATMs, vouchers).
   - changed: refactor handling of incoming htlcs (#10230)
   - changed: collect htlcs failed back to us before re-splitting (#10274)
   - fix: allow spending channel reserve if anchor channels are closed but not redeemed (2d17252)
   - fix: logic bug in liquidity hint calculation (#10305)
   - fix: race resulting in "Not enough balance" error when doing concurrent payments (#10325)
   - fix: self payments (and rebalance function) (#10271)
   - fix: gossip exchange with Core Lightning nodes (#10347)
   - fix: only wait for pending htlcs to get removed if peer is connected (1845143)
 * Electrum protocol:
   - new: add support for Electrum Protocol version 1.6 (#10295)
          See https://electrum-protocol.readthedocs.io/en/latest/protocol-changes.html#version-1-6
          Min required version is still 1.4.
   - changed: prevent connecting to server with different genesis hash (#10281)
   - changed: add warmup budget before batching server rpc calls for faster startup (#10281)
   - changed: optimistically guess scripthash status on new blocks to reduce network traffic
              and improve privacy (#10290)
   - fix: flush network buffer before disconnecting from server (6423323)
 * Onchain / Wallet:
   - changed: non-SPV verified transactions now considered unconfirmed (#10216)
   - changed: always enforce dnssec validation for Openalias (#10349)
 * Submarine swaps:
   - new: cli commands to get swap statistics for swapserver operators (#10198):
          'swapserver_get_history' and 'swapserver_get_summary'
 * CLI/RPC:
   - new: add 'export_lightning_preimage' command (#10242)
   - changed: return lightning preimage from 'check_hold_invoice' command (#10242)
   - changed: 'add_peer' now blocks until the connection is established (#10283)
   - changed: 'version_info' now shows OpenSSL version (828fc56)
   - fix: print warnings to stderr so output is still valid json (7bfe2dd)
   - fix: imply enabled proxy when starting with proxy cli option (#10326)
 * Plugins:
   - changed: plugins can now use existing cli command names without colliding with builtin commands (9c4c7f0)
   - changed: Timelock Recovery: check if locking address is ours or script (#10272)
   - removed: payserver plugin, now an external plugin, moved to spesmilo/electrum-payserver (d36b753)
 * Hardware wallets:
   - Coldcard: fix: compatibility with ckcc-protocol v1.5.0 (2172dad)
 * Contrib:
   - new: add README to scripts/ directory (5a14a58)
 * Dependencies:
   - changed: bump min required electrum-aionostr to 0.1.0 (e188102)
 * Builds/binaries:
   - Android:
     - new: support 16kb page size (#10148)
     - changed: bump Android target SDK version to 35 (#10178)
     - changed: bump OpenSSL from 1.1.1w to 3.0.18 (#10332)
     - changed: switch from cryptography to pycryptodomex (#10332)
     - changed: bump python version from 3.10.18 to 3.11.14 (#10388)
   - AppImage:
     - changed: migrate AppImage build to use modern/maintained appimagetool (#10019)


# Release 4.6.2 (Aug 25, 2025)
 * General:
   - changed: minrelayfee clamps from [1, 50] to [0.1, 50] sat/vbyte (#10096)
   - new: add support for "mutinynet" signet test network (#10134)
   - new: network: don't request same tx from server that we just broadcast to it (#10111)
   - new: logging: add config.LOGS_MAX_TOTAL_SIZE_BYTES: to limit size on disk (#10159)
 * QML GUI (Android):
   - fix: cannot open keystore-encryption-only wallets (#10171)
   - fix: wizard: restoring from seed broken if already opened a wallet (#10117)
   - fix: handle invoice validation errors on save (#10122)
   - fix: sweep: handle network errors gracefully (#10108)
   - fix: sweep: handle unexpected script_types (#10145)
 * Qt GUI (desktop):
   - fix: wizard: hardware device: handle missing xpub (#10109)
   - fix: wizard: enable-keystore for bip39 seeds and hw devices (#10123)
 * Lightning:
   - fix: slow down peers sending too much gossip, and other rate-limits (#10153)
 * Submarine swaps: several bug fixes and improved reliability.
 * CLI/RPC:
   - changed: onchain_history: add back from_height/to_height params (#10119)
   - changed: reverse_swap: new mandatory parameter 'prepayment' (#10165)
   - new: get_submarine_swap_providers: added command to fetch swap providers (#10158)
 * Plugins:
   - Nostr Cosigner: fix: don't allow saving tx without txid (#10128)


# Release 4.6.1 (Aug 5, 2025)
 * QML GUI (Android):
   - fix: QR scanner crashes due to null/orphaned View in hierarchy (#10071)
   - fix: creating a tx with a pre-segwit watchonly wallet (#10042)
 * CLI/RPC:
   - fix several bugs related to new hold_invoice APIs. This required
     minor breaking changes in the new APIs. (#10059, #10082)
   - add max_cltv, max_fee_msat parameters to lnpay command (#10067)
 * Hardware wallets:
   - bitbox02: bump required and bundled library to 7.0.0 (#10040)
     This should add support for the new BitBox02 "Nova" devices.
 * General:
   - rework crash reporter (#10052)
     - show additional confirmation popup on clicking "Send"
     - remove the "Never" button and the corresponding config option.
       The crash reporter is now always shown on uncaught exceptions.
       This unifies some code paths: the crash-reporter-disabled case
       was untested and buggy.
     - don't show reporter multiple times for the "same" exception
   - new: network: parallelize block-header-chunks downloads (#10033)
 * Lightning:
   - wallet: don't spend reserve utxo to create new reserve utxo (#10091)
 * various UI fixes (#10060, #10062, #10081, ...)


# Release 4.6.0 (July 16, 2025)
 * A 'Terms of Use' screen was added to the install wizard. While the
   licence remains unchanged, we ask users to agree with the fact that
   we are not a custodial service or a money transmitter. The Terms of
   Use screen also makes it clear that all issues are to be resolved
   in public, and that there is no user support via private channels.
 * Nostr support: (using new dependency: electrum-aionostr)
   Electrum now uses Nostr in the context of submarine swaps,
   and in several plugins. Electrum will not connect to Nostr
   by default, only if required.
 * Submarine swaps over Nostr: The Electrum client will connect to
   Nostr in order to discover submarine swap providers, and to perform
   related RPCs. This means that:
    - Anyone can become a swap provider (you need to run an Electrum
      daemon with the 'swapserver' plugin). Submarine swap providers
      advertise their fees and their liquidity on Nostr.
      See https://electrum.readthedocs.io/en/latest/swapserver.html
      for set-up documentation.
    - Submarine swap providers do not need to provide an HTTP
      endpoint, since RPCs are performed via Nostr. They also do not
      need to have public lightning channels.
    - Because a decentralized service needs to be trustless, the
      option to perform zero-confirmation swaps has been removed from
      Electrum.
    Note that Electrum connections to Nostr relays are only initiated
    when the user uses the swap service, and the nostr public key used
    by the client is ephemeral. In contrast, swap providers use a
    persisted identity.
 * Third-party plugins:
   - Electrum supports the installation of plugins distributed by
     third-parties as ZIP files. While it has long been possible to
     install third-party plugins when running Electrum from python
     sources, the same is now possible when using desktop binaries
     (Windows, MacOS, Linux). Third-party plugins are installed as ZIP
     files in the user's electrum data directory.
   - In order to prevent plugin installation by malware, third-party
     plugins can only be enabled if the user enters a plugin
     authorization password (distinct from the wallet password).
     Setting up that plugin authorization password requires
     administrator permissions on the local machine; a
     password-derived public key must be written in the system.
 * Lightning:
   - Anchor channels (#9264): Newly created channels use
       anchor commitments by default. Since sweeping outputs from anchor
       channels may require external UTXOs, lightning can no longer be
       enabled in wallets that do not have a software keystore (hardware
       wallets, watching-only wallets).  Existing wallets that are in that
       situation cannot create new channels.
   - wallets with anchor channels must always have utxos available (#9536)
   - support added for onion messages (only CLI for now) (#9039)
   - lots of fixes and improvements (#8857, #8547, #9700, #9083, ...)
 * Qt Desktop GUI:
   - migrate from Qt5 to Qt6 (#9189)
   - new: screenshot "protection" on Windows (#9898). Inspired by Windows
     Recall, by default screenshots will contain black rectangles in
     place of the Electrum windows, to try to avoid leaking secret keys.
     This is opt-out using a config variable.
   - exposed option to connect to only a single server (--oneserver)
   - Wallet file encryption:
     - Non-multisig hardware wallet files can now be encrypted with
       either using the hardware device or (new) a password. (#5561)
     - The option to have a password-protected wallet without file
       encryption has been removed from the Qt GUI. It is still possible
       to create such a wallet using the command line.
   - Wallet unlocking:
     - Wallets can be unlocked in the Qt GUI. When a password-protected
       wallet is unlocked, its password is kept in memory, and signing
       transactions will not require to enter the password. The unlocked
       state is rendered by the 'open lock' icon in the status bar.
     - If a wallet needs to sweep anchor channel outputs using extra
       UTXOs, the operations will be performed without requiring the
       user password if the wallet is unlocked. If the wallet is locked,
       the status bar will show a 'password required' button.
   - Transaction batching: When creating a new payment, if the
     output can be added to an existing mempool transaction, the 'New
     transaction' window will show a drop-down menu, proposing a list of
     transactions that can be batched with the current payment. This
     replaces the previous 'batch' option checkbox, and gives more
     control to the user.
   - Keystore enabling/disabling (Qt):
     - It is now possible to add a seed
       to an existing watching-only wallet, or to a keystore within a
       multisig wallet. Similarly, it is possible to pair a watching-only
       keystore with a hardware device. These operations are performed
       from the 'Wallet Information' dialog.
   - Lightning address contacts:
     - It is now possible to create contacts with (lnurl type) lightning
       addresses as payment identifier.
   - show warnings on wallet close if there are sensitive pending operations,
     e.g. when in the middle of doing a swap (#9715)
   - some performance improvements for large wallets (#9958, #9967, #9968)
   - qr-reader: macos: add runtime requesting of camera permission (#9955)
 * Accounting rules: In order to properly handle on-chain transactions
   created by lightning channel force closures, we consider that funds
   successfully redeemed from a script with several possible
   recipients have never left the final recipient's wallet. This
   avoids having to write balance changes that are cancelled
   later. The corresponding addresses are rendered in the GUI as
   'accounting addresses' (in orange).
 * New plugins:
   - Nostr Wallet Connect: This plugin allows remote control of
     Electrum lightning wallets via Nostr NIP-47. (#9675)
   - Nostr Cosigner: This plugin facilitates the exchange of
     PSBTs between cosigners of a multisig wallet. It replaces the
     former 'Cosigner pool' plugin. Instead of relying on a central
     server, it uses Nostr to send/receive PSBTs. (#9261)
   - Timelock Recovery: A timelock based inheritance scheme.
     See timelockrecovery.com (#9589)
 * CLI:
   - The command line help has been improved; parameters are
     documented in the same docstring as the command they belong to.
   - If the --wallet parameter passed to a command is a simple filename,
     it is now interpreted as relative to the users wallets directory,
     rather than to the current working directory.
   - Plugins may add extra commands to the CLI. Plugin commands must
     be prefixed with the plugin's internal name.
   - Support for hold invoices.
   - new commands:
     - listconfig, helpconfig, unsetconfig
     - onchain_capital_gains (was previously a field of onchain_history)
     - {add,settle,cancel,check}_hold_invoice
     - send_onion_message, get_blinded_path_via
     - wait_for_sync
 * General:
   - Mitigate against dust attacks; Add option to avoid spending from
     used addresses. (#9636)
   - Restrict process memory access on Linux. (#9749)
   - locale: syntax-check i18n translations at runtime. Malformed translation
     strings are now less likely to cause errors: instead we fallback to the
     original English string (#10011)
   - fix: would sometimes hang on startup if system clock jumped backwards (#9802)
 * QML GUI (Android):
   - "Sweep key" feature ported to mobile
   - Estimate amount when Max is checked
   - exposed option to connect to only a single server (--oneserver)
 * Android:
   - replace QR code scanning library to make scanning fun again (#9983)
   - properly ask for (notification) OS permission access. (#9682)
   - add option to prevent the app touching the screen brightness (#9321)
 * Electrum protocol: add padding and some noise to messages (#9875)
 * Hardware wallets:
   - Coldcard: add feature to upload multisig wallet configuration to Coldcard via USB.
   - KeepKey: we now vendor our fork of keepkeylib,
       instead of using the unmaintained upstream as an external dependency (#9650)
   - Ledger:
     - rm support for "HW.1" and "Nano" (non-S) devices (#9652)
     - rm dependency: btchip-python (#9370)
 * Builds/binaries:
   - new minimum OS requirements:
     - Windows: x86_64, Windows 10 (1809)
         note: 32-bit Windows is no longer supported.
     - macOS: 11 "Big Sur"
     - Linux AppImage: x86_64, glibc 2.31 ("debian 11"-equivalent)
 * Dependencies:
   - the minimum required python version was increased: 3.8->3.10 (#9418)
   - new first-party dep: electrum-aionostr
     - forked the seemingly unmaintained davestgermain/aionostr library
   - new first-party dep: electrum-ecc
     - split out our existing libsecp256k1 python bindings into
       this separate package


# Release 4.5.8 (Oct 23, 2024)
 * Qt Desktop GUI:
   - fix: regression: bump_fee and dscancel dialogs erroring (#9273)


# Release 4.5.7 (Oct 21, 2024)
 * General:
   - new: add new historical exchange rate providers: Bitfinex and Bitstamp
   - fix: wizard regression: 2fa wallet setup erroring (#9253)
   - fix: python 3.13 compat: could not connect to some self-signed electrum
     servers with weird TLS certs. As workaround, set pre-3.13 behaviour (#9258)
 * Lightning:
   - fix: send update_fee right away after channel_reestablish (3a465593)
     This fixes a race that can result in a force-closure if we try sending
     a payment very soon after reestablishing the channel.
 * Qt Desktop GUI:
   - fix: show fee warnings also in the transaction dialog (c4fe2796)


# Release 4.5.6 (Oct 16, 2024)
 * General:
   - new: add support for testnet4 (#9197)
   - fix: wizard: allow passphrase for some '2fa' seeds (#9088)
   - fix: trustedcoin wallet wizard continuation if file has keystore-only encryption (#9237)
   - fix: trustedcoin: sanitize error messages coming from 2fa server
   - fix: new wizard did not set keystore password if storage was not encrypted (#9147)
   - changed: set stricter UNIX permissions for log files (fa8595b1)
 * QML GUI (Android):
   - new: show seed passphrase in WalletDetails (#9204)
   - new: set max screen brightness when displaying QR codes (79c08536)
   - fix: crash due to ConcurrentModificationException (450b9a0)
   - fix: issue deactivating PIN when no wallet loaded (#8366)
   - fix: only allow Channel Backup import on Lightning-enabled wallets (8d9bcda)
 * Qt Desktop GUI:
   - fix: scanning multi (privkeys, addresses) from QR (4dc64e4)
 * Hardware wallets:
   - ColdCard: new: export multisig wallet to coldcard over USB (#7682)
   - Trezor:
     - new: add support for new device "Safe 5" (#9171)
     - update: fix compat with and bump pinned library to 0.13.9 (#9141)
   - Ledger:
     - new: add support for new device "Flex" (#9179)
     - update: bump pinned library to 0.3.0, raise max lib to <0.4 (719292f8)
   - Jade: update: bump library to 1.0.31 (9a84bb32)
 * CLI/RPC:
   - changed: require wallet password for lnpay and similar commands (#9236)
     (This is in addition to the wallet needing to be loaded,
     and requiring read access to the config file)
 * Builds/binaries:
   - changed: include unit tests in tarballs (#9207)
   - android:
     - changed: set target_sdk_version to 34 (2917fde5)
     - update: bump python version (3.8->3.10) (08127a60)
     - work towards F-Droid inclusion:
       - reproducible apks: strip file path prefix from .pyc files (6ebdbf04)
       - add fastlane metadata for f-droid (#9211)
       - change versionCode calculation (#9221)
       - build.gradle: set android.dependenciesInfo.includeInApk=false (af18df10)
       - contrib/release_www.sh: put android versionCode in "version" file (#9233)


# Release 4.5.5 (May 30, 2024)
 * General:
   - fix: timeout error shadowed by aiorpcx cancellation bug (#8954)
   - changed: Fiat exchange rates: do not overwrite the locally saved historical
     data. Instead, merge old and new data (a2fb70d6). This also ~fixes the
     CoinGecko historical API by only asking for the last 365 days.
   - update: support latest revision of SLIP-39 mnemonic spec (to restore) (#9059)
 * Lightning:
   - new: unify max fee bounds for payments, make it configurable (#9041)
   - changed: trampoline fees: instead of hardcoded list, use
     exponential search, capped by configurable budget (#9033)
   - fix: opening new channels with peer that has .onion address (#9002)
 * Dependencies:
   - remove bitstring (#9020)
 * QML GUI (Android):
   - new: add tx options to ConfirmTxDialog, RbfBumpFeeDialog (#8909)
   - various UI fixes (#9018, 472a65eb)
 * Qt Desktop GUI:
   - fix: save notes whenever modified (#8951)
   - fix: offline 2fa wallet creation failing in some cases (#9037)
   - various UI fixes (#8962, #8874, #9012, 1047200a, #9058)
 * Hardware wallets:
   - Bitbox02: fix: call pairing dialog when necessary (#8971)
   - Jade: update: bump library to 1.0.29 (#9007)
 * Binaries:
   - new: add AppArmor profiles for tarball and AppImage (#9003)


# Release 4.5.4 (March 14, 2024)
 * General:
    - fix: failing WalletDB upgrade(58) in 4.5.3 (#8913), for wallets with
      partial txs saved into the history as local txs
 * Lightning:
   - changed: use longer final_cltv_delta for client-normal-swap, to
     give more time for user to come back online while doing the swap (#8940)
   - changed: create trampoline onions even when directly paying
     a trampoline forwarder node (777c2ffb)
 * Hardware wallets:
   - Trezor:
     - fix: allow adding SLIP-19 ownership proofs to complete inputs (#8910)
 * Plugins:
   - fix: a race in swapserver when handling server-normal-swaps (#8825)


# Release 4.5.3 (February 23, 2024)
 * General:
   - changed: label tx sizes as "vbytes", and feerates as "sat/vbyte" (#8864)
   - fix: wizard regression not able to use HWW as cosigner for new wallets (643fbec)
   - fix: onchain invoice paid detection broken if jsonpatch enabled (#8842)
   - fix: program not starting because of bad "proxy" config value (#8837)
   - fix: wizard: don't log sensitive values: replace blacklist with whitelist (638fdf11)
 * Qt Desktop GUI:
   - new: basic "add server as bookmark" functionality (#8865)
   - fix: potential race condition in wizard page construction (c78a90a)
   - fix: don't use lightning invoice when user specifies MAX amount (#8900)
   - various UI fixes (#8874, 2882c4b, #8889, 66af6e6)
 * QML GUI (Android):
   - fix potential concurrency issue loading wallet (#8355)
   - fix: wizard: fails to restore from 2fa seed: KeyError: 'x1' (#8861)
   - various UI fixes (50a53aa, 0a6b2d5, #8782, 6738e1e, c0b8927, 016e500, #8898)
 * Hardware wallets:
   - Trezor:
     - new: support SLIP-19 ownership proofs, for trezor-based Standard_Wallets (#8871)
     - fix: regression in sign_transaction for trezor one for multisig (#8813)
 * CLI/RPC:
   - changed: nicer error messages and error-passing (#8888)
 * Lightning:
   - fix: timing issue in lnpeer.reestablish_channel, for replaying unacked updates (79d88dcb)


# Release 4.5.2 (January 20, 2024)
 * Qt Desktop GUI:
   - fix crash during startup/wizard-open (#8833)


# Release 4.5.1 (January 19, 2024)
 * Lightning:
   - fix: MPP regression when using gossip that made paying small invoices fail (95c55c542)
   - fix: better handle dataloss (#8814)
     - allow manually requesting force-close in WE_ARE_TOXIC state
     - fix some timing issues
 * General:
   - localization: never translate CLI/RPC (0e5a1380)
   - localization: simplify how default language is chosen (0e5a1380)
 * QML GUI (Android):
   - bump min required android version from android 5.0 to 6.0 (#8761)
     (older versions have not been working in practice since at least 4.4.0)
   - properly refresh history if addresses are deleted from imported wallets (#8782)
   - fix crash when LNURLp is scanned/pasted (#8822)
   - fix crash for new wallets having cosigner using hww #8808)
   - fix crash in finalizer when txid is undefined (#8807)
   - various UI fixes (291f0ce, 3d9996a, ec81f00)
 * Qt Desktop GUI:
   - also support unfinished wallets when opened through File>Open (#8809)
   - fix handler for OpenFileEventFilter (6a28ef5)


# Release 4.5.0 (January 12, 2024)
 * General:
   - remove SSL options from config (012ce1c)
   - make number of logfiles to keep configurable (5e8b14f)
   - refactored SimpleConfig and added ConfigVars (#8454)
   - incremental writes of wallet file (#8493)
   - add warnings and prompt users when signing txs with non-default sighashes (#8687)
   - refactored bip21/bolt11/lnurl/etc-handling into PaymentIdentifiers (#8462)
   - add option to merge duplicate outputs (#8474)
   - fix: consider bip21 URIs as invalid if they contain unknown req-* param (#8781)
 * Lightning:
   - fix BOLT-04 "MUST set `short_channel_id` to the `short_channel_id` used by the incoming onion" (ca93af2)
   - add support for hold invoices (1acf426)
   - add support for bundled payments (c4eb7d8)
   - various MPP improvements (#7987, ..)
   - support large channels (40f2087)
   - new flow for normal submarine swaps (fd10ae3)
     - the client now uses hold invoices, just like the server
     - the client waits until HTLCs are received before going on-chain
     - the user may cancel the swaps during that waiting time
   - don't create invoice with duplicate route hints (a3997f8)
   - don't set channel OPEN before channel_ready has been both sent and received (#8641)
   - if trampoline is enabled, do not add non-trampoline nodes to invoices (120faa4)
 * QML GUI (Android):
   - port to Qt6 (#8545)
   - fix regression for lnurl-pay (#8585)
   - fix invoice amount bounds check (#8582)
   - fix places where text was rendered off-screen for certain translations (#8611)
   - fix lnworker undefined when node alias requested (#8635)
   - fix BIP39 cosigner script type must be same as primary (8cd95f1)
   - fix: never use current fiat exchange rate for old historical amounts (#8788)
   - better handle android back-gesture (#8464)
   - new: show private key in address details (016b5eb)
   - new: show tx inputs in TxDetails and other dialogs (#8772)
   - new: label sync plugin toggle (b6863b4)
   - fix: properly suggest paying BOLT11 invoice onchain if insufficient balance (0a80460)
   - new: message sign & verify (e5e1e46)
   - new: allow never expiring payment requests (#8631)
   - new: add coins/UTXOs to addresses list, add filters (cf91d2e)
   - new: delete addresses from imported wallet (#8675)
   - new: add support for lightning address and openalias (03dd38b)
   - new: add setting to allow screenshots everywhere (0dae1733)
   - simplify welcome page for first-start network settings (#8737)
   - various UI fixes (b846eab, #8634, 9ed5f7b, 941f425, b20a4b9, af61b9d, 0fb47c8, 2995bc8, ..)
 * Qt Desktop GUI:
   - port wizard to new implementation
   - fix fiat balance sorting in address list window (#8469, #8478)
   - remove thousands separator when copying numbers to clipboard (#8479)
   - new: option to use extra trampoline for legacy payments (b2053c6)
   - new: send change to lightning option for on-chain payments (649ce97)
   - new: notes tab for saving text in the (encrypted) wallet file (d691aa07)
   - simplify welcome page for first-start network settings (#8737)
   - various UI fixes (#8587, #6526, ..)
 * Hardware wallets:
   - Trezor: allow multiple change outputs (#3920)
   - Trezor: support external pre-signed inputs (#8324)
   - Bitbox02: update to 6.2.0 (#8459)
 * Plugins:
   - new: swapserver plugin (#8489)
 * Builds/binaries:
   - update bundled zbar, for security fixes (#8805)


# Release 4.4.6 (August 18, 2023) (security update)
 * Lightning:
   - security fix: multiple lightning-related security issues have
     been fixed. See disclosures:
     - https://github.com/spesmilo/electrum/security/advisories/GHSA-9gpc-prj9-89x7
     - https://github.com/spesmilo/electrum/security/advisories/GHSA-8r85-vp7r-hjxf
   - fix: cannot sweep from channel after local-force-close, if using
     imported channel backup (#8536). Fixing this required adding a
     new field (local_payment_pubkey) to the channel backup
     import/export format and bumping its version number
     (v0->v1). Both v0 and v1 can be imported, and we only export v1
     backups. When you force close a channel, the GUI will prompt you
     to save a backup. In that case, you must export the backup using
     the updated Electrum, and not rely on a backup made with an older
     release of Electrum.  Note that if you request a force close from
     the remote node or co-op close, you do not need to save a channel
     backup.
   - fix: we would sometimes attempt sending MPP even if not supported
     by the invoice (2cf6173c)
 * QML GUI:
   - fix lnurl-pay when config.BTC_AMOUNTS_ADD_THOUSANDS_SEP is True
     (5b4df759)
 * Hardware wallets:
   - Trezor: support longer than 9 character PIN codes (#8526)
   - Jade: support more custom-built DIY Jade devices (#8546)
 * Builds/binaries:
   - include AppStream metainfo.xml in tarballs (#8501)
 * fix: exceptions in some callbacks got lost and not logged (3e6580b9)


# Release 4.4.5 (June 20, 2023)
 * Hardware wallets:
   - jade: fix regression in sign_transaction (#8463)
 * Lightning:
   - fix "rebalance_channels" function (#8468)
 * enforce that we run with python asserts enabled,
   regardless of platform (d1c88108)


# Release 4.4.4 (May 31, 2023)
 * QML GUI:
   - fix creating multisig wallets involving BIP39 seeds (#8432)
   - fix "cannot scroll to open a lightning channel" (#8446)
   - wizard: "confirm seed" screen to normalize whitespaces (#8442)
   - fix assert on address details screen (#8420)
 * Qt GUI:
   - better handle some expected errors in SwapDialog (#8430)
 * libsecp256k1: bump bundled version to 0.3.2 (10574bb1)


# Release 4.4.3 (May 11, 2023)
 * Intentionally break multisig wallets that have heterogeneous master
   keys. Versions 4.4.0 to 4.4.2 of Electrum for Android did not check
   that master keys used the same script type. This may have resulted
   in the creation of multisig wallets that cannot be spent from
   with any existing version of Electrum. It is not sure whether any
   users are affected by this; if there are any, we will publish
   instructions on how to spend those coins (#8417, #8418).
 * Qt GUI:
   - handle expected errors in DSCancelDialog (#8390)
   - persist addresses tab toolbar "show/hide" state (b40a608b)
 * QML GUI:
   - implement bip39 account detection (0e0c7980)
   - add share toolbutton for outputs in TxDetails (#8410)
 * Hardware wallets:
   - Ledger:
     - fix old bitcoin app support (<2.1): "no sig for ..." (#8365)
     - bump req ledger-bitcoin (0.2.0+), adapt to API change (30204991)
 * Lightning:
   - limit max feature bit we accept to 10_000 (#8403)
   - do not disconnect on "warning" messages (6fade55d)
 * fix wallet.get_tx_parents for chain of unconf txs (#8391)
 * locale: translate more strings when using "default" lang (a0c43573)
 * wallet: persist frozen state of addresses to disk right away (#8389)


# Release 4.4.2 (May 4, 2023)
 * Qt GUI:
   - fix undefined var check in swap_dialog (#8341)
   - really fix "recursion depth exceeded" for utxo privacy analysis (#8315)
 * QML GUI:
   - fix signing txs for 2fa wallets (#8368)
   - fix for wallets with encrypted-keystore but unencrypted-storage (#8374)
   - properly delete wizard components after use (#8357)
   - avoid entering loadWallet if daemon is already busy loading (#8355)
   - no auto capitalization on import and master key text fields (5600375d)
   - remove Qt virtual keyboard and add Seedkeyboard for seed entry (#8371, #8352)
   - add runtime toggling of android SECURE_FLAG, to allow screenshots (#8351)
   - restrict cases where server is shown "lagging" (53d61c01)
 * fix hardened char "h" vs "'" needed for some hw wallets (#8364, 499f5153)
 * fix digitalbitbox(1) support (22b8c4e3)
 * fix wrong type for "history_rates" config option (#8367)
 * fix issues with wallet.get_tx_parents (a1bfea61, 56fa8325)


# Release 4.4.1 (April 27, 2023)
 * Qt GUI:
   - fix sweeping (#8340)
   - fix send tab input_qr_from_camera (#8342)
   - fix crash reporter showing if send fails on typical errors (#8312)
   - bumpfee: disallow targeting an abs fee. only allow feerate (#8318)
 * QML GUI:
   - fix offline-signing or co-signing pre-segwit txs (#8319)
   - add option to show onchain address in ReceiveDetailsDialog (#8331)
   - fix strings unique to QML did not get localized/translated (#8323)
   - allow paying bip21 uri onchain that has both onchain and bolt11
     if we cannot pay on LN (#8334, 312e50e9)
   - virtual keyboard: make buttons somewhat larger (75e65c5c)
   - fix(?) Android crash with some OS-accessibility settings (#8344)
   - fix channelopener.connectStr qr scan popping under (#8335)
   - fix restoring from old mpk (watchonly for "old" seeds) (#8356)
 * libsecp256k1: add runtime support for 0.3.x, bump bundled to 0.3.1
 * forbid paying to "http:" lnurls (enforce https or .onion) (1b5c7d46)
 * fix wallet.bump_fee "decrease payment" erroring on too high target
   fee rate (#8316)
 * fix performance regressions in tx logic (ee521545, 910832c1)
 * fix "recursion depth exceeded" for utxo privacy analysis (#8315)


# Release 4.4.0 (April 18, 2023)

 * New Android app, using QML instead of Kivy
   - Using Qt 5.15.7, PyQt 5.15.9
   - This release still on python3.8
   - Feature parity with Kivy
   - Android Back button used throughout, for cancel/close/back
   - Note: two topbar menus; tap wallet name for wallet menu, tap
     network orb for application menu
   - Note: long-press Receive/Send for list of payment requests/invoices
 * Qt GUI improvements
   - New onchain transaction creation flow, with configurable preview
   - Various options have been moved to toolbars, where their effect
     can be more directly observed.
 * Privacy features:
    - lightning: support for option scid_alias.
    - Qt GUI: UTXO privacy analysis: this dialog displays all the
      wallet transactions that are either parent of a UTXO, or can be
      related to it through address reuse (Note that in the case of
      address reuse, it does not display children transactions.)
    - Coins tab: New menu that lets users easily spend a selection
      of UTXOs into a new channel, or into a submarine swap (Qt GUI).
 * Internal:
    - Lightning invoices are regenerated every time routing hints are
      deprecated due to liquidity changes.
    - Script descriptors are used internally to sign transactions.


# Release 4.3.4 - Copyright is Dubious (January 26, 2023)
 * Lightning:
   - make sending trampoline payments more reliable (5251e7f8)
   - use different trampoline feature bits than eclair (#8141)
 * invoice-handling: fix get_request_by_addr incorrectly mapping
   addresses to request ids when an address was reused (#8113)
 * fix a deadlock in wallet.py (52e2da3a)
 * CLI: detect if daemon is already running (c7e2125f)
 * add an AppStream metainfo.xml file for Linux packagers (#8149)
 * payserver plugin:
   -replaced vendored qrcode lib
   -added tabs for on-chain and lightning invoices
   -revamped html and javascript


# Release 4.3.3 - (January 3, 2023)
 * Lightning:
   - fix handling failed HTLCs in gossip-based routing (#7995)
   - fix LN cooperative-chan-close to witness v1 addr (#8012)
 * PSBTs:
   - never put ypub/zpub in psbts, only plain xpubs (#8036)
   - for witness v0 txins, put both UTXO and WIT_UTXO in psbt (#8039)
 * Hardware wallets:
   - Trezor: optimize signing speed by not serializing tx (#8058)
   - Ledger:
     - modify plugin to support new bitcoin app v2.1.0 (#8041),
     - added a deprecation warning when using Ledger HW.1 devices.
       Ledger itself stopped supporting HW.1 some years ago, and it is
       becoming a maintenance burden for us to keep supporting it.
       Please migrate away from these devices. Support will be removed
       in a future release.
 * Binaries:
   - tighten build system to only use source pkgs in more places
     (#7999, #8000)
   - Windows:
     - use debian makensis instead of upstream windows exe (#8057)
     - stop using debian sid, build missing dep instead (98d29cba)
   - AppImage: fix failing to run on certain systems (#8011)
 * commands:
   - getinfo() to show if running in testnet mode (#8044)
   - add a "convert_currency" command (for fiat FX rate) (#8091)
 * Qt wizard: fix QR code not shown during 2fa wallet creation (#8071)
 * rework Tor-socks-proxy detection to reduce Tor-log-spam (#7317)
 * Android: add setting to enable debug logs (#7409)
 * fix payserver (merchant) js for electrum 4.3 invoice api (0fc90e07)
 * bip21: more robust handling of URIs that include a "lightning" key
   (ac1d53f0, 2fd762c3, #8047)


# Release 4.3.2 - (September 26, 2022)
 * When creating new requests, reuse addresses of expired requests
   (fixes #7927).
 * Index requests by ID instead of receiving address. This affects the
   following commands: get_request, get_invoice, list_requests,
   list_invoices, delete_request, delete_invoice
 * Trampoline routing: remember routes that have failed. Try other
   routes instead of systematically raising tampoline fees.
 * Fix sweep to_local output from channel backup (#7959)
 * Harden build script for macOS binary: avoid using
   precompiled wheels from PyPI for most packages (#7918)
 * The Windows/AppImage/Android binaries are now built on debian using
   the snapshot.debian.org archive instead of ubuntu. This should help
   with historical reproducibility. (#7926)

# Release 4.3.1 - (August 17, 2022)
 * build: we now also distribute a "source-only"
   Linux-packager-friendly tarball (d0de44a7, #7594), in addition
   to the current "normal" tarball. The "source-only" tarball excludes
   compiled locale files, generated protobuf files, and does not
   vendor our runtime python dependencies (the packages/ folder).
 * fix os.chmod when running in tmpfs on Linux (#7681)
 * (Qt GUI) some improvements for high-DPI monitors (38881129)
 * bring kivy request dialog more in-line with Qt (#7929)
 * rm support of "legacy" (without static_remotekey) LN channels.
   Opening these channels were never supported in a release version,
   only during development prior to the first lightning-capable
   release. Wallets with such channels will have to close them.
   (1f403d1c, 7b8e257e)
 * Qt: fix duplication of some OS notifications on onchain txs (#7943)
 * fix multiple recent regressions:
    - handle NotEnoughFunds when trying to pay LN invoice (#7920)
    - handle NotEnoughFunds when trying to open LN channel (#7921)
    - labels of payment requests were not propagated to
      history/addresses (#7919)
    - better default labels of outgoing txs (#7942)
    - kivy: dust-valued requests could not be created for LN (#7928)
    - when closing LN channels, future (timelocked) txs were not
      shown in history (#7930)
    - kivy: fix deleting "local" tx from history (#7933)
    - kivy: fix paying amountless LN invoice (#7935)
    - Qt: better handle unparseable URIs (#7941)


# Release 4.3.0 - (August 5, 2022)

 * This version introduces a set of UI modifications that simplify the
   use of Lightning. The idea is to abstract payments from the payment
   layer, and to suggest solutions when a lightning payment is hindered
   by liquidity issues.
    - Invoice unification: on-chain and lightning invoices have been
      merged into a unique type of invoice, and the GUI has a single
      'create request' button. Unified invoices contain both a
      lightning invoice and an onchain fallback address.
    - The receive tab of the GUI can display, for each payment
      request, a lightning invoice, a BIP21 URI, or an onchain
      address. If the request is paid off-chain, the associated
      on-chain address will be recycled in subsequent requests.
    - The receive tab displays whether a payment can be received using
      Lightning, given the current channel liquidity. If a payment
      cannot be received, but may be received after a channel
      rebalance or a submarine swap, the GUI will propose such an
      operation.
    - Similarly, if channels do not have enough liquidity to pay a
      lightning invoice, the GUI will suggest available alternatives:
      rebalance existing channels, open a new channel, perform a
      submarine swap, or pay to the provided onchain fallback address.
    - A single balance is shown in the GUI. A pie chart reflects how
      that balance is distributed (on-chain, lightning, unconfirmed,
      frozen, etc).
    - The semantics of the wallet balance has been modified: only
      incoming transactions are considered in the 'unconfirmed' part
      of the balance. Indeed, if an outgoing transaction does not get
      mined, that is not going to decrease the wallet balance. Thus,
      change outputs of outgoing transactions are not subtracted from
      the confirmed balance. (Before this change, the arithmetic
      values of both incoming and outgoing transactions were added to
      the unconfirmed balance, and could potentially cancel
      each other.)

 * In addition, the following new features are worth noting:
    - support for the Blockstream Jade hardware wallet (#7633)
    - support for LNURL-pay (LUD-06) (#7839)
    - updated trampoline feature bit in invoices (#7801)
    - the claim transactions of reverse swaps are not broadcast until
      the parent transaction is confirmed. This can be overridden by
      manually broadcasting the local transaction.
    - the fee of submarine swap transactions can be bumped (#7724)
    - better error handling for trampoline payments, which should
      improve payment success rate (#7844)
    - channel backups are removed automatically when the corresponding
      channel is redeemed (#7513)


# Release 4.2.2 - (May 27, 2022)
 * Lightning:
   - watching onchain outputs: significant perf. improvements (#7781)
   - enforce relative order of some msgs during chan reestablishment,
     lack of which can lead to unwanted force-closures (#7830)
   - fix: in case of a force-close containing incoming HTLCs, we were
     redeeming all HTLCs that we know the preimage for. This might
     publish the preimage of an incomplete MPP. (1a5ef554, e74e9d8e)
 * Hardware wallets:
   - smarter pairing during sign_transaction (238619f1)
   - keepkey: fix pairing with device using a workaround (#7779)
 * fix AppImage failing to run on certain systems (#7784)
 * fix "Automated BIP39 recovery" not scanning change paths (#7804)
 * bypass network proxy for localhost electrum server (#3126)
 * security fix: remove support of "file://" URIs from BIP70 payment
   requests, which could be used to trigger "open()" on arbitrary files
   (see https://github.com/spesmilo/electrum/security/advisories/GHSA-4fh4-hx35-r355)


# Release 4.2.1 - (March 26, 2022)
 * Binaries:
   - Windows: we are dropping support for Windows 7. (#7728)
     Version 4.2.0 already unintentionally broke compatibility with
     Win7 and there is no easy way to restore and maintain support.
     Existing users can keep using version 4.1.5 for now, but should
     consider upgrading or changing their OS.
     Win8.1 still works but only Win10 is regularly tested.
   - bump bundled Python version (win, mac, appimage) to 3.9.11,
     (android) to 3.8.13 (1bb7ef92, #7721)
     (note these include a fix to an openssl DOS-vector CVE-2022-0778)
   - windows: bump pyinstaller to 4.10 and wine to 7.0 (#7721)
 * Kivy GUI:
   - fix "Child Pays For Parent" not working on Android (#7723)
   - revert to defaulting the UI language to English (25fee6a6)
 * Qt GUI:
   - macOS: fix opening "Preferences" segfaulting for some (#7725)
   - more resilient startup: better error-handling and fallback (#7447)
 * Library:
   - fix LN error/warning message-handling, and fix regression that
     errors during channel-open were not properly shown in GUI (a92dede4)
   - during LN chan open, do not backup wallet automatically (#7733)
   - Imported wallets: fix delete_address rm-ing too many txs (#7587)
   - fix potential deadlock in wallet.py (d3476b6b)
 * Hardware wallets:
   - ledger: add progress indicator to sign_transaction (#7516)
 * fix the "--portable" flag for AppImage, and for pip installs (#7732)


# Release 4.2.0 - (March 16, 2022)
 * The minimum python version was increased to 3.8 (#7661)
 * Lightning:
   - redesigned MPP splitting algorithm (#7202)
   - trampoline: implement multi-trampoline MPP (#7623)
   - implement option_shutdown_anysegwit, and allow dust limits
     below 546 sat (#7542)
   - implement option_channel_type (#7636)
   - implement modern closing negotiation (#7586, #7680)
 * improve support for "lightning:" URIs on all platforms (#7301)
 * Qt GUI:
   - add setting "show amounts with msat precision" (5891e039)
   - add setting "add thousand separators to bitcoin amounts" (#7427)
 * CLI/RPC:
   - implement Unix sockets and make them the default (#7545, #7566)
   - add "bumpfee" command (#7438)
 * Kivy GUI:
   - show network setup on first start before wallet creation (#7464)
   - add "Child Pays For Parent" option (#7487)
   - improved locale handling (22bb52d5, 7cb11ced, 4293d6ec)
 * Hardware wallets:
   - trezor: bump trezorlib to 0.13 (#7590)
   - bitbox02: bump bitbox02 to 6.0, support send-to-taproot (#7693)
   - ledger: support "Ledger Nano S Plus" (#7692)
 * Library:
   - added support for sighash types beside "ALL" (#7453)
   - signmessage: also accept Trezor-type sigs for segwit addrs (#7668)
   - network: make request timeout configurable (#7696)
   - paytomany (onchain txout batching) now allows multiple max("!")
     amounts with specified weights (#7492)
 * Binary builds
   - AppImage: changed base image from ubuntu 16.04 to 18.04 (5d0aa63a)
 * migrated from Travis CI to Cirrus CI (#7431)
 * Lots of other minor bugfixes and usability improvements.


# Release 4.1.5 - (July 19, 2021)
 * Builds/binaries:
   - macOS: the .dmg binary should now be reproducible
 * Kivy/Android: fix paying bip70 invoices (regression) (90579ccf)
 * fix: payment requests not saved if process is killed (6a049d99)
 * Lightning: improve payment success when using trampoline (3a7f5373)
 * add support for signet test network (#7282)
 * Qt GUI:
   - allow restoring from SLIP39 seeds (#6917)
   - rework QR code scanning on Windows and macOS (#7365)
   - support smaller window sizes, decrease minimums (#7385)
 * GUIs: add "funded or unused" filter option to Addresses tab (#5823)


# Release 4.1.4 - (June 17, 2021)
 * Kivy/Android: fix a regression where a non-LN wallet
   could not open the settings (c49d6995)
 * CLI/RPC: fix "close_wallet" command (#7348)


# Release 4.1.3 - (June 16, 2021)
 * Builds/binaries:
   - Android: the binaries (APKs) should now be reproducible (#7263)
   - AppImage: fix some startup issues by including libxcb deps (#7198)
 * Lightning:
   - smarter LN pathfinding (if trampoline is disabled):
     - estimate liquidity in channels using previous attempts (#7152)
     - consider inflight HTLCs and try to route around them (#7292)
   - bugfix: add more safety checks to avoid "batch RBF" feature
     merging LN funding txs (#7298)
   - remove HTLC value upper limit of ~42 mBTC (#7328)
   - Kivy GUI: implement freezing LN channels (11bb39ee)
 * imported wallets: when enabling the "Use change addresses" option,
   change will now be sent to a random unused imported address. (#7330)
   As before, by default, change is sent back to the "from address".
 * seed generation: make sure newly created electrum seeds don't have
   correct bip39 checksum by chance (#6001)
 * other minor fixes


# Release 4.1.2 - (April 8, 2021)
 * Qt GUI:
    - fix some crashes when exiting (#6889)
    - make sure pressing Ctrl-C always quits (c41cd4ae)
 * Kivy GUI (Android):
    - fix bug with scrollbar, again (#7155)
    - 2fa wallets: fix making transactions (#7190)
    - implement freezing addresses (#7178)
 * Android: use more modern application launcher/icon (#7187)


# Release 4.1.1 - (April 2, 2021)
 * fix Qt crash with the swap dialog
 * fix Kivy bug with scrollbar (#7155)
 * fix localization issues (#7158 #4621)
 * fix python crash with swaps (#7160)
 * other minor fixes


# Release 4.1.0 - Kangaroo (March 30, 2021)

This version is our second major release with support for the
Lightning Network. While our initial Lightning release was mostly
about implementing the protocol, this release brings features that are
specifically aimed at keeping Electrum lightweight and trustless,
while avoiding single points of failure. Most of the features listed
below are user-visible.
 * The wallet creation wizard no longer asks for a seed type, and
   creates segwit wallets with bech32 addresses. Older seed types can
   still be created with the command line.
 * Paid invoices (both incoming and outgoing) are automatically
   removed from the send/receive lists of the GUI (one confirmation is
   needed for onchain invoices). Once removed from the list, invoice
   details can still be accessed from the transaction history. In Qt,
   invoice lists have been renamed to 'Sending queue' and 'Receiving
   queue'.
 * Lightning:
    - recoverable channels (see below)
    - trampoline payments (see below)
    - support multi-part-payment
    - support upfront-shutdown-script
 * Recoverable channels (option):
   - Recovery data is added to the channel funding transaction using
     an OP_RETURN. This makes it possible to recover a static backup
     of the channel from the wallet seed. Please note that static
     backups only allow users to request a force-close of the channel
     with the remote node, so that funds not locked in HTLCs can be
     recovered. This assumes that the remote node is still online, did
     not lose its data, and accepts to force close the channel.
   - This option is only available for standard wallets with an
     Electrum seed. It is not available for hardware wallets, because
     it requires a deterministic derivation of the nodeID. It is also
     not available in watching-only wallets, for the same reason. If a
     wallet can have recoverable channels but has an old nodeID, users
     who want to use that feature need to close all their existing
     channels, and to restore their wallet from seed.
   - Channel recovery data uses 20 bytes (16 bytes of the remote
     NodeID plus 4 magic bytes) and is encrypted so that only the
     wallet that owns it can decrypt it. However, blockchain analysis
     will be able to tell that the transaction was probably created by
     Electrum.
   - If the 'use recoverable channels' option is enabled, other nodes
     cannot open a channel to Electrum.
   - If a channel is force-closed, the information in the on-chain
     backup is not sufficient to retrieve the funds in the to_local
     output, in case the wallet is lost in a boating accident before
     expiration of the CSV delay. For that reason, an additional
     backup is presented to the user if they force-close a channel.
 * Trampoline routing (option): Trampoline is a solution that allows
   light clients to delegate path-finding on the Lightning Network, so
   that they do not have to download the entire network
   graph. Trampoline routing was originally proposed by Bastien
   Teinturier and is used in the Phoenix wallet. Here is how
   Trampoline works in Electrum:
   - Trampoline is enabled by default, in order to prevent unwanted
     download of the network gossip. If trampoline is disabled, the
     gossip will be downloaded, regardless of the existence of
     channels.
   - Because there is no discovery mechanism for trampoline nodes, the
     list of available trampolines is hardcoded in the client (it will
     remain so until support for trampoline routing is announced in
     gossip). 3 trampoline nodes are currently available on mainnet:
     ACINQ, Electrum and Hodlister.
   - If Trampoline is enabled:
      - payments use trampoline routing.
      - gossip is disabled.
      - the wallet can only open channels with trampoline nodes.
      - pre-existing channels with non-trampoline nodes are frozen for
        sending.
   - There are two types of trampoline payments: legacy and trampoline
     end-to-end. Legacy payments are possible with any receiver, but
     they offer less privacy than end-to-end trampoline
     payments. Electrum decides whether to perform legacy or
     end-to-end based on the features in the invoice:
       - OPTION_TRAMPOLINE_ROUTING_OPT (bit 25) for Electrum
       - OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR (bit 51) for Eclair/Phoenix
   - When performing a legacy payment, Electrum will add a second
     trampoline node to the route in order to protect the privacy of
     the payer and payee. It will fall back to a single trampoline if
     the two-trampoline strategy has failed for all trampolines.
     (Note: two-trampoline payments are currently not possible if the
     first trampoline is the ACINQ node, and is disabled for that
     node.)
   - Similar to Phoenix, the fee and CLTV delay are found by
     trial-and-error. If there is a second trampoline in the route, we
     use the same fee/CLTV for both. This trial-and-error is
     temporary; the final specification should add fee information in
     the failure messages, so that we will be able to better fine-tune
     trampoline fees.
 * Qt: The increase fee dialog now has advanced options, and offers
   the choice between different RBF strategies.
 * Watchtowers: The 'use_local_watchtower' feature is deprecated, and
   it has been removed from the Qt GUI. The 'use_remote_watchtower'
   setting has been renamed to 'use_watchtower'.
 * Password unification (Android only): When the Android app is
   started, the entered password is checked against all wallets in
   the directory. If the test passes:
    - all wallets are encrypted
    - new wallets will use the unified password
    - password updates are performed on all wallets
   Whether the password is unified can be seen in the GUI: In the
   'Settings' dialog, the description for the password setting is
   'Change password for this wallet' if the password is not unified,
   and becomes 'Change password' if password is unified.
 * Submarine swaps are now available on kivy/android.
 * Android PIN reset: If the password is unified, the PIN can be reset
   by providing the password.
 * Android: on-chain fees have been removed from the settings
   dialog. Instead, the fee slider is shown to the user every time an
   on-chain transaction will be performed (sending a payment, opening
   a channel, initiating a submarine swap)
 * BIP-0350: use bech32m for witness version 1+ addresses (4315fa43).
   We have supported sending to any witness version since Electrum
   3.0, using BIP-0173 (bech32) addresses. BIP-0350 makes a breaking
   change in address encoding, and recommends using a new encoding
   (bech32m) for sending to witness version 1 and later.
 * Block explorer: allow setting a custom URL in Qt GUI (#6965)


# Release 4.0.9 - (Dec 18, 2020)
 * fixes a regression introduced in 4.0.8, that prevents from
   paying BIP70 invoices (#6859)
 * reflect frozen channels and disconnected peers in the displayed
   'can send/can receive' amounts.

# Release 4.0.8 - (Dec 17, 2020)
 * fix decoding BIP21 URIs with uppercase schema (d40bedb2)
 * psbt: put full derivation paths into PSBT by default (c8155129)
 * invoices: allow address-reuse (#6609, #6852)
 * A few other minor bugfixes.

# Release 4.0.7 - (Dec 9, 2020)
 * kivy: fix open channel with 'max' amount
 * kivy: fix regression introduced in last release (a9fc440)
 * other minor GUI fixes
 * Dependencies: as part of adapting to new dnspython (#6828),
   - python-ecdsa is no longer needed at all,
   - cryptography is now required (min 2.6), the user can no
     longer choose between cryptography and pycryptodomex

# Release 4.0.6 - (Dec 4, 2020)
 * Fix 'Max' button issue for submarine swaps button (#6770)
 * Fix 'Max' button in kivy (#6169)
 * Various fixes for Kivy/Android install wizard
 * More robust account keypath for BitBox02 (#6766)

# Release 4.0.5 - (Nov 18, 2020)
 * Fix .dmg binary hanging on recently released macOS 11 Big Sur (#6461)
 * Lightning:
   - bugfix: during LN channel opening, if the client crashed at the
     wrong moment, the channel might not get fully persisted to disk,
     and would need manual console-tinkering to recover (#6656)
   - Lightning is enabled by default. Electrum will not connect to
     the Lightning Network until the user opens a channel. (#6639)
   - smarter node recommendation (to open channels with) (#6705)
 * user interface: some minor changes that aim to improve usability
 * Ledger:
   - fix enumerating devices with new bitcoin app (1.5.1) (b78cbcff)
   - fix compat with HW.1 (200f547a)
 * A few other minor bugfixes.

# Release 4.0.4 - (Oct 15, 2020)
 * PSBT: fix regression in 4.0.3 where UTXO data was not included in
   QR codes (#6600)
 * new feature: "Cancel tx" (#6641). The Qt/kivy GUI allows cancelling
   an unconfirmed RBF tx by double-spending its inputs to self.
 * Windows binary:
   - fix some issues with QR scanning by building zbar ourselves (#6593)
   - when using setup exe, also install a debug binary (#6603)
 * Ledger: fix "The derivation path is unusual" warnings (#6512)
   (needs Bitcoin app 1.4.8+ installed on device)
 * A few other minor bugfixes and usability improvements.

# Release 4.0.3 - (Sep 11, 2020)
 * PSBT: restore compatibility with Bitcoin Core following CVE-2020-14199:
   we now allow a PSBT input to have both UTXO and WITNESS_UTXO (#6429).
   (PSBTs created since 4.0.1 already contained UTXO for segwit inputs)
 * Hardware wallets:
   - bitbox02: better multisig UX: implement get_soft_device_id (#6386)
   - coldcard: fix "show address" for multisig (#6517)
   - all: run all device communication on a dedicated thread (#6561).
     This should resolve some threading issues.
 * new feature: "Automated BIP39 recovery" (#6219, #6155)
   When restoring from a BIP39 seed, add option to scan many known
   derivation paths for history, and show them to user to choose from.
 * show derivation path of keystores in Qt GUI Wallet>Information (#4700)
 * fix "signtransaction" RPC command (#6502)
 * Dependencies: pyaes is no longer needed (#6563)
 * The tar.gz source dist now bundles make_libsecp256k1.sh, to help
   users getting libsecp256k1 (#6323).
 * A few other minor bugfixes and usability improvements.

# Release 4.0.2 - (July 8, 2020)
 - rm old corrupted non-bip70 invoices (#6345)
 - other minor fixes

# Release 4.0.1 - (July 3, 2020)
 * Lightning Network support (experimental)
   - Our implementation of Lightning relies on Electrum servers to
     query channel states. Since servers can lie about the state of a
     channel, users should either use a server that they trust, or
     setup a private watchtower (see below). A watchtower is also
     recommended for lightning wallets that remain offline for
     extended periods of time (the default CSV 'to_self_delay' is 1
     week). Please note that Electrum Personal Server (EPS) cannot be
     used with lightning wallets, because channels funding addresses
     are arbitrary.
   - Lightning funds cannot be restored from seed. Instead, users need
     to create static backups of their channels. Static backups cannot
     be used to perform lightning transactions, they can only be used
     to trigger a remote-force-close of a channel.
   - Lightning-enabled wallet files must not be copied. Instead, a
     backup of the wallet can be created from the Qt menu, and it will
     contain static backups of all its channels. Backups can also be
     exported for each channel (e.g. via QR code), and imported in
     another wallet. Since backups are encrypted with a key derived
     from the wallet's xpub, they can only be imported into another
     instance of the same wallet, or a watch-only version of it. The
     force-close is not triggered automatically when the backup is
     imported; imported backups can live inside a wallet file.
   - Lightning can be enabled in the GUI (Wallet>Information) or from
     the CLI (init_lightning). Lightning is currently restricted to HD
     p2wpkh wallets (including watch-only and hardware wallets). The
     Qt GUI, CLI/RPC, and the kivy GUI (Android) all have LN support,
     with feature-richness in that order.
   - LN protocol details: dataloss_protect and static_remotekey are
     required; varonion and payment_secret are implemented, MPP not yet.
     Channels are not announced ('private'), forwarding is disabled.
     We do not serve gossip queries, only consume them.
   - Submarine swaps: the GUI integrates a service that offers
     atomically exchanging on-chain and lightning bitcoins for a fee.
     Electrum Technologies runs a central server for this, powered by
     the Boltz backend.
   - Watchtowers: Electrum can run a local watchtower (GUI setting),
     or it can connect to a remote watchtower. A watchtower contains
     pre-signed transactions and does not need your private keys. A
     local watchtower will watch your channels whenever an Electrum
     instance is running, without needing access to your wallet file.
     An Electrum daemon can be configured to be used as a remote
     watchtower by setting 'watchtower_address', 'watchtower_user' and
     'watchtower_password'.
 * Partially Signed Bitcoin Transactions (PSBT, BIP-174) are supported
   (#5721). The previous Electrum partial transaction format is no
   longer supported, i.e. this is an incompatible change. Users should
   make sure that all instances of Electrum they use to co-sign or
   offline sign, are updated together.
 * Hardware wallets: several fixes in general; notable changes:
   - The BitBox02 is now supported (#5993)
   - Multisig support for Coldcard (#5440)
   - Compatibility with latest Trezor fw (#6064, #6198, #5692)
 * Dependencies (see README for install instructions):
   - libsecp256k1 is now required (previously optional). python-ecdsa
     remains a dependency but it is now only used for DNSSEC.
   - Added: either one of pycryptodomex or cryptography is now required,
     mainly due to LN (previously pycryptodomex was optional, for fast AES)
   - Removed: jsonrpclib-pelix, the JSON-RPC library used for CLI/daemon
 * Qt GUI: several changes, notably:
   - Separation between output selection and transaction finalization.
   - Coin selection moved to the Coins tab, and it affects all txns,
     e.g. RBF fee-bumping, LN channel opens, submarine swaps.
   - Editable tx preview dialog that allows e.g. changing the locktime,
     toggling RBF, and manual coinjoins.
 * HTTP PayServer: The configuration of a bitcoin-accepting website
   using Electrum has been simplified and requires fewer steps (see
   documentation). The Payserver supports BIP70 and Lightning payments.
 * Android:
   - We now build two APKs, one for ARMv7 and one for ARMv8
   - The kivy GUI now supports importing BIP39 seeds
   - Each wallet on kivy now can have a separate generic password,
     using which the wallet files are encrypted. An optional PIN,
     shared among all wallets, can be added to get prompted for spends.
 * The API of several CLI/RPC commands have changed, and several new
   commands have been introduced (mainly for LN).
 * Distributables:
   - The .tar.gz source dist is now built reproducibly.
     Relatedly, we no longer distribute a .zip sdist.
   - The MacOS binary now conforms to macOS 10.15; it is notarized
     by Apple. This required bumping the min macOS version to 10.13.
     Startup times should now be faster on 10.15. (#6128, #6225)
 * Transactions:
   - we now grind low R for ECDSA signatures to match bitcoind (#5820)
 * Lots and lots of other minor bugfixes and improvements.


# Release 3.3.8 - (July 11, 2019)

 * fix some bugs with recent bump fee (RBF) improvements (#5483, #5502)
 * fix #5491: watch-only wallets could not bump fee in some cases
 * appimage: URLs could not be opened on some desktop environments (#5425)
 * faster tx signing for segwit inputs for really large txns (#5494)
 * A few other minor bugfixes and usability improvements.


# Release 3.3.7 - (July 3, 2019)

 * The AppImage Linux x86_64 binary and the Windows setup.exe
   (so now all Windows binaries) are now built reproducibly.
 * Bump fee (RBF) improvements:
   Implemented a new fee-bump strategy that can add new inputs,
   so now any tx can be fee-bumped (d0a4366). The old strategy
   was to decrease the value of outputs (starting with change).
   We will now try the new strategy first, and only use the old
   as a fallback (needed e.g. when spending "Max").
 * CoinChooser improvements:
   - more likely to construct txs without change (when possible)
   - less likely to construct txs with really small change (e864fa5)
   - will now only spend negative effective value coins when
     beneficial for privacy (cb69aa8)
 * fix long-standing bug that broke wallets with >65k addresses (#5366)
 * Windows binaries: we now build the PyInstaller boot loader ourselves,
   as this seems to reduce anti-virus false positives (1d0f679)
 * Android: (fix) BIP70 payment requests could not be paid (#5376)
 * Android: allow copy-pasting partial transactions from/to clipboard
 * Fix a performance regression for large wallets (c6a54f0)
 * Qt: fix some high DPI issues related to text fields (37809be)
 * Trezor:
   - allow bypassing "too old firmware" error (#5391)
   - use only the Bridge to scan devices if it is available (#5420)
 * hw wallets: (known issue) on Win10-1903, some hw devices
   (that also have U2F functionality) can only be detected with
   Administrator privileges. (see #5420 and #5437)
   A workaround is to run as Admin, or for Trezor to install the Bridge.
 * Several other minor bugfixes and usability improvements.


# Release 3.3.6 - (May 16, 2019)

 * qt: fix crash during 2FA wallet creation (#5334)
 * fix synchronizer not to keep resubscribing to addresses of
   already closed wallets (e415c0d9)
 * fix removing addresses/keys from imported wallets (#4481)
 * kivy: fix crash when aborting 2FA wallet creation (#5333)
 * kivy: fix rare crash when changing exchange rate settings (#5329)
 * A few other minor bugfixes and usability improvements.


# Release 3.3.5 - (May 9, 2019)

 * The logging system has been overhauled (#5296).
   Logs can now also optionally be written to disk, disabled by default.
 * Fix a bug in synchronizer (#5122) where client could get stuck.
   Also, show the progress of history sync in the GUI. (#5319)
 * fix Revealer in Windows and MacOS binaries (#5027)
 * fiat rate providers:
   - added CoinGecko.com and CoinCap.io
   - BitcoinAverage now only provides historical exchange rates for
     paying customers. Changed default provider to CoinGecko.com (#5188)
 * hardware wallets:
   - Ledger: Nano X is now recognized (#5140)
   - KeepKey:
     - device was not getting detected using Windows binary (#5165)
     - support firmware 6.0.0+ (#5205)
   - Trezor: implemented "seedless" mode (#5118)
 * Coin Control in Qt: implemented freezing individual UTXOs
   in addition to freezing addresses (#5152)
 * TrustedCoin (2FA wallets):
   - better error messages (#5184)
   - longer signing timeout (#5221)
 * Kivy:
   - fix bug with local transactions (#5156)
   - allow selecting fiat rate providers without historical data (#5162)
 * fix CPFP: the fees already paid by the parent were not included in
   the calculation, so it always overestimated (#5244)
 * Testnet: there is now a warning when the client is started in
   testnet mode as there were a number of reports of users getting
   scammed through social engineering (#5295)
 * CoinChooser: performance of creating transactions has been improved
   significantly for large wallets. (d56917f4)
 * Importing/sweeping WIF keys: stricter checks (#4638, #5290)
 * Electrum protocol: the client's "user agent" has been changed from
   "3.3.5" to "electrum/3.3.5". Other libraries connecting to servers
   can consider not "spoofing" to be Electrum. (#5246)
 * Several other minor bugfixes and usability improvements.


# Release 3.3.4 - (February 13, 2019)

 * AppImage: we now also distribute self-contained binaries for x86_64
   Linux in the form of an AppImage (#5042). The Python interpreter,
   PyQt5, libsecp256k1, PyCryptodomex, zbar, hidapi/libusb (including
   hardware wallet libraries) are all bundled. Note that users of
   hw wallets still need to set udev rules themselves.
 * hw wallets: fix a regression during transaction signing that prompts
   the user too many times for confirmations (commit 2729909)
 * transactions now set nVersion to 2, to mimic Bitcoin Core
 * fix Qt bug that made all hw wallets unusable on Windows 8.1 (#4960)
 * fix bugs in wallet creation wizard that resulted in corrupted
   wallets being created in rare cases (#5082, #5057)
 * fix compatibility with Qt 5.12 (#5109)


# Release 3.3.3 - (January 25, 2019)

 * Do not expose users to server error messages (#4968)
 * Notify users of new releases. Release announcements must be signed,
   and they are verified byElectrum using a hardcoded Bitcoin address.
 * Hardware wallet fixes (#4991, #4993, #5006)
 * Display only QR code in QRcode Window
 * Fixed code signing on MacOS
 * Randomise locktime of transactions


# Release 3.3.2 - (December 21, 2018)

 * Fix Qt history export bug
 * Improve network timeouts
 * Prepend server transaction_broadcast error messages with
   explanatory message. Render error messages as plain text.


# Release 3.3.1 - (December 20, 2018)

 * Qt: Fix invoices tab crash (#4941)
 * Android: Minor GUI improvements


# Release 3.3.0 - Hodler's Edition (December 19, 2018)

 * The network layer has been rewritten using asyncio and aiorpcx.
   In addition to easier maintenance, this makes the client
   more robust against misbehaving servers.
 * The minimum python version was increased to 3.6
 * The blockchain headers and fork handling logic has been generalized.
   Clients by default now follow chain based on most work, not length.
 * New wallet creation defaults to native segwit (bech32).
 * Segwit 2FA: TrustedCoin now supports native segwit p2wsh
   two-factor wallets.
 * RBF batching (opt-in): If the wallet has an unconfirmed RBF
   transaction, new payments will be added to that transaction,
   instead of creating new transactions.
 * MacOS: support QR code scanner in binaries.
 * Android APK:
   - build using Google NDK instead of Crystax NDK
   - target API 28
   - do not use external storage (previously for block headers)
 * hardware wallets:
   - Coldcard now supports spending from p2wpkh-p2sh,
     fixed p2pkh signing for fw 1.1.0
   - Archos Safe-T mini: fix #4726 signing issue
   - KeepKey: full segwit support
   - Trezor: refactoring and compat with python-trezor 0.11
   - Digital BitBox: support firmware v5.0.0
 * fix bitcoin URI handling when app already running (#4796)
 * Qt listings rewritten:
   the History tab now uses QAbstractItemModel, the other tabs use
   QStandardItemModel. Performance should be better for large wallets.
 * Several other minor bugfixes and usability improvements.


# Release 3.2.4 - (December 30, 2018)

 * backport anti-phishing measures from master


# Release 3.2.3 - (September 3, 2018)

 * hardware wallet: the Safe-T mini from Archos is now supported.
 * hardware wallet: the Coldcard from Coinkite is now supported.
 * BIP39 seeds: if a seed extension (aka passphrase) contained
   multiple consecutive whitespaces or leading/trailing whitespaces
   then the derived addresses were not following spec. This has been
   fixed, and affected should move their coins. The wizard will show a
   warning in this case. (#4566)
 * Revealer: the PRNG used has been changed (#4649)
 * fix Linux distributables: 'typing' was not bundled, needed for python 3.4
 * fix #4626: fix spending from segwit multisig wallets involving a Trezor
   cosigner when using a custom derivation path
 * fix #4491: on Android, if user had set "uBTC" as base unit, app crashed
 * fix #4497: on Android, paying bip70 invoices from cold start did not work
 * Several other minor bugfixes and usability improvements.


# Release 3.2.2 - (July 2nd, 2018)

 * Fix DNS resolution on Windows
 * Fix websocket bug in daemon


# Release 3.2.1 - (July 1st, 2018)

 * fix Windows binaries: due to build process changes, the locale files
   were not included; the language could not be changed from English
 * fix Linux distributables: wordlists were not included (#4475)


# Release 3.2.0 - Satoshi's Vision (June 30, 2018)

 * If present, libsecp256k1 is used to speed up elliptic curve
   operations. The library is bundled in the Windows, MacOS, and
   Android binaries. On Linux, it needs to be installed separately.
 * Two-factor authentication is available on Android. Note that this
   will only provide additional security if one time passwords are
   generated on a separate device.
 * Semi-automated crash reporting is implemented for Android.
 * Transactions that are dropped from the mempool are kept in the
   wallet as 'local', and can be rebroadcast. Previously these
   transactions were deleted from the wallet.
 * The scriptSig and witness part of transaction inputs are no longer
   parsed, unless actually needed. The wallet will no longer display
   'from' addresses corresponding to transaction inputs, except for
   its own inputs.
 * The partial transaction format has been incompatibly changed. This
   was needed as for partial transactions the scriptSig/witness has to
   be parsed, but for signed transactions we did not want to do the
   parsing.  Users should make sure that all instances of Electrum
   they use to co-sign or offline sign, are updated together.
 * Signing of partial transactions created with online imported
   addresses wallets now supports significantly more
   setups. Previously only online p2pkh address + offline WIF was
   supported.  Now the following setups are all supported:
   - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline WIF,
   - online {p2pkh, p2wpkh-p2sh, p2wpkh} address + offline seed/xprv,
   - online {p2sh, p2wsh-p2sh, p2wsh}-multisig address + offline seeds/xprvs
     (potentially distributed among several different machines)
   Note that for the online address + offline HD secret case, you need
   the offline wallet to recognize the address (i.e. within gap
   limit).  Having an xpub on the online machine is still the
   recommended setup, as this allows the online machine to generate
   new addresses on demand.
 * Segwit multisig for bip39 and hardware wallets is now enabled.
   (both p2wsh-p2sh and native p2wsh)
 * Ledger: offline signing for segwit inputs (#3302) This has already
   worked for Trezor and Digital Bitbox. Offline segwit signing can be
   combined with online imported addresses wallets.
 * Added Revealer plugin. ( https://revealer.cc ) Revealer is a seed
   phrase back-up solution. It allows you to create a cold, analog,
   multi-factor backup of your wallet seeds, or of any arbitrary
   secret. The Revealer utilizes a transparent plastic visual one time
   pad.
 * Fractional fee rates: the Qt GUI now displays fee rates with 0.1
   sat/byte precision, and also allows this same resolution in the
   Send tab.
 * Hardware wallets: a "show address" button is now displayed in the
   Receive tab of the Qt GUI. (#4316)
 * Trezor One: implemented advanced/matrix recovery (#4329)
 * Qt/Kivy: added "sat" as optional base unit.
 * Kivy GUI: significant performance improvements when displaying
   history and address list of large wallets; and transaction dialog
   of large transactions.
 * Windows: use dnspython to resolve dns instead of socket.getaddrinfo
   (#4422)
 * Importing minikeys: use uncompressed pubkey instead of compressed
   (#4384)
 * SPV proofs: check inner nodes not to be valid transactions (#4436)
 * Qt GUI: there is now an optional "dark" theme (#4461)
 * Several other minor bugfixes and usability improvements.


# Release 3.1.3 - (April 16, 2018)

 * Qt GUI: seed word auto-complete during restore
 * Android: fix some crashes
 * performance improvements (wallet, and Qt GUI)
 * hardware wallets: show debug message during device scan
 * Digital Bitbox: enabled BIP84 (p2wpkh) wallet creation
 * add regtest support (via --regtest flag)
 * other minor bugfixes and usability improvements

# Release 3.1.2 - (March 28, 2018)

 * Kivy/android: request PIN on startup
 * Improve OSX build process
 * Fix various bugs with hardware wallets
 * Other minor bugfixes

# Release 3.1.1 - (March 12, 2018)

 * fix #4031: Trezor T support
 * partial fix #4060: proxy and hardware wallet can't be used together
 * fix #4039: can't set address labels
 * fix crash related to coinbase transactions
 * MacOS: use internal graphics card
 * fix openalias related crashes
 * speed-up capital gains calculations
 * hw wallet encryption: re-prompt for passphrase if incorrect
 * other minor fixes.



# Release 3.1.0 - (March 5, 2018)

 * Memory-pool based fee estimation. Dynamic fees can target a desired
   depth in the memory pool. This feature is optional, and ETA-based
   estimates from Bitcoin Core are still available. Note that miners
   could exploit this feature, if they conspired and filled the memory
   pool with expensive transactions that never get mined. However,
   since the Electrum client already trusts an Electrum server with
   fee estimates, activating this feature does not introduce any new
   vulnerability. In addition, the client uses a hard threshold to
   protect itself from servers sending excessive fee estimates. In
   practice, ETA-based estimates have resulted in sticky fees, and
   caused many users to overpay for transactions. Advanced users tend
   to visit (and trust) websites that display memory-pool data in
   order to set their fees.
 * Capital gains: For each outgoing transaction, the difference
   between the acquisition and liquidation prices of outgoing coins is
   displayed in the wallet history. By default, historical exchange
   rates are used to compute acquisition and liquidation prices. These
   values can also be entered manually, in order to match the actual
   price realized by the user. The order of liquidation of coins is
   the natural order defined by the blockchain; this results in
   capital gain values that are invariant to changes in the set of
   addresses that are in the wallet. Any other ordering strategy (such
   as FIFO, LIFO) would result in capital gain values that depend on
   the presence of other addresses in the wallet.
 * Local transactions: Transactions can be saved in the wallet without
   being broadcast. The inputs of local transactions are considered as
   spent, and their change outputs can be re-used in subsequent
   transactions. This can be combined with cold storage, in order to
   create several transactions before broadcasting them. Outgoing
   transactions that have been removed from the memory pool are also
   saved in the wallet, and can be broadcast again.
 * Checkpoints: The initial download of a headers file was replaced
   with hardcoded checkpoints. The wallet uses one checkpoint per
   retargeting period. The headers for a retargeting period are
   downloaded only if transactions need to be verified in this period.
 * The 'privacy' and 'priority' coin selection policies have been
   merged into one. Previously, the 'privacy' policy has been unusable
   because it was was not prioritizing confirmed coins. The new policy
   is similar to 'privacy', except that it de-prioritizes addresses
   that have unconfirmed coins.
 * The 'Send' tab of the Qt GUI displays how transaction fees are
   computed from transaction size.
 * The wallet history can be filtered by time interval.
 * Replace-by-fee is enabled by default. Note that this might cause
   some issues with wallets that do not display RBF transactions until
   they are confirmed.
 * Watching-only wallets and hardware wallets can be encrypted.
 * Semi-automated crash reporting
 * The SSL checkbox option was removed from the GUI.
 * The Trezor T hardware wallet is now supported.
 * BIP84: native segwit p2wpkh scripts for bip39 seeds and hardware
   wallets can now be created when specifying a BIP84 derivation
   path. This is usable with Trezor and Ledger.
 * Windows: the binaries now include ZBar, and QR code scanning should work.
 * The Wallet Import Format (WIF) for private keys that was extended in 3.0
   is changed. Keys in the previous format can be imported, compatibility
   is maintained. Newly exported keys will be serialized as
   "script_type:original_wif_format_key".
 * BIP32 master keys for testnet once again have different version bytes than
   on mainnet. For the mainnet prefixes {x,y,Y,z,Z}|{pub,prv}, the
   corresponding testnet prefixes are   {t,u,U,v,V}|{pub,prv}.
   More details and exact version bytes are specified at:
   https://github.com/spesmilo/electrum-docs/blob/master/xpub_version_bytes.rst
   Note that due to this change, testnet wallet files created with previous
   versions of Electrum must be considered broken, and they need to be
   recreated from seed words.
 * A new version of the Electrum protocol is required by the client
   (version 1.2). Servers using older versions of the protocol will
   not be displayed in the GUI.


# Release 3.0.6 :
  * Fix transaction parsing bug #3788

# Release 3.0.5 : (Security update)

This is a follow-up to the 3.0.4 release, which did not completely fix
issue #3374. Users should upgrade to 3.0.5.

 * The JSONRPC interface is password protected
 * JSONRPC commands are disabled if the GUI is running, except 'ping',
   which is used to determine if a GUI is already running


# Release 3.0.4 : (Security update)

 * Fix a vulnerability caused by Cross-Origin Resource Sharing (CORS)
   in the JSONRPC interface. Previous versions of Electrum are
   vulnerable to port scanning and deanonimization attacks from
   malicious websites. Wallets that are not password-protected are
   vulnerable to theft.
 * Bundle QR scanner with Android app
 * Minor bug fixes

# Release 3.0.3
  * Qt GUI: sweeping now uses the Send tab, allowing fees to be set
  * Windows: if using the installer binary, there is now a separate shortcut
    for "Electrum Testnet"
  * Digital Bitbox: added support for p2sh-segwit
  * OS notifications for incoming transactions
  * better transaction size estimation:
    - fees for segwit txns were somewhat underestimated (#3347)
    - some multisig txns were underestimated
    - handle uncompressed pubkeys
  * fix #3321: testnet for Windows binaries
  * fix #3264: Ledger/dbb signing on some platforms
  * fix #3407: KeepKey sending to p2sh output
  * other minor fixes and usability improvements

# Release 3.0.2
  * Android: replace requests tab with address tab, with access to
    private keys
  * sweeping minikeys: search for both compressed and uncompressed
    pubkeys
  * fix wizard crash when attempting to reset Google Authenticator
  * fix #3248: fix Ledger+segwit signing
  * fix #3262: fix SSL payment request signing
  * other minor fixes.

# Release 3.0.1
  * minor bug and usability fixes

# Release 3.0 - Uncanny Valley (November 1st, 2017)

  * The project was migrated to Python3 and Qt5. Python2 is no longer
    supported. If you cloned the source repository, you will need to
    run "python3 setup.py install" in order to install the new
    dependencies.

  * Segwit support:

    - Native segwit scripts are supported using a new type of
      seed. The version number for segwit seeds is 0x100. The install
      wizard will not create segwit seeds by default; users must
      opt-in with the segwit option.

    - Native segwit scripts are represented using bech32 addresses,
      following BIP173. Please note that BIP173 is still in draft
      status, and that other wallets/websites may not support
      it. Thus, you should keep a non-segwit wallet in order to be
      able to receive bitcoins during the transition period. If BIP173
      ends up being rejected or substantially modified, your wallet
      may have to be restored from seed. This will not affect funds
      sent to bech32 addresses, and it will not affect the capacity of
      Electrum to spend these funds.

    - Segwit scripts embedded in p2sh are supported with hardware
      wallets or bip39 seeds. To create a segwit-in-p2sh wallet,
      trezor/ledger users will need to enter a BIP49 derivation path.

    - The BIP32 master keys of segwit wallets are serialized using new
      version numbers. The new version numbers encode the script type,
      and they result in the following prefixes:

         * xpub/xprv : p2pkh or p2sh
         * ypub/yprv : p2wpkh-in-p2sh
         * Ypub/Yprv : p2wsh-in-p2sh
         * zpub/zprv : p2wpkh
         * Zpub/Zprv : p2wsh

      These values are identical for mainnet and testnet; tpub/tprv
      prefixes are no longer used in testnet wallets.

    - The Wallet Import Format (WIF) is similarly extended for segwit
      scripts. After a base58-encoded key is decoded to binary, its
      first byte encodes the script type:

         * 128 + 0: p2pkh
         * 128 + 1: p2wpkh
         * 128 + 2: p2wpkh-in-p2sh
         * 128 + 5: p2sh
         * 128 + 6: p2wsh
         * 128 + 7: p2wsh-in-p2sh

      The distinction between p2sh and p2pkh in private key means that
      it is not possible to import a p2sh private key and associate it
      to a p2pkh address.

  * A new version of the Electrum protocol is required by the client
    (version 1.1). Servers using older versions of the protocol will
    not be displayed in the GUI.

  * By default, transactions are time-locked to the height of the
    current block. Other values of locktime may be passed using the
    command line.


# Release 2.9.4 (security update)
  * Backport security fixes from 3.0.5 after vulnerability was
    discovered in JSONRPC interface.

# Release 2.9.3
  * fix configuration file issue #2719
  * fix ledger signing of non-RBF transactions
  * disable 'spend confirmed only' option by default

# Release 2.9.2
  * force headers download if headers file is corrupted
  * add websocket to windows builds

# Release 2.9.1
  * fix initial headers download
  * validate contacts on import
  * command-line option for locktime

# Release 2.9 - Independence (July 27th, 2017)
  * Multiple Chain Validation: Electrum will download and validate
    block headers sent by servers that may follow different branches
    of a fork in the Bitcoin blockchain. Instead of a linear sequence,
    block headers are organized in a tree structure. Branching points
    are located efficiently using binary search. The purpose of MCV is
    to detect and handle blockchain forks that are invisible to the
    classical SPV model.
  * The desired branch of a blockchain fork can be selected using the
    network dialog. Branches are identified by the hash and height of
    the diverging block. Coin splitting is possible using RBF
    transaction (a tutorial will be added).
  * Multibit support: If the user enters a BIP39 seed (or uses a
    hardware wallet), the full derivation path is configurable in the
    install wizard.
  * Option to send only confirmed coins
  * Qt GUI:
    - Network dialog uses tabs and gets updated by network events.
    - The gui tabs use icons
  * Kivy GUI:
    - separation between network dialog and wallet settings dialog.
    - option for manual server entry
    - proxy configuration
  * Daemon: The wallet password can be passed as parameter to the
    JSONRPC API.
  * Various other bugfixes and improvements.


# Release 2.8.3
  * Fix crash on reading older wallet formats.
  * TrustedCoin: remove pay-per-tx option

# Release 2.8.2
  * show paid invoices in history tab
  * improve CPFP dialog
  * fixes for trezor, keepkey
  * other minor bugfixes

# Release 2.8.1
  * fix Digital Bitbox plugin
  * fix daemon jsonrpc
  * fix trustedcoin wallet creation
  * other minor bugfixes

# Release 2.8.0 (March 9, 2017)
  * Wallet file encryption using ECIES: A keypair is derived from the
    wallet password. Once the wallet is decrypted, only the public key
    is retained in memory, in order to save the encrypted file.
  * The daemon requires wallets to be explicitly loaded before
    commands can use them. Wallets can be loaded using: 'electrum
    daemon load_wallet [-w path]'. This command will require a
    password if the wallet is encrypted.
  * Invoices and contacts are stored in the wallet file and are no
    longer shared between wallets. Previously created invoices and
    contacts files may be imported from the menu.
  * Fees improvements:
    - Dynamic fees are enabled by default.
    - Child Pays For Parent (CPFP) dialog in the GUI.
    - RBF is automatically proposed for low fee transactions.
  * Support for Segregated Witness (testnet only).
  * Support for Digital Bitbox hardware wallet.
  * The GUI shows a blue icon when connected using a proxy.

# Release 2.7.18
  * enforce https on exchange rate APIs
  * use hardcoded list of exchanges
  * move 'Freeze' menu to Coins (utxo) tab
  * various bugfixes

# Release 2.7.17
  * fix a few minor regressions in the Qt GUI

# Release 2.7.16
  * add Testnet support (fix #541)
  * allow daemon to be launched in the foreground (fix #1873)
  * Qt: use separate tabs for addresses and UTXOs
  * Qt: update fee slider with a network callback
  * Ledger: new ui and mobile 2fa validation (neocogent)

# Release 2.7.15
  * Use fee slider for both static and dynamic fees.
  * Add fee slider to RBF dialog (fix #2083).
  * Simplify fee preferences.
  * Critical: Fix password update issue (#2097). This bug prevents
    password updates in multisig and 2FA wallets. It may also cause
    wallet corruption if the wallet contains several master private
    keys (such as 2FA wallets that have been restored from
    seed). Affected wallets will need to be restored again.

# Release 2.7.14
  * Merge exchange_rate plugin with main code
  * Faster synchronization and transaction creation
  * Fix bugs #2096, #2016

# Release 2.7.13
  * fix message signing with imported keys
  * add size to transaction details window
  * move plot plugin to main code
  * minor bugfixes

# Release 2.7.12
  various bugfixes

# Release 2.7.11
  * fix offline signing (issue #195)
  * fix android crashes caused by threads

# Release 2.7.10
  * various fixes for hardware wallets
  * improve fee bumping
  * separate sign and broadcast buttons in Qt tx dialog
  * allow spaces in private keys

# Release 2.7.9
  * Fix a bug with the ordering of pubkeys in recent multisig wallets.
    Affected wallets will regenerate their public keys when opened for
    the first time. This bug does not affect address generation.
  * Fix hardware wallet issues #1975, #1976

# Release 2.7.8
  * Fix a bug with fee bumping
  * Fix crash when parsing request (issue #1969)

# Release 2.7.7
  * Fix utf8 encoding bug with old wallet seeds (issue #1967)
  * Fix delete request from menu (issue #1968)

# Release 2.7.6
 * Fixes a critical bug with imported private keys (issue #1966). Keys
   imported in Electrum 2.7.x were not encrypted, even if the wallet
   had a password. If you imported private keys using Electrum 2.7.x,
   you will need to import those keys again. If you imported keys in
   2.6 and converted with 2.7.x, you don't need to do anything, but
   you still need to upgrade in order to be able to spend.
 * Wizard: Hide seed options in a popup dialog.

# Release 2.7.5
 * Add number of confirmations to request status. (issue #1757)
 * In the GUI, refer to passphrase as 'seed extension'.
 * Fix bug with utf8 encoded passphrases.
 * Kivy wizard: add a dialog for seed options.
 * Kivy wizard: add current word to suggestions, because some users
   don't see the space key.

# Release 2.7.4
 * Fix private key import in wizard
 * Fix Ledger display (issue #1961)
 * Fix old watching-only wallets (issue #1959)
 * Fix Android compatibility (issue #1947)

# Release 2.7.3
 * fix Trezor and Keepkey support in Windows builds
 * fix sweep private key dialog
 * minor fixes: #1958, #1959

# Release 2.7.2
 * fix bug in password update (issue #1954)
 * fix fee slider (issue #1953)

# Release 2.7.1
 * fix wizard crash with old seeds
 * fix issue #1948: fee slider

# Release 2.7.0 (Oct 2 2016)

 * The wallet file format has been upgraded. This upgrade is not
   backward compatible, which means that a wallet upgraded to the 2.7
   format will not be readable by earlier versions of
   Electrum. Multiple accounts inside the same wallet are not
   supported in the new format; the Qt GUI will propose to split any
   wallet that has several accounts. Make sure that you have saved
   your seed phrase before you upgrade Electrum.
 * This version introduces a separation between wallets types and
   keystores types. 'Wallet type' defines the type of Bitcoin contract
   used in the wallet, while 'keystore type' refers to the method used
   to store private keys. Therefore, so-called 'hardware wallets' will
   be referred to as 'hardware keystores'.
 * Hardware keystores:
   - The Ledger Nano S is supported.
   - Hardware keystores can be used as cosigners in multi-signature
     wallets.
   - Multiple hardware cosigners can be used in the same multisig
     wallet. One icon per keystore is displayed in the satus bar. Each
     connected device will co-sign the transaction.
 * Replace-By-Fee: RBF transactions are supported in both Qt and
   Android. A warning is displayed in the history for transactions
   that are replaceable, have unconfirmed parents, or that have very
   low fees.
 * Dynamic fees: Dynamic fees are enabled by default. A slider allows
   the user to select the expected confirmation time of their
   transaction. The expected confirmation times of incoming
   transactions is also displayed in the history.
 * The install wizards of Qt and Kivy have been unified.
 * Qt GUI (Desktop):
   - A fee slider is visible in the in send tab
   - The Address tab is hidden by default, can be shown with Ctrl-A
   - UTXOs are displayed in the Address tab
 * Kivy GUI (Android):
   - The GUI displays the complete transaction history.
   - Multisig wallets are supported.
   - Wallets can be created and deleted in the GUI.
 * Seed phrases can be extended with a user-chosen passphrase. The
   length of seed phrases is standardized to 12 words, using 132 bits
   of entropy (including 2FA seeds). In the wizard, the type of the
   seed is displayed in the seed input dialog.
 * TrustedCoin users can request a reset of their Google Authenticator
   account, if they still have their seed.


# Release 2.6.4 (bugfixes)
 * fix coinchooser bug (#1703)
 * fix daemon JSONRPC (#1731)
 * fix command-line broadcast (#1728)
 * QT: add colors to labels

# Release 2.6.3 (bugfixes)
 * fix command line parsing of transactions
 * fix signtransaction --privkey (#1715)

# Release 2.6.2 (bugfixes)
 * fix Trustedcoin restore from seed (bug #1704)
 * small improvements to kivy GUI

# Release 2.6.1 (bugfixes)
 * fix broadcast command (bug #1688)
 * fix tx dialog (bug #1690)
 * kivy: support old-type seed phrases in wizard

# Release 2.6
 * The source code is relicensed under the MIT Licence
 * First official release of the Kivy GUI, with android APK
 * The old 'android' and 'gtk' GUIs are deprecated
 * Separation between plugins and GUIs
 * The command line uses jsonrpc to communicate with the daemon
 * New command: 'notify <address> <url>'
 * Alternative coin selection policy, designed to help preserve user
   privacy. Enable it by setting the Coin Selection preference to
   Privacy.
 * The install wizard has been rewritten and improved
 * Support minikeys as used in Casascius coins for private key import
   and sweeping
 * Much improved support for TREZOR and KeepKey devices:
   - full device information display
   - initialize a new or wiped device in 4 ways:
     1) device generates a new wallet
     2) you enter a seed
     3) you enter a BIP39 mnemonic to generate the seed
     4) you enter a master private key
   - KeepKey secure seed recovery (KeepKey only)
   - change / set / disable PIN
   - set homescreen (TREZOR only)
   - set a session timeout.  Once a session has timed out, further use
     of the device requires your PIN and passhphrase to be re-entered
   - enable / disable passphrases
   - device wipe
   - multiple device support

# Release 2.5.4
 * increase MIN_RELAY_TX_FEE to avoid dust transactions

# Release 2.5.3 (bugfixes)
 * installwizard: do not allow direct copy-paste of the seed
 * installwizard: fix bug #1531 (starting offline)

# Release 2.5.2 (bugfixes)
 * fix bug #1513 (client tries to broadcast transaction while not connected)
 * fix synchronization bug (#1520)
 * fix command line bug (#1494)
 * fixes for exchange rate plugin

# Release 2.5.1 (bugfixes)
 * signatures in transactions were still using the old class
 * make sure that setup.py uses python2
 * fix wizard crash with trustedcoin plugin
 * fix socket infinite loop
 * fix history bug #1479

# Release 2.5
 * Low-S values are used in signatures (BIP 62).
 * The Kivy GUI has been merged into master.
 * The Qt GUI supports multiple windows in the same process. When a
   new Electrum instance is started, it checks for an already running
   Electrum process, and connects to it.
 * The network layer uses select(), so all server communication is
   handled by a single thread. Moreover, the synchronizer, verifier,
   and exchange rate plugin now run as separate jobs within the
   networking thread instead of as their own threads.
 * Plugins are revamped, particularly the exchange rate plugin.

# Release 2.4.4
 * Fix bug with TrustedCoin plugin

# Release 2.4.3
 * Support for KeepKey hardware wallet
 * Simplified Chinese wordlist
 * Minor bugfixes and GUI tweaks

# Release 2.4.2
 * Command line can read arguments from stdin (pipe)
 * Speedup fee computation for large transactions
 * Various bugfixes

# Release 2.4.1
 * Use ssl.PROTOCOL_TLSv1
 * Fix DNSSEC issues with ECDSA signatures
 * Replace TLSLite dependency with minimal RSA implementation
 * Dynamic Fees: using estimatefee value returned by server
 * Various GUI improvements

# Release 2.4
 * Payment to DNS names storing a Bitcoin addresses (OpenAlias) is
   supported directly, without activating a plugin. The verification
   uses DNSSEC.
 * The DNSSEC verification code was rewritten. The previous code,
   which was part of the OpenAlias plugin, is vulnerable and should
   not be trusted (Electrum 2.0 to 2.3).
 * Payment requests can be signed using Bitcoin addresses stored
   in DNS (OpenAlias). The identity of the requestor is verified using
   DNSSEC.
 * Payment requests signed with OpenAlias keys can be shared as
   bitcoin: URIs, if they are simple (a single address-type
   output). The BIP21 URI scheme is extended with 'name', 'sig',
   'time', 'exp'.
 * Arbitrary m-of-n multisig wallets are supported (n<=15).
 * Multisig transactions can be signed with TREZOR. When you create
   the multisig wallet, just enter the xpub of your existing TREZOR
   wallet.
 * Transaction fees set manually in the GUI are retained, including
   when the user uses the '!' shortcut.
 * New 'email' plugin, that enables sending and receiving payment
   requests by email.
 * The daemon supports Websocket notifications of payments.

# Release 2.3.3
 * fix proxy settings (issue #1309)
 * improvements to the transaction dialog:
    - request password after showing transaction
    - show change addresses in yellow color

# Release 2.3.2
 * minor bugfixes
 * updated ledger plugin
 * sort inputs/outputs lexicographically (BIP-LI01)

# Release 2.3.1
 * patch a bug with payment requests

# Release 2.3
 * Improved logic for the network layer.
 * More efficient coin selection. Spend oldest coins first, and
   minimize the number of transaction inputs.
 * Plugins are loaded independently of the GUI. As a result, Openalias,
   TrustedCoin and TREZOR wallets can be used with the command
   line. Example: 'electrum payto <openalias> <amount>'
 * The command line has been refactored:
  - Arguments are parsed with argparse.
  - The inline help includes a description of options.
  - Some commands have been renamed. Notably, 'mktx' and 'payto' have
    been merged into a single command, with a --broadcast option.
   Type 'electrum --help' for a complete overview.
 * The command line accepts the '!' syntax to send the maximum
   amount available. It can be combined with the '--from' option.
   Example: 'payto <destination> ! --from <from_address>'
 * The command line also accepts a '?' shortcut for private keys
   arguments, that triggers a prompt.
 * Payment requests can be managed with the command line, using the
   following commands: 'addrequest', 'rmrequest', 'listrequests'.
   Payment requests can be signed with a SSL certificate, and published
   as bip70 files in a public web directory. To see the relevant
   configuration variables, type 'electrum addrequest --help'
 * Commands can be called with jsonrpc, using the 'jsonrpc' gui. The
   jsonrpc interface may be called by php.

# Release 2.2
 * Show amounts (thousands separators and decimal point)
   according to locale in GUI
 * Show unmatured coins in balance
 * Fix exchange rates plugin
 * Network layer: refactoring and fixes

# Release 2.1.1
 * patch a bug that prevents new wallet creation.
 * fix connection issue on osx binaries

# Release 2.1
 * Faster startup, thanks to the following optimizations:
   1. Transaction input/outputs are cached in the wallet file
   2. Fast X509 certificate parser, not using pyasn1 anymore.
   3. The Label Sync plugin only requests modified labels.
 * The 'Invoices' and 'Send' tabs have been merged.
 * Contacts are stored in a separate file, shared between wallets.
 * A Search Box is available in the GUI (Ctrl-S)
 * Payment requests have an expiration date and can be exported to
   BIP70 files.
 * file: scheme support in BIP72 URIs: "bitcoin:?r=file:///..."
 * Own addresses are shown in green in the Transaction dialog.
 * Address History dialog.
 * The OpenAlias plugin was improved.
 * Various bug fixes and GUI improvements.
 * A new LabelSync backend is being used an import of the old
   database was made but since the release came later it's
   recommended that you do a full push when you upgrade.

# Release 2.0.4 - Minor GUI improvements
 * The password dialog will ask for password again if the user enters
   a wrong password
 * The Master Public Key dialog displays which keys belong to the
   wallet, and which are cosigners
 * The transaction dialog will ask to save unsaved transaction
   received from cosigner pool, when user clicks on 'Close'
 * The multisig restore dialog accepts xprv keys.
 * The network daemon must be started explicitly before using commands
   that require a connection
   Example:
     electrum daemon start
     electrum getaddressunspent <addr>
     electrum daemon status
     electrum daemon stop
   If a daemon is running, the GUI will use it.

# Release 2.0.3 - bugfixes and minor GUI improvements
 * Do not use daemon threads (fix #960)
 * Add a zoom button to receive tab
 * Add exchange rate conversion to receive tab
 * Use Tor's default port number in default proxy config

# Release 2.0.2 - bugfixes
 * Fix transaction sweep (#1066)
 * Fix thread timing bug (#1054)

# Release 2.0.1 - bugfixes
 * Fix critical bug in TREZOR address derivation: passphrases were not
   NFKD normalized. TREZOR users who created a wallet protected by a
   passphrase containing utf-8 characters with diacritics are
   affected. These users will have to open their wallet with version
   2.0 and to move their funds to a new wallet.
 * Use a file socket for the daemon (fixes network dialog issues)
 * Fix crash caused by QR scanner icon when zbar not installed.
 * Fix CosignerPool plugin
 * Label Sync plugin: Fix label sharing between multisig wallets


# Release 2.0

 * Before you upgrade, make sure you have saved your wallet seed on
   paper.

 * Documentation is now hosted on a wiki: http://electrum.orain.org

 * New seed derivation method (not compatible with BIP39). The seed
   phrase includes a version number, that refers to the wallet
   structure. The version number also serves as a checksum, and it
   will prevent the import of seeds from incompatible wallets. Old
   Electrum seeds are still supported.

 * New address derivation (BIP32). Standard wallets are single account
   and use a gap limit of 20.

 * Support for Multisig wallets using parallel BIP32 derivations and
   P2SH addresses ("2 of 2", "2 of 3").

 * Compact serialization format for unsigned or partially signed
   transactions, that includes the BIP32 master public key and
   derivation needed to sign inputs. Serialized transactions can be
   sent to cosigners or to cold storage using QR codes (using Andreas
   Schildbach's base 43 idea).

 * Support for BIP70 payment requests:
   - Verification of the chain of signatures uses tlslite.
   - In the GUI, payment requests are shown in the 'Invoices' tab.

 * Support for hardware wallets: TREZOR (SatoshiLabs) and Btchip (Ledger).

 * Two-factor authentication service by TrustedCoin. This service uses
   "2 of 3" multisig wallets and Google Authenticator. Note that
   wallets protected by this service can be deterministically restored
   from seed, without Trustedcoin's server.

 * Cosigner Pool plugin: encrypted communication channel for multisig
   wallets, to send and receive partially signed transactions.

 * Audio Modem plugin: send and receive transactions by sound.

 * OpenAlias plugin: send bitcoins to aliases verified using DNSSEC.

 * New 'Receive' tab in the GUI:
   - create and manage payment requests, with QR Codes
   - the former 'Receive' tab was renamed to 'Addresses'
   - the former Point of Sale plugin is replaced by a resizable
     window that pops up if you click on the QR code

 * The 'Send' tab in the Qt GUI supports transactions with multiple
   outputs, and raw hexadecimal scripts.

 * The GUI can connect to the Electrum daemon: "electrum -d" will
   start the daemon if it is not already running, and the GUI will
   connect to it. The daemon can serve several clients. It times out
   if no client uses if for more than 5 minutes.

 * The install wizard can be used to import addresses or private
   keys. A watching-only wallet is created by entering a list of
   addresses in the wizard dialog.

 * New file format: Wallets files are saved as JSON. Note that new
   wallet files cannot be read by older versions of Electrum. Old
   wallet files will be converted to the new format; this operation
   may take some time, because public keys will be derived for each
   address of your wallet.

 * The client accepts servers with a CA-signed SSL certificate.

 * ECIES encrypt/decrypt methods, available in the GUI and using
   the command line:
      encrypt <pubkey> <message>
      decrypt <pubkey> <message>

 * The Android GUI has received various updates and it is much more
   stable. Another script was added to Android, called Authenticator,
   that works completely offline: it reads an unsigned transaction
   shown as QR code, signs it and shows the result as a QR code.


# Release 1.9.8

* Electrum servers were upgraded to version 0.9. The new server stores
  a Patrica tree of all UTXOs, an idea proposed by Alan Reiner in the
  bitcointalk forum. This property allows the client to directly
  request the balance of any address. The new commands are:
     1. getaddressbalance <address>
     2. getaddressunspent <address>
     3. getutxoaddress <txid> <pos>

* Command-line commands that require a connection to the network spawn
  a daemon, that remains connected and handles subsequent
  commands. The daemon terminates itself if it remains unused for more
  than one minute. The purpose of this is to make scripting more
  efficient. For example, a bash script using many electrum commands
  will open only one connection.

# Release 1.9.7
* Fix for offline signing
* Various bugfixes
* GUI usability improvements
* Coinbase Buyback plugin

# Release 1.9.6
* During wallet creation, do not write seed to disk until it is encrypted.
* Confirmation dialog if the transaction fee is higher than 1mBTC.
* bugfixes

# Release 1.9.5

* Coin control: select addresses to send from
* Put addresses that have been used in a minimized section (Qt GUI)
* Allow non ascii chars in passwords


# Release 1.9.4
bugfixes: offline transactions

# Release 1.9.3
bugfixes: connection problems, transactions staying unverified

# Release 1.9.2
* fix a syntax error

# Release 1.9.1
* fix regression with --offline mode
* fix regression with --portable mode: use a dedicated directory

# Release 1.9

* The client connects to multiple servers in order to retrieve block headers and find the longest chain
* SSL certificate validation (to prevent MITM)
* Deterministic signatures (RFC 6979)
* Menu to create/restore/open wallets
* Create transactions with multiple outputs from CSV (comma separated values)
* New text gui: stdio
* Plugins are no longer tied to the qt GUI, they can reach all GUIs
* Proxy bugs have been fixed


# Release 1.8.1

* Notification option when receiving new transactions
* Confirm dialogue before sending large amounts
* Alternative datafile location for non-windows systems
* Fix offline wallet creation
* Remove enforced tx fee
* Tray icon improvements
* Various bugfixes


# Release 1.8

* Menubar in classic gui
* Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code.
* Fixed bug where never-confirmed transactions prevented further spending


# Release 1.7.4

* Increase default fee
* fix create and restore in command line
* fix verify message in the gui


# Release 1.7.3:

* Classic GUI can display amounts in mBTC
* Account selector in the classic GUI
* Changed the way the portable flag uses without supplying a -w argument
* Classic GUI asks users to enter their seed on wallet creation


# Release 1.7.2:

* Transactions that are in the same block are displayed in chronological order in the history.
* The client computes transaction priority and rejects zero-fee transactions that need a fee.
* The default fee was lowered to 200 uBTC per kb.
* Due to an internal format change, your history may be pruned when
  you open your wallet for the first time after upgrading to 1.7.2. If
  this is the case, please visit a full server to restore your full
  history. You will only need to do that once.


# Release 1.7.1:  bugfixes.


# Release 1.7

* The Classic GUI can be extended with plugins. Developers who want to
add new features or third-party services to Electrum are invited to
write plugins. Some previously existing and non-essential features of
Electrum (point-of-sale mode, qrcode scanner) were removed from the
core and are now available as plugins.

* The wallet waits for 2 confirmations before creating new
addresses. This makes recovery from seed more robust. Note that it
might create unwanted gaps if you use Electrum 1.7 together with older
versions of Electrum.

* An interactive Python console replaces the 'Wall' tab. The provided
python environment gives users access to the wallet and gui. Most
electrum commands are available as python function in the
console. Custom scripts an be loaded with a "run(filename)"
command. Tab-completions are available.

* The location of the Electrum folder in Windows changed from
LOCALAPPDATA to APPDATA. Discussion on this topic can be found here:
https://bitcointalk.org/index.php?topic=144575.0

* Private keys can be exported from within the classic GUI:
  For a single address, use the address menu (right-click).
  To export the keys of your entire wallet, use the settings dialog (import/export tab).

* It is possible to create, sign and redeem multisig transaction using the
command line interface.  This is made possible by the following new commands:
    dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction
The syntax of these commands is similar to their bitcoind counterpart.
For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071

* Offline wallets now work in a way similar to Armory:
  1. user creates an unsigned transaction using the online (watching-only) wallet.
  2. unsigned transaction is copied to the offline computer, and signed by the offline wallet.
  3. signed transaction is copied to the online computer, broadcasted by the online client.
  4. All these steps can be done via the command line interface or the classic GUI.

* Many command line commands have been renamed in order to make the syntax consistent with bitcoind.

# Release 1.6.2

== Classic GUI
* Added new version notification

# Release 1.6.1 (11-01-2013)

== Core
* It is now possible to restore a wallet from MPK (this will create a watching-only wallet)
* A switch button allows to easily switch between Lite and Classic GUI.

== Classic GUI
* Seed and MPK help dialogs were rewritten
* Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin.

== Lite GUI
* The receiving button was removed in favor of a menu item to keep it consistent with the history toggle.

# Release 1.6.0 (07-01-2013)

== Core
* (Feature) Add support for importing, signing and verifiying compressed keys
* (Feature) Auto reconnect to random server on disconnect
* (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server
* (Bug) Under rare circumstances changing password with incorrect password could damage wallet

== Lite GUI
* (Chore) Use blockchain.info for exchange rate data
* (Feature) added currency conversion for BRL, CNY, RUB
* (Feature) Saraha theme
* (Feature) csv import/export for transactions including labels

== Classic GUI
* (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms
* (Feature) Debits in history shown in red
* (Feature) csv import/export for transactions including labels

# Release 1.5.8 (02-01-2013)

== Core
* (Bug) Fix pending address balance on received coins for pruning servers
* (Bug) Fix history command line option to show output again (regression by SPV)
* (Chore) Add timeout to blockchain headers file download by HTTP
* (Feature) new option: -L, --language: default language used in GUI.

== Lite GUI
* (Bug) Sending to auto-completed contacts works again
* (Chore) Added version number to title bar

== Classic GUI
* (Feature) Language selector in options.

# Release 1.5.7 (18-12-2012)

== Core
* The blockchain headers file is no longer included in the packages, it is downloaded on startup.
* New command line option: -P or --portable, for portable wallets. With this flag, all preferences are saved to the wallet file, and the blockchain headers file is in the same directory as the wallet

== Lite GUI
* (Feature) Added the ability to export your transactions to a CSV file.
* (Feature) Added a label dialog after sending a transaction.
* (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses.
* (Chore)   Removed server selection. With all the new server options a simple menu item does not suffice anymore.