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.
125.0 Release Notes2==================4Bitcoin Core version 25.0 is now available from:6<https://bitcoincore.org/bin/bitcoin-core-25.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 10.15+, 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- Transactions of non-witness size 65 bytes and above are now allowed by mempool47and relay policy. This is to better reflect the actual afforded protections48against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265)50New RPCs51--------53- The scanblocks RPC returns the relevant blockhashes from a set of descriptors by54scanning all blockfilters in the given range. It can be used in combination with55the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note56that this functionality can only be used if a compact block filter index57(-blockfilterindex=1) has been constructed by the node. (#23549)59Updated RPCs60------------62- All JSON-RPC methods accept a new [named63parameter](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#parameter-passing) called `args` that can64contain positional parameter values. This is a convenience to allow some65parameter values to be passed by name without having to name every value. The66python test framework and `bitcoin-cli` tool both take advantage of this, so67for example:69```sh70bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=171```73Can now be shortened to:75```sh76bitcoin-cli -named createwallet mywallet load_on_startup=177```79- The `verifychain` RPC will now return `false` if the checks didn't fail,80but couldn't be completed at the desired depth and level. This could be due81to missing data while pruning, due to an insufficient dbcache or due to82the node being shutdown before the call could finish. (#25574)84- `sendrawtransaction` has a new, optional argument, `maxburnamount` with a default value of `0`.85Any transaction containing an unspendable output with a value greater than `maxburnamount` will86not be submitted. At present, the outputs deemed unspendable are those with scripts that begin87with an `OP_RETURN` code (known as 'datacarriers'), scripts that exceed the maximum script size,88and scripts that contain invalid opcodes.90- The `testmempoolaccept` RPC now returns 2 additional results within the "fees" result:91"effective-feerate" is the feerate including fees and sizes of transactions validated together if92package validation was used, and also includes any modified fees from prioritisetransaction. The93"effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used94in the effective-feerate (#26646).96- `decodescript` may now infer a Miniscript descriptor under P2WSH context if it is not lacking97information. (#27037)99- `finalizepsbt` is now able to finalize a transaction with inputs spending Miniscript-compatible100P2WSH scripts. (#24149)102Changes to wallet related RPCs can be found in the Wallet section below.104Build System105------------107- The `--enable-upnp-default` and `--enable-natpmp-default` options108have been removed. If you want to use port mapping, you can109configure it using a .conf file, or by passing the relevant110options at runtime. (#26896)112Updated settings113----------------115- If the `-checkblocks` or `-checklevel` options are explicitly provided by the116user, but the verification checks cannot be completed due to an insufficient117dbcache, Bitcoin Core will now return an error at startup. (#25574)119- Ports specified in `-port` and `-rpcport` options are now validated at startup.120Values that previously worked and were considered valid can now result in errors. (#22087)122- Setting `-blocksonly` will now reduce the maximum mempool memory123to 5MB (users may still use `-maxmempool` to override). Previously,124the default 300MB would be used, leading to unexpected memory usage125for users running with `-blocksonly` expecting it to eliminate126mempool memory usage.128As unused mempool memory is shared with dbcache, this also reduces129the dbcache size for users running with `-blocksonly`, potentially130impacting performance.131- Setting `-maxconnections=0` will now disable `-dnsseed`132and `-listen` (users may still set them to override).134Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.136New settings137------------139- The `shutdownnotify` option is used to specify a command to execute synchronously140before Bitcoin Core has begun its shutdown sequence. (#23395)143Wallet144------146- The `minconf` option, which allows a user to specify the minimum number147of confirmations a UTXO being spent has, and the `maxconf` option,148which allows specifying the maximum number of confirmations, have been149added to the following RPCs in #25375:150- `fundrawtransaction`151- `send`152- `walletcreatefundedpsbt`153- `sendall`155- Added a new `next_index` field in the response in `listdescriptors` to156have the same format as `importdescriptors` (#26194)158- RPC `listunspent` now has a new argument `include_immature_coinbase`159to include coinbase UTXOs that don't meet the minimum spendability160depth requirement (which before were silently skipped). (#25730)162- Rescans for descriptor wallets are now significantly faster if compact163block filters (BIP158) are available. Since those are not constructed164by default, the configuration option "-blockfilterindex=1" has to be165provided to take advantage of the optimization. This improves the166performance of the RPC calls `rescanblockchain`, `importdescriptors`167and `restorewallet`. (#25957)169- RPC `unloadwallet` now fails if a rescan is in progress. (#26618)171- Wallet passphrases may now contain null characters.172Prior to this change, only characters up to the first173null character were recognized and accepted. (#27068)175- Address Purposes strings are now restricted to the currently known values of "send",176"receive", and "refund". Wallets that have unrecognized purpose strings will have177loading warnings, and the `listlabels` RPC will raise an error if an unrecognized purpose178is requested. (#27217)180- In the `createwallet`, `loadwallet`, `unloadwallet`, and `restorewallet` RPCs, the181"warning" string field is deprecated in favor of a "warnings" field that182returns a JSON array of strings to better handle multiple warning messages and183for consistency with other wallet RPCs. The "warning" field will be fully184removed from these RPCs in v26. It can be temporarily re-enabled during the185deprecation period by launching bitcoind with the configuration option186`-deprecatedrpc=walletwarningfield`. (#27279)188- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149)190GUI changes191-----------193- The "Mask values" is a persistent option now. (gui#701)194- The "Mask values" option affects the "Transaction" view now, in addition to the195"Overview" one. (gui#708)197REST198----200- A new `/rest/deploymentinfo` endpoint has been added for fetching various201state info regarding deployments of consensus changes. (#25412)203Binary verification204----206- The binary verification script has been updated. In previous releases it207would verify that the binaries had been signed with a single "release key".208In this release and moving forward it will verify that the binaries are209signed by a _threshold of trusted keys_. For more details and210examples, see:211https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md212(#27358)214Low-level changes215=================217RPC218---220- The JSON-RPC server now rejects requests where a parameter is specified multiple221times with the same name, instead of silently overwriting earlier parameter values222with later ones. (#26628)223- RPC `listsinceblock` now accepts an optional `label` argument224to fetch incoming transactions having the specified label. (#25934)225- Previously `setban`, `addpeeraddress`, `walletcreatefundedpsbt`, methods226allowed non-boolean and non-null values to be passed as boolean parameters.227Any string, number, array, or object value that was passed would be treated228as false. After this change, passing any value except `true`, `false`, or229`null` now triggers a JSON value is not of expected type error. (#26213)231Credits232=======234Thanks to everyone who directly contributed to this release:236- 0xb10c237- 721217.xyz238- @RandyMcMillan239- amadeuszpawlik240- Amiti Uttarwar241- Andrew Chow242- Andrew Toth243- Anthony Towns244- Antoine Poinsot245- Aurèle Oulès246- Ben Woosley247- Bitcoin Hodler248- brunoerg249- Bushstar250- Carl Dong
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.