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.
126.0 Release Notes2==================4Bitcoin Core version 26.0 is now available from:6<https://bitcoincore.org/bin/bitcoin-core-26.0/>8This release includes new features, various bug fixes and performance9improvements, as well as updated translations.11Please report bugs using the issue tracker at GitHub:13<https://github.com/bitcoin/bitcoin/issues>15To receive security and update notifications, please subscribe to:17<https://bitcoincore.org/en/list/announcements/join/>19How to Upgrade20==============22If you are running an older version, shut it down. Wait until it has completely23shut down (which might take a few minutes in some cases), then run the24installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)25or `bitcoind`/`bitcoin-qt` (on Linux).27Upgrading directly from a version of Bitcoin Core that has reached its EOL is28possible, but it might take some time if the data directory needs to be migrated. Old29wallet versions of Bitcoin Core are generally supported.31Compatibility32==============34Bitcoin Core is supported and extensively tested on operating systems35using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Bitcoin36Core should also work on most other Unix-like systems but is not as37frequently tested on them. It is not recommended to use Bitcoin Core on38unsupported systems.40Notable changes41===============43P2P and network changes44-----------------------46- Experimental support for the v2 transport protocol defined in47[BIP324](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki) was added.48It is off by default, but when enabled using `-v2transport` it will be negotiated49on a per-connection basis with other peers that support it too. The existing50v1 transport protocol remains fully supported.52- Nodes with multiple reachable networks will actively try to have at least one53outbound connection to each network. This improves individual resistance to54eclipse attacks and network level resistance to partition attacks. Users no55longer need to perform active measures to ensure being connected to multiple56enabled networks. (#27213)58Pruning59-------61- When using assumeutxo with `-prune`, the prune budget may be exceeded if it is set62lower than 1100MB (i.e. `MIN_DISK_SPACE_FOR_BLOCK_FILES * 2`). Prune budget is normally63split evenly across each chainstate, unless the resulting prune budget per chainstate64is beneath `MIN_DISK_SPACE_FOR_BLOCK_FILES` in which case that value will be used. (#27596)66Updated RPCs67------------69- Setting `-rpcserialversion=0` is deprecated and will be removed in70a future release. It can currently still be used by also adding71the `-deprecatedrpc=serialversion` option. (#28448)73- The `hash_serialized_2` value has been removed from `gettxoutsetinfo` since the value it74calculated contained a bug and did not take all data into account. It is superseded by75`hash_serialized_3` which provides the same functionality but serves the correctly calculated hash. (#28685)77- New fields `transport_protocol_type` and `session_id` were added to the `getpeerinfo` RPC to indicate78whether the v2 transport protocol is in use, and if so, what the session id is.80- A new argument `v2transport` was added to the `addnode` RPC to indicate whether a v2 transaction connection81is to be attempted with the peer.83- [Miniscript](https://bitcoin.sipa.be/miniscript/) expressions can now be used in Taproot descriptors for all RPCs working with descriptors. (#27255)85- `finalizepsbt` is now able to finalize a PSBT with inputs spending [Miniscript](https://bitcoin.sipa.be/miniscript/)-compatible Taproot leaves. (#27255)87Changes to wallet related RPCs can be found in the Wallet section below.89New RPCs90--------92- `loadtxoutset` has been added, which allows loading a UTXO snapshot of the format93generated by `dumptxoutset`. Once this snapshot is loaded, its contents will be94deserialized into a second chainstate data structure, which is then used to sync to95the network's tip.97Meanwhile, the original chainstate will complete the initial block download process in98the background, eventually validating up to the block that the snapshot is based upon.100The result is a usable bitcoind instance that is current with the network tip in a101matter of minutes rather than hours. UTXO snapshot are typically obtained via102third-party sources (HTTP, torrent, etc.) which is reasonable since their contents103are always checked by hash.105You can find more information on this process in the `assumeutxo` design106document (<https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md>).108`getchainstates` has been added to aid in monitoring the assumeutxo sync process.110- A new `getprioritisedtransactions` RPC has been added. It returns a map of all fee deltas created by the111user with prioritisetransaction, indexed by txid. The map also indicates whether each transaction is112present in the mempool. (#27501)114- A new RPC, `submitpackage`, has been added. It can be used to submit a list of raw hex115transactions to the mempool to be evaluated as a package using consensus and mempool policy rules.116These policies include package CPFP, allowing a child with high fees to bump a parent below the117mempool minimum feerate (but not minimum relay feerate). (#27609)119- Warning: successful submission does not mean the transactions will propagate throughout the120network, as package relay is not supported.122- Not all features are available. The package is limited to a child with all of its123unconfirmed parents, and no parent may spend the output of another parent. Also, package124RBF is not supported. Refer to doc/policy/packages.md for more details on package policies125and limitations.127- This RPC is experimental. Its interface may change.129- A new RPC `getaddrmaninfo` has been added to view the distribution of addresses in the new and tried table of the130node's address manager across different networks(ipv4, ipv6, onion, i2p, cjdns). The RPC returns count of addresses131in new and tried table as well as their sum for all networks. (#27511)133- A new `importmempool` RPC has been added. It loads a valid `mempool.dat` file and attempts to134add its contents to the mempool. This can be useful to import mempool data from another node135without having to modify the datadir contents and without having to restart the node. (#27460)136- Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over.137- If you want to apply fee deltas, it is recommended to use the `getprioritisedtransactions` and138`prioritisetransaction` RPCs instead of the `apply_fee_delta_priority` option to avoid139double-prioritising any already-prioritised transactions in the mempool.141Updated settings142----------------144- `bitcoind` and `bitcoin-qt` will now raise an error on startup145if a datadir that is being used contains a bitcoin.conf file that146will be ignored, which can happen when a datadir= line is used in147a bitcoin.conf file. The error message is just a diagnostic intended148to prevent accidental misconfiguration, and it can be disabled to149restore the previous behavior of using the datadir while ignoring150the bitcoin.conf contained in it. (#27302)152- Passing an invalid `-debug`, `-debugexclude`, or `-loglevel` logging configuration153option now raises an error, rather than logging an easily missed warning. (#27632)155Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.157New settings158------------160Tools and Utilities161-------------------163- A new `bitcoinconsensus_verify_script_with_spent_outputs` function is available in libconsensus which optionally accepts the spent outputs of the transaction being verified.164- A new `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` flag is available in libconsensus that will verify scripts with the Taproot spending rules.166Wallet167------169- Wallet loading has changed in this release. Wallets with some corrupted records that could be170previously loaded (with warnings) may no longer load. For example, wallets with corrupted171address book entries may no longer load. If this happens, it is recommended172load the wallet in a previous version of Bitcoin Core and import the data into a new wallet.173Please also report an issue to help improve the software and make wallet loading more robust174in these cases. (#24914)176- The `createwallet` RPC will no longer create legacy (BDB) wallets when177setting `descriptors=false` without also providing the178`-deprecatedrpc=create_bdb` option. This is because the legacy wallet is179being deprecated in a future release. (#28597)181- The `gettransaction`, `listtransactions`, `listsinceblock` RPCs now return182the `abandoned` field for all transactions. Previously, the "abandoned" field183was only returned for sent transactions. (#25158)185- The `listdescriptors`, `decodepsbt` and similar RPC methods now show `h` rather than apostrophe (`'`) to indicate186hardened derivation. This does not apply when using the `private` parameter, which187matches the marker used when descriptor was generated or imported. Newly created188wallets use `h`. This change makes it easier to handle descriptor strings manually.189E.g. the `importdescriptors` RPC call is easiest to use `h` as the marker: `'["desc": ".../0h/..."]'`.190With this change `listdescriptors` will use `h`, so you can copy-paste the result,191without having to add escape characters or switch `'` to 'h' manually.192Note that this changes the descriptor checksum.193For legacy wallets the `hdkeypath` field in `getaddressinfo` is unchanged,194nor is the serialization format of wallet dumps. (#26076)196- The `getbalances` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block197hash and height at the time the balances were calculated. This result shouldn't be cached because importing new keys could invalidate it. (#26094)199- The `gettransaction` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block200hash and height at the time the transaction information was generated. (#26094)202- The `getwalletinfo` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block203hash and height at the time the wallet information was generated. (#26094)205- Coin selection and transaction building now accounts for unconfirmed low-feerate ancestor transactions. When it is necessary to spend unconfirmed outputs, the wallet will add fees to ensure that the new transaction with its ancestors will achieve a mining score equal to the feerate requested by the user. (#26152)207- For RPC methods which accept `options` parameters ((`importmulti`, `listunspent`,208`fundrawtransaction`, `bumpfee`, `send`, `sendall`, `walletcreatefundedpsbt`,209`simulaterawtransaction`), it is now possible to pass the options as named210parameters without the need for a nested object. (#26485)212This means it is possible make calls like:214```sh215src/bitcoin-cli -named bumpfee txid fee_rate=100216```218instead of220```sh221src/bitcoin-cli -named bumpfee txid options='{"fee_rate": 100}'222```224- The `deprecatedrpc=walletwarningfield` configuration option has been removed.225The `createwallet`, `loadwallet`, `restorewallet` and `unloadwallet` RPCs no226longer return the "warning" string field. The same information is provided227through the "warnings" field added in v25.0, which returns a JSON array of228strings. The "warning" string field was deprecated also in v25.0. (#27757)230- The `signrawtransactionwithkey`, `signrawtransactionwithwallet`,231`walletprocesspsbt` and `descriptorprocesspsbt` calls now return the more232specific RPC_INVALID_PARAMETER error instead of RPC_MISC_ERROR if their233sighashtype argument is malformed. (#28113)235- RPC `walletprocesspsbt`, and `descriptorprocesspsbt` return236object now includes field `hex` (if the transaction237is complete) containing the serialized transaction238suitable for RPC `sendrawtransaction`. (#28414)240- It's now possible to use [Miniscript](https://bitcoin.sipa.be/miniscript/) inside Taproot leaves for descriptor wallets. (#27255)242Descriptors243-----------245- The usage of hybrid public keys in output descriptors has been removed. Hybrid246public keys are an exotic public key encoding not supported by output descriptors247(as specified in BIP380 and documented in doc/descriptors.md). Bitcoin Core would248previously incorrectly accept descriptors containing such hybrid keys. (#28587)250GUI changes
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.