Bitcoin Core
Almost all modern crypto wallets allow you to store and send Bitcoin. However, 10 years ago the situation was radically different: then there was only one application for interacting with the network of the main cryptocurrency - Bitcoin Core. And today, despite the emergence of many alternative wallets, this software still continues to play a vital role in the operation of the first blockchain.
How does the official Bitcoin Core wallet differ from other wallets? Why does it continue to be used despite the availability of more convenient options? What features and disadvantages does it have? All these issues, as well as the nuances of use, will be discussed in detail throughout this material.
- What is Bitcoin Core
- Installing and getting started with Bitcoin Core
- Setting up the official Bitcoin Core client
- Using Bitcoin Core as a Wallet Creating Addresses and Receiving Payments
- Sending transactions via Bitcoin Core
- Backing up your wallet and retrieving private keys
What is Bitcoin Core
Official Bitcoin Core Bitcoin
Core
is an official open source software that combines the functions of a Bitcoin wallet and a full node with which network participants can maintain its functionality.
The first version of the application was developed in 2009 by Satoshi Nakamoto and bore the same name as the main product - Bitcoin. Until 2011, the wallet code was published on the most popular developer portal at that time, SourceForge. Then there was a “move” to GitHub, where all development results are located to this day. From the very beginning, the official web resource of the blockchain project and wallet was the Bitcoin.org website, from which you can always download the latest version of the application.
Since 2012, the non-profit organization Bitcoin Foundation has been supporting the development of all software based on the original Bitcoin code. On her initiative, in December 2013, the wallet was renamed Bitcoin Core, by which it is still known today.
In October 2016, this Bitcoin wallet became one of the first applications in which it became possible to send transactions based on the SegWit technology, which was still being tested at that time, aimed at improving the scaling and throughput of the network. And in versions released after February 2018, support for Segregated Witness is already enabled by default.
Currently, Bitcoin Core is one of the few continuously growing cryptocurrency wallets that exclusively support BTC. Available only in a desktop version for computers running Windows, MacOS or Linux. It belongs to the category of “thick” wallets and is its most popular representative.
For a video review of Bitcoin Core on YouTube, watch the video below:
Bitcoin Core Review
Installing and getting started with Bitcoin Core
Installing Bitcoin Core
First of all, you need to download the latest version of the application from the official Bitcoin Core website at Bitcoin.org, suitable for the operating system installed on the user’s computer. Then you need to install the downloaded software in any convenient location (by default - C:\Program Files\Bitcoin).
When you first launch the application, you will need to specify the path to store the blockchain and the file with the user’s wallet. This can be either the default folder or any other. A prerequisite for this is location in a hard drive partition with at least 350 GB of free space (at the time of writing this material).
Downloading the Bitcoin Core wallet
It is recommended that in addition to the current blockchain size indicated in the application window, there should be at least 20–30 gigabytes of reserve space. This is necessary to ensure uninterrupted operation of Bitcoin Core in the near future, since the weight of the network is steadily increasing (by about 150 MB every day).
☝️
After this, synchronization of the wallet client with the network will automatically begin. As a rule, this process takes at least several days. It all depends on the bandwidth of the Internet connection, the load on the computer with various tasks and the time it stays online.
Ideally, after running Bitcoin Core for the first time, you should leave your PC turned on until synchronization is complete. If, instead, you actively use your computer and periodically disconnect it from the network, downloading the blockchain can take a week or even more.
☝️
If disconnecting your PC from the network cannot be avoided, it is important to give the program the opportunity to complete work with already downloaded files in order to avoid errors that may require you to start the entire process from the beginning.
During synchronization, the application window will display progress as a percentage, the date of the last downloaded block and the estimated time until completion. There you can also see a warning that due to the incomplete loading of the transaction history, the wallet balance may be displayed incorrectly.
For the same reason, you cannot send coins received during a time period that has not yet been synchronized.
Bitcoin Core Wallet Synchronization
After the download is complete, you can start using Bitcoin Core as a wallet and/or node, having previously made the necessary settings.
Mobile Bitcoin wallet
Download mobile wallet for iOS : Blockchain, BitWallet, BreadWallet, Coinbase, Circle, Xapo Download mobile wallet for Android : BitcoinWallet, Blockchain, Mycelium, HiveWallet, CoinBase, Xapo
PC wallets are quite good, but they are not very convenient when you are on the street and want to pay for an item in a store. This is where mobile wallets come to the rescue. Working like an app on your smartphone, the wallet stores private keys for your Bitcoin addresses and gives you the ability to pay directly from your phone. In some cases, you can even use contactless communication technology (NFC) to make payments by simply touching your smartphone to the reader without entering any data.
Mobile wallets have an important common feature: they are not full-fledged Bitcoin clients, that is, they do not need to download the entire blockchain, which is constantly growing and is several gigabytes in size. Otherwise, this would lead to huge mobile traffic, for which your telecom operator would happily present the bill. In any case, most phones do not have enough memory to store the entire blockchain.
Instead, mobile clients have a simplified payment verification (SPV) system. They download a very small subset of blocks and rely on trusted nodes on the Bitcoin network to confirm that the data they have is correct.
Setting up the official Bitcoin Core client
Official Bitcoin Core
All Bitcoin Core parameters available for change are located in the “Settings/Options” menu:
- The main ones
- on this tab you can configure the application to autostart when the system starts, change the default database cache, and also use the function of reducing the stored blockchain to several gigabytes (after full synchronization, only the last 551 blocks are actually needed for the wallet to work).
Bitcoin Core Settings: General
- Wallet
- There are only two options here that allow you to enable coin management and the use of inputs that have not yet been confirmed in outgoing transactions.
Bitcoin Core Settings: Wallet
- Network
- for the application to function normally as a node and synchronize with the network, this section must have a checkmark in the “Allow incoming connections” line. The remaining settings are optional and can be used in case of problems with access to the blockchain or to increase confidentiality.
Bitcoin Core Settings: Network
- Window
- here you configure the rules for minimizing the application and displaying it in the system tray.
Bitcoin Core Settings: Window
- Display
- in this tab you can change the localization of the application through the “User Interface Language” drop-down menu. In the “Display amounts in units” line, it is possible to set the display of the balance and transaction details in one of the options: BTC (bitcoin), mBTC (millibitcoin), µBTC (microbitcoin) or satoshi (satoshi). There is also a field for specifying a third-party explorer, so that the description of transactions in the wallet displays links for viewing them through a browser.
Bitcoin Core Settings: Display
All of the listed settings and various additional commands for Bitcoin Core can be made through the Console, which is launched by the same item from the “Window” menu. This tool is typically used by advanced users and developers. A complete list of available commands can be viewed through the Help/Command Line Options menu.
List of commands for the Bitcoin Core command line
Using Bitcoin Core as a Wallet
Official Wallet
When you launch Bitcoin Core, by default, the Overview tab always opens, which shows the wallet balance (available, pending transfers, and total), as well as a list of recent transactions where the user has sent or received funds. A more detailed list of transactions involving the current wallet is available on the “Transactions” tab.
Overview of balance and recent transactions in Bitcoin Core
Before you start working with your wallet, the first step is to encrypt it with a strong password. This is done through the “Settings/Encrypt wallet” menu.
☝️
In this case, it is advisable to pay attention to the program’s warning that if the user forgets the password, he will forever lose his BTC.
This combination will need to be entered each time you unlock your wallet and send transactions. Therefore, it is important to keep it in a safe place.
Wallet encryption process via Bitcoin Core
If necessary, the password can be changed through the corresponding item in the “Settings” menu. We will consider the remaining stages of interaction with the wallet in more detail.
Creating addresses and receiving payments
To create a new BTC address (public key) in Bitcoin Core, you need to use the “Get” function. In the window that opens, you can specify a name for the new wallet (the “Label” field) to make it easier to distinguish it from others. It will only be visible to the current user within the application. In the “Quantity” field, you can specify the amount if the address is created to request a payment of a specific amount from someone.
Also in the form for generating a new wallet there is an option “Create a native segwit (bench32) address.” If you tick it, the new address can be used in transactions based on SegWit technology. This means that they will be completed faster and with cheaper fees, compared to using the older legacy and p2sh standards.
In the “Message” field you can enter a message for the person to whom the payment request will be sent. All listed parameters are optional, i.e. it is not necessary to use them. The “Request Payment” button can be clicked with or without filled-in fields.
Creating a new BTC address via Bitcoin Core
After this, a window opens with a QR code in which the address of the created wallet will be encrypted. If the number of coins was specified before, when decoding the QR code, the sending amount on the side of the potential sender will automatically be set to the number specified by the recipient.
Details of the new BTC address created for a specific payment
Also, the new address and accompanying data will be displayed under the QR code in text format and as a URI - a hyperlink that can be opened on other computers with the Bitcoin Core client installed through the “File/Open URI...” menu.
After creation, all new wallets are included in the “History of Payment Requests”, where they can be viewed and, if necessary, deleted. But as soon as a transfer is received on any of them, it will immediately disappear from this list. This is done for security so that Bitcoin Core users use new addresses each time they receive payments. True, you can still view and reuse such wallets through the “Window/Receipt Addresses” menu.
List of addresses used to receive payments through Bitcoin Core
Sending transactions via Bitcoin Core
To use the function of sending payments, you need to go to the “Send” tab and fill out the form that appears. The “Pay” line indicates the address of the transfer recipient. You can insert it manually or select it from the list of previously used ones. The label field is filled in with an arbitrary designation, under which the recipient’s address will later be added to the mentioned list (available for viewing through the “Window/Addresses for shipments” menu).
In the “Quantity” field, enter the transfer amount. Next to it there is the option “Subtract commission from amount”. By checking this box, transaction fees will be deducted from the number of coins sent. Consequently, a slightly reduced amount will reach the recipient.
☝️
To prevent the commission from affecting the amount of BTC sent, you should not check the box.
If you click the “Use available balance” button, the payment amount will be automatically set according to the number of available coins in the wallet.
The next section in the outgoing transaction preparation form is about setting up the commission. Here you can use the “Recommended value” option. In this case, the commission amount will be automatically set to the value calculated by the system, depending on the current network load and the expected confirmation time (selected in the corresponding drop-down menu).
You can also independently set the commission per kilobyte of transaction data through the “Custom value” line. It is worth paying attention to the fact that setting commissions that are too low may make it impossible to successfully confirm a transaction.
The next option, called “Enable Replace-by-fee”, is used to allow the fee to increase and speed up the transaction if it gets stuck in the mempool.
Also at this stage, you can use the “Add recipient” button to increase the number of outgoing payment recipients. The fields that appear are filled in similarly to the steps described above.
At this point, the execution of the outgoing transaction can be considered completed. All that remains is to click “Send” and confirm your intention using the password with which the wallet is encrypted.
Sending a transaction via Bitcoin Core
Backing up your wallet and retrieving private keys
You can create a backup copy of your wallet in Bitcoin Core using the function of the same name from the “File” menu. The application will ask you to specify the path to save it.
Backing up your wallet in Bitcoin Core
You can also use any file explorer to open the Wallets folder, located in the directory that was selected by the user to store the blockchain. An automatically generated “wallet.dat” file will be located there, copying which will lead to a backup copy of the wallet, no different from the one obtained through the program menu.
It is recommended to perform backups as often as possible, preferably after each operation of receiving funds and/or creating a new BTC address, choosing a reliable medium for storing the resulting file, preferably disconnected from the network. Only in this case will you be able to restore access to your balance after reinstalling the Bitcoin Core application or launching it on another computer. To restore, you will need to place the backup file in the Wallets folder, agreeing to replace the existing one.
If you use an outdated copy of the wallet, access to all coins received after its creation will be lost. If the user does not have a backup wallet.dat file, it will not be possible to restore access to funds at all.
When a user needs a private key from any of the addresses created in Bitcoin Core, for example, to import it into another wallet application, it can be viewed using the “dumpprivkey ...” command, which is entered into the console mentioned above. In this case, instead of the “three dots”, a BTC address is entered, from which you need to obtain a private key.
For the command to work, you first need to unlock it by specifying a password using the “walletpassphrase pass time” command (instead of pass, enter the password, instead of time - the period for which the wallet is unlocked).
Exporting a private key via the Bitcoin Core console
How to send transactions in Bitcoin Core. Setting up commissions
At the top of the window, click the "Submit" button.
Send a transaction from a Bitcoin Core wallet
Enter the Bitcoin address you want to send funds to. The cryptocurrency BTC and its addresses are strictly supported.
If desired, provide a label for the address to make it easier to later find it among other used addresses.
Enter the amount. You can do this in BTC or its fractions (mBTC, μBTC, satoshi). Or click on the “Use available balance” button to send everything you have at once. You can also check whether the commission is included in the amount.
Now you need to set up the commission. When the blockchain is synchronized, the wallet will automatically determine the currently optimal commission; if necessary, you can increase or decrease it. Manual editing of the commission is carried out by clicking on the “Select” button.
Manual commission editing
Switch to the Custom Value option. Enter the amount in BTC, mBTC, μBTC or satoshi that you will pay per kilobyte of the transaction sent. There are special services to calculate optimal fees, for example, https://bitcoinfees.earn.com/.
You can increase the commission without fear, this will speed up the transaction. But you need to lower it with caution - otherwise the payment will freeze, because... miners will have no financial incentive to validate it.
A little about the Replace-by-fee checkbox . This is a way to “push” a transaction that is stuck due to the fee being too low. Represents a node policy that allows an unconfirmed transaction in the mempool to be replaced by another transaction with a higher fee, but using the same input data. The most widely used form of RBF today is considered to be BIP125 opt-in RBF, implemented in Bitcoin Core.
Bitcoin Core supports multiple transactions. To take advantage of this feature, click the "Add Recipient" button at the bottom of the screen to specify one or more addresses.
Cold Storage with Bitcoin Core
Cold storage of bitcoins
To organize “cold” storage of bitcoins through this application, you need to follow just a few simple steps:
- In a fully synchronized wallet, on the “Receive” tab, you need to create the required number of new addresses and write down/print their addresses on paper.
- Make several backup copies of the wallet.dat file on different offline media.
- Delete the original file from the PC with the wallet installed;
- Transfer BTC to printed addresses.
As a result, the coins will end up on BTC addresses whose private keys have never been used to access them. As long as this condition persists, we will be talking about “cold” storage of bitcoins. To gain access to these coins, you need to copy the backup wallet.dat to the appropriate folder on the computer with Bitcoin Core installed.
Using Bitcoin Core to Run a Full Node
Launching a full node
The main task of a full node is to validate blocks with transactions and then relay them to other nodes. Thus, each running and fully synchronized Bitcoin Core client helps maintain the health of the network, and its local storage contains an updated copy of the entire blockchain with a complete transaction history.
All you need to do to launch a full Bitcoin node is to install the Bitcoin Core application and wait for the entire blockchain to download (described in detail in the section on getting started with your wallet). You also need to make sure that incoming connections are allowed in the wallet’s network options and TCP port 8333 is open (in the router and firewall settings).
For a full node to function fully, the computer on which it is installed must be online for at least 6 hours every day. All processes are performed by the program independently and do not require any user participation.
At the moment, running a full node has nothing to do with Bitcoin mining. This feature was previously present in Bitcoin Core, but due to low mining efficiency, it was removed from all versions of the application starting in August 2016.
☝️
Therefore, all full nodes on Bitcoin Core are now launched exclusively on a volunteer basis (without receiving remuneration) to maintain the operation of the network.
Of the 9,714 nodes currently active, about 8,000 are on Bitcoin Core. The remaining 1,631 are run through alternative apps like Armory, mSIGNA and Bitcoin Knots.
Watch the video with a detailed overview of the Bitcoin Core wallet:
Bitcoin Core Review
Armory
For users who value their own security above all else, we recommend using Armory, an add-on to Bitcoin Core. This wallet is capable of providing enhanced security - when using the Armory Offline Wallets function, keys are stored offline on USB or paper, without requiring an online connection, but all user transactions are saved. They are first generated offline, after which the keys are “removed” into storage, the wallet goes online and exchanges transactions with the network. For more information about the capabilities of Armory, its interface and how to work with it, see this presentation