1. Introduction
2. Downloading, Configuring and Running the Bitcoin Core Node and IntelliJ IDEA
3. What is Bitcoin
4. Bitcoin Transactions and Private Keys
5. Bitcoin Wallets, the Blockchain and Mining
6. The Bitcoin Network, Ecosystem and Principles
7. Starting the Project
8. Configuring the GUI
9. Creating our First Test
10. Mnemonic Seeds
11. Create Wallet Dialog Window
12. Creating the Mnemonic Seed
13. Create Wallet Dialog Window Buttons and Validations
14. The Current Wallet Observable
15. The Receive Bitcoin Tab
16. Bitcoin Addresses and HD Wallets
17. Creating our wallets extended public keys
18. Generating Segwit Addresses
19. Understanding Segwit Addresses and Introduction to Bitcoin Network Environments
20. Generating Segwit Addresses Part II
21. Adding Support for Main Net, Test Net, and Reg Test Environments
22. Preparing our Bitcoin Core Node for Communicating With Our Wallet
23. Creating the Node Client for Creating and Listing Wallets
24. Node Clients for Loading a Wallet, Get a New Address, Checking our Balance
25. Sending Bitcoins From the Node to the Application
26. The Addresses Table
27. Importing our Application Addresses to Our Bitcoin Node
28. Calling our Bitcoin Node Asynchronously
29. Listening for Transactions from the Node with ZeroMQ
30. Bitcoin Transactions Inputs, Outputs, Scripts, and the UTXO Set
32. Updating the Current Wallet Addresses
33. Showing Address Information in the Addresses Table
34. Generating More Addresses
35. Testing Confirmations
36. The Transactions Table
37. Populating the Transactions Table
38. Improving Tests for the Transactions Table and Running Our Application
39. Listening for Blocks and Formatting Balances
40. The Total Wallets Balance
41. Calculating and Showing the Wallets Total Balance
42. Adding More Tests for the Total Balance Feature
43. The Send Bitcoin Tab
44. Transaction Fees and Sizes
45. Creating the Transaction Size Calculator and The Node Estimate Smart Fee Client
46. Coin Selection and Dust
47. Implementing the Dust Calculator and Other Utilities
48. Implementing the Single Random Draw Coin Selector
49. How Segwit Transactions are Built and Validated
50. Implementing the Transaction Creator
51. The Send Transaction Dialog Window
52. Showing Transaction Data in the Send Bitcoin Dialog Window
53. How Transaction Signatures Work
54. How Our Wallet and Node Will Handle Sent Transactions
55. Signing and Sending Segwit Transactions
56. Fixing Transaction and Addresses Tables and Balances
57. Changing Change Addresses. Adding Error Alert for Wrong Passwords
58. More Error Messages and Tests for the Send Bitcoin Feature
59. A Necessary Refactor
60. A Necessary Refactor Part II
61. Nested Segwit Addresses
62. Receiving Bitcoin in Nested Segwit Addresses
63. Sending Bitcoin to Nested Segwit Addresses and Testing our Wallet
64. Sending Bitcoin to Legacy Addresses
65. Saving and Encrypting our Wallet
66. The Load Wallet Menu
67. Loading a Wallet
68. Plausible Deniability, Refactoring and More Tests for the Load Wallet Feature
69. Fixing Addresses, Transactions and Balances
70. Updating the Number of Generated Addresses and Optimizing Tests
71. Importing a Wallet with the Mnemonic Seed
72. Validating Addresses
73. Creating a Progress Bar
74. Updating Dependencies
75. Running our Wallet on the Main Net Environment
76. Extra class - Bitcoin Core v26