Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
251Note: some low-level RPC changes mainly useful for testing are described252in the Low-level Changes section below.254- `getpeerinfo` now returns an additional `minfeefilter` field set to255the peer's BIP133 fee filter. You can use this to detect that you256have peers that are willing to accept transactions below the default257minimum relay fee.259- The mempool RPCs, such as `getrawmempool` with `verbose=true`, now260return an additional "bip125-replaceable" value indicating whether the261transaction (or its unconfirmed ancestors) opts-in to asking nodes and262miners to replace it with a higher-feerate transaction spending any of263the same inputs.265- `settxfee` previously silently ignored attempts to set the fee below266the allowed minimums. It now prints a warning. The special value of267"0" may still be used to request the minimum value.269- `getaddressinfo` now provides an `ischange` field indicating whether270the wallet used the address in a change output.272- `importmulti` has been updated to support P2WSH, P2WPKH, P2SH-P2WPKH,273and P2SH-P2WSH. Requests for P2WSH and P2SH-P2WSH accept an additional274`witnessscript` parameter.276- `importmulti` now returns an additional `warnings` field for each277request with an array of strings explaining when fields are being278ignored or are inconsistent, if there are any.280- `getaddressinfo` now returns an additional `solvable` boolean field281when Bitcoin Core knows enough about the address's scriptPubKey,282optional redeemScript, and optional witnessScript in order for the283wallet to be able to generate an unsigned input spending funds sent to284that address.286- The `getaddressinfo`, `listunspent`, and `scantxoutset` RPCs now287return an additional `desc` field that contains an output descriptor288containing all key paths and signing information for the address289(except for the private key). The `desc` field is only returned for290`getaddressinfo` and `listunspent` when the address is solvable.292- `importprivkey` will preserve previously-set labels for addresses or293public keys corresponding to the private key being imported. For294example, if you imported a watch-only address with the label "cold295wallet" in earlier releases of Bitcoin Core, subsequently importing296the private key would default to resetting the address's label to the297default empty-string label (""). In this release, the previous label298of "cold wallet" will be retained. If you optionally specify any299label besides the default when calling `importprivkey`, the new label300will be applied to the address.302- See the [Mining](#mining) section for changes to `getblocktemplate`.304- `getmininginfo` now omits `currentblockweight` and `currentblocktx`305when a block was never assembled via RPC on this node.307- The `getrawtransaction` RPC & REST endpoints no longer check the308unspent UTXO set for a transaction. The remaining behaviors are as309follows: 1. If a blockhash is provided, check the corresponding block.3102. If no blockhash is provided, check the mempool. 3. If no blockhash311is provided but txindex is enabled, also check txindex.313- `unloadwallet` is now synchronous, meaning it will not return until314the wallet is fully unloaded.316- `importmulti` now supports importing of addresses from descriptors. A317"desc" parameter can be provided instead of the "scriptPubKey" in a318request, as well as an optional range for ranged descriptors to319specify the start and end of the range to import. Descriptors with key320origin information imported through `importmulti` will have their key321origin information stored in the wallet for use with creating PSBTs.322More information about descriptors can be found323[here](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md).325- `listunspent` has been modified so that it also returns326`witnessScript`, the witness script in the case of a P2WSH or327P2SH-P2WSH output.329- `createwallet` now has an optional `blank` argument that can be used330to create a blank wallet. Blank wallets do not have any keys or HD331seed. They cannot be opened in software older than 0.18. Once a blank332wallet has a HD seed set (by using `sethdseed`) or private keys,333scripts, addresses, and other watch only things have been imported,334the wallet is no longer blank and can be opened in 0.17.x. Encrypting335a blank wallet will also set a HD seed for it.337Deprecated or removed RPCs338--------------------------340- `signrawtransaction` is removed after being deprecated and hidden341behind a special configuration option in version 0.17.0.343- The 'account' API is removed after being deprecated in v0.17. The344'label' API was introduced in v0.17 as a replacement for accounts.345See the [release notes from346v0.17](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.17.0.md#label-and-account-apis-for-wallet)347for a full description of the changes from the 'account' API to the348'label' API.350- `addwitnessaddress` is removed after being deprecated in version3510.16.0.353- `generate` is deprecated and will be fully removed in a subsequent354major version. This RPC is only used for testing, but its355implementation reached across multiple subsystems (wallet and mining),356so it is being deprecated to simplify the wallet-node interface.357Projects that are using `generate` for testing purposes should358transition to using the `generatetoaddress` RPC, which does not359require or use the wallet component. Calling `generatetoaddress` with360an address returned by the `getnewaddress` RPC gives the same361functionality as the old `generate` RPC. To continue using `generate`362in this version, restart bitcoind with the `-deprecatedrpc=generate`363configuration option.365- Be reminded that parts of the `validateaddress` command have been366deprecated and moved to `getaddressinfo`. The following deprecated367fields have moved to `getaddressinfo`: `ismine`, `iswatchonly`,368`script`, `hex`, `pubkeys`, `sigsrequired`, `pubkey`, `embedded`,369`iscompressed`, `label`, `timestamp`, `hdkeypath`, `hdmasterkeyid`.371- The `addresses` field has been removed from the `validateaddress`372and `getaddressinfo` RPC methods. This field was confusing since373it referred to public keys using their P2PKH address. Clients374should use the `embedded.address` field for P2SH or P2WSH wrapped375addresses, and `pubkeys` for inspecting multisig participants.377REST changes378------------380- A new `/rest/blockhashbyheight/` endpoint is added for fetching the381hash of the block in the current best blockchain based on its height382(how many blocks it is after the Genesis Block).384Graphical User Interface (GUI)385------------------------------387- A new Window menu is added alongside the existing File, Settings, and388Help menus. Several items from the other menus that opened new389windows have been moved to this new Window menu.391- In the Send tab, the checkbox for "pay only the required fee" has been392removed. Instead, the user can simply decrease the value in the393Custom Feerate field all the way down to the node's configured minimum394relay fee.396- In the Overview tab, the watch-only balance will be the only balance397shown if the wallet was created using the `createwallet` RPC and the398`disable_private_keys` parameter was set to true.400- The launch-on-startup option is no longer available on macOS if401compiled with macosx min version greater than 10.11 (use402CXXFLAGS="-mmacosx-version-min=10.11"403CFLAGS="-mmacosx-version-min=10.11" for setting the deployment sdk404version)406Tools407-----409- A new `bitcoin-wallet` tool is now distributed alongside Bitcoin410Core's other executables. Without needing to use any RPCs, this tool411can currently create a new wallet file or display some basic412information about an existing wallet, such as whether the wallet is413encrypted, whether it uses an HD seed, how many transactions it414contains, and how many address book entries it has.416Planned changes417===============419This section describes planned changes to Bitcoin Core that may affect420other Bitcoin software and services.422- Since version 0.16.0, Bitcoin Core’s built-in wallet has defaulted to423generating P2SH-wrapped segwit addresses when users want to receive424payments. These addresses are backwards compatible with all425widely-used software. Starting with Bitcoin Core 0.20 (expected about426a year after 0.18), Bitcoin Core will default to native segwit427addresses (bech32) that provide additional fee savings and other428benefits. Currently, many wallets and services already support sending429to bech32 addresses, and if the Bitcoin Core project sees enough430additional adoption, it will instead default to bech32 receiving431addresses in Bitcoin Core 0.19 (approximately November 2019).432P2SH-wrapped segwit addresses will continue to be provided if the user433requests them in the GUI or by RPC, and anyone who doesn’t want the434update will be able to configure their default address type.435(Similarly, pioneering users who want to change their default now may436set the `addresstype=bech32` configuration option in any Bitcoin Core437release from 0.16.0 up.)439Deprecated P2P messages440-----------------------442- BIP 61 reject messages are now deprecated. Reject messages have no use443case on the P2P network and are only logged for debugging by most444network nodes. Furthermore, they increase bandwidth and can be harmful445for privacy and security. It has been possible to disable BIP 61446messages since v0.17 with the `-enablebip61=0` option. BIP 61 messages447will be disabled by default in a future version, before being removed448entirely.450Low-level changes451=================453This section describes RPC changes mainly useful for testing, mostly not454relevant in production. The changes are mentioned for completeness.456RPC457---459- The `submitblock` RPC previously returned the reason a rejected block460was invalid the first time it processed that block, but returned a461generic "duplicate" rejection message on subsequent occasions it462processed the same block. It now always returns the fundamental463reason for rejecting an invalid block and only returns "duplicate" for464valid blocks it has already accepted.466- A new `submitheader` RPC allows submitting block headers independently467from their block. This is likely only useful for testing.469- The `signrawtransactionwithkey` and `signrawtransactionwithwallet`470RPCs have been modified so that they also optionally accept a471`witnessScript`, the witness script in the case of a P2WSH or472P2SH-P2WSH output. This is compatible with the change to473`listunspent`.475- For the `walletprocesspsbt` and `walletcreatefundedpsbt` RPCs, if the476`bip32derivs` parameter is set to true but the key metadata for a477public key has not been updated yet, then that key will have a478derivation path as if it were just an independent key (i.e. no479derivation path and its master fingerprint is itself).481Configuration482-------------484- The `-usehd` configuration option was removed in version 0.16. From485that version onwards, all new wallets created are hierarchical486deterministic wallets. This release makes specifying `-usehd` an487invalid configuration option.489Network490-------492- This release allows peers that your node automatically disconnected493for misbehavior (e.g. sending invalid data) to reconnect to your node494if you have unused incoming connection slots. If your slots fill up,495a misbehaving node will be disconnected to make room for nodes without496a history of problems (unless the misbehaving node helps your node in497some other way, such as by connecting to a part of the Internet from498which you don't have many other peers). Previously, Bitcoin Core499banned the IP addresses of misbehaving peers for a period of time500(default of 1 day); this was easily circumvented by attackers with
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.