BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2900 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

254security candidates607second-pass queue2881AI analyses
206commits · 30 days
502commits · 60 days
1535commits · 180 days
2884commits · 365 days
Backfill bands
Aug 5 → Feb 61351 seen45 candidatesComplete
Feb 6 → Jun 61033 seen63 candidatesComplete
Jun 6 → Jul 6281 seen11 candidatesComplete
Jul 6 → Aug 5207 seen5 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

70/100 average clarity
937Strong · 80–100
1188Adequate · 60–79
687Thin · 40–59
88Opaque · 0–39
6security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Antoine Poinsot22422170
Ava Chow15750157064
MarcoFalke41021406074
Lőrinc17721177081
fanquake22719226057
Hennadii Stepanov20914208063
rkrux57957074
Sjors Provoost89889074
Sebastian Falbesoner33733073
David Gumberg55655072
Pieter Wuille95595066
Hodlinator66566076
Analysis record

Published AI watches

Last scanned 50 minutes ago

Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35928: doc: mention -DWITH_ZMQ=ON in macOS build guide

This is a one-line documentation update to the macOS build guide. It adds a note telling users to pass a specific CMake option if they want ZeroMQ notification support. There is no code change and no security impact.

8397e09eby merge-script+1−11 file
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35482: fuzz: exercise the transaction-handling path in process_message(s)

This commit only changes Bitcoin Core's internal fuzz testing code. It makes the fuzz tests exercise more of the transaction-handling code path by toggling Initial Block Download mode and resetting the mempool between test runs. There is n…

No production code modifiedNo consensus, validation, net_processing, or wallet logic changedOnly fuzz test harnesses and test utilities affected
f11dc617by merge-script+105−798 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35914: test, fuzz: Remove unused variables

This commit removes unused variables from Bitcoin Core's test and fuzzing code. It is a cleanup/refactoring change with no effect on the live network software or user funds. It does not fix or introduce any security vulnerability.

d36bf709by merge-script+1−138 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35896: refactor: Default uint256::operator==, add operator<=>

This commit is a routine code cleanup in Bitcoin Core. It switches the uint256 equality and comparison operators to use standard C++20 defaults, removes an old custom Compare() helper, and marks an internal assertion-failure function as ne…

ed2c59abby merge-script+99−245 files
No security note in commit
Moderate 62 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter overflow

This update fixes a counting bug in several Bitcoin Core RPC commands that scan descriptors. When a user requested a descriptor range ending at the maximum allowed value (2,147,483,647), the internal counter used a smaller integer type and…

Signed integer overflow in descriptor expansion loopCrash/undefined behavior on maximum-range descriptor scansAuthenticated RPC surface affected (scantxoutset, scanblocks, getdescriptoractivity, utxoupdatepsbt, descriptorprocesspsbt)
b388674aby Ava Chow+3−12 files
Vendor flagged security relevance
Informational 19 AI analysisMessage 91 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY non-test-only

This is a small cleanup and documentation fix for Bitcoin Core's RPC help system. It removes a comment that incorrectly said a certain output type was 'for testing only' and makes the help text properly display those outputs. There is no d…

No memory safety, cryptography, consensus, or authorization changes observedChange is confined to RPC help/schema metadata generationComment-only/type-label change from 'for testing only' to general use
c36ffd87by merge-script+42−364 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in header

This is a code cleanup change that turns on a static-analysis rule to prevent a specific C++ coding pattern (anonymous namespaces in header files) and updates two headers to comply. It does not change how Bitcoin Core behaves at runtime an…

No security-relevant code changeNo memory safety, cryptography, consensus, or network changesTooling-only refactor (clang-tidy configuration)
c4fbd3c7by merge-script+9−123 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverage

This commit only adds new test cases to Bitcoin Core's functional test suite. It does not change any production wallet, node, or RPC code. The tests verify that the importdescriptors RPC reports errors in the right order, rejects bad times…

465196d0by merge-script+77−11 file
No security note in commit
Informational 15 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35180: coins: group private cache helpers

This change is purely a code cleanup: it moves two internal helper functions of a Bitcoin Core cache class into the private section of the class and removes a duplicate 'private:' label. There is no change to what the code does, no bug fix…

c940fd75by merge-script+13−141 file
No security note in commit
Low 29 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters

This Bitcoin Core change tightens how three RPC commands (scantxoutset, scanblocks, deriveaddresses) handle the value null when it is passed for optional parameters. Previously, explicitly passing null could be treated differently from sim…

RPC parameter validation changeNull value handling changeAddition of explicit error checks for missing required contextual parameters
3db96eb5by merge-script+18−75 files
No security note in commit
Informational 15 AI analysisMessage 57 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable misc-definitions-in-headers

This commit is a code cleanup: it turns on a clang-tidy style check called 'misc-definitions-in-headers' and suppresses that check around a large inline implementation block in a benchmark header. There is no change to Bitcoin's runtime be…

fa93132dby MarcoFalke+3−02 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Enable clang-tidy rule to reject anon namespace in header

This commit only changes a linting configuration file for the project's code style checker. It enables a rule that prevents anonymous namespaces from being used in header files, which is a code-quality and build-hygiene practice. There is …

No security-relevant signals in the diff or commit message.Change is purely a static-analysis/linting configuration update.
fa5ca877by MarcoFalke+2−11 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Use C++20 std::identity over IntIdentity

This commit is a straightforward code cleanup: it replaces a small custom helper named IntIdentity with the standard C++20 std::identity from the <functional> header. The behavior of the ConvertBits function is unchanged; only the implemen…

fafe5042by MarcoFalke+4−111 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test the result order of a multiple import request is correct

This commit only adds a new automated test to Bitcoin Core. It checks that when a user asks the wallet to import multiple descriptors at once, the list of results comes back in the same order as the original request, including any error me…

3ac8b806by Pol Espinasa+40−01 file
No security note in commit
Informational 15 AI analysisMessage 87 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: test invalid or missing timestamp throws importdescriptors

This commit only adds new automated tests for the Bitcoin Core wallet's importdescriptors RPC. It checks that the command correctly rejects requests with a missing or invalid timestamp. No production wallet code is changed, so this cannot …

No changes to consensus, networking, wallet logic, or cryptographyOnly functional test code is modifiedAdded assertions are for expected error handling paths
e4732bf0by Pol Espinasa+28−11 file
No security note in commit
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Remove unused #include in common/system

This is a minor code cleanup that removes one unused header file include and swaps another for a more specific one. It does not change any program behavior or fix any security issue.

fa7304f3by MarcoFalke+1−22 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

iwyu: Fix warnings in `src/consensus` and treat them as errors

This commit is a routine code cleanup: it adjusts which C++ header files are included in several consensus-related source files and turns on a stricter compiler hygiene check (Include What You Use, or IWYU) for the src/consensus directory.…

13b53f8bby Hennadii Stepanov+42−79 files
No security note in commit
Informational 15 AI analysisMessage 55 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: don't connman.ReceiveMsgFrom oversized msg

This is a small fix to a Bitcoin Core fuzz test (an automated internal testing harness), not to the live network code. The fuzzer was sometimes creating fake P2P messages larger than the real protocol allows and passing them into a test he…

Test-only fuzz harness hardeningOversized message guard added before ReceiveMsgFrom() in fuzz targetNo change to production P2P message acceptance logic
bb19f1daby Greg Sanders+5−01 file
No security note in commit
Informational 15 AI analysisMessage 97 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: Temporarily remove riscv32 config from GHA matrix

This commit simply removes one failing test configuration (RISC-V 32-bit bare metal) from the project's GitHub Actions CI matrix because it was failing. It is a routine CI maintenance change with no security implications.

fa06ea42by MarcoFalke+0−61 file
No security note in commit
Low 47 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: verify cross-build SDK archives

This change adds checksum verification to the build system's downloads of Apple, FreeBSD, NetBSD, and OpenBSD software development kits (SDKs). Before this patch, those SDK archives were downloaded at build time and extracted without confi…

Adds cryptographic digest verification for downloaded SDK archivesRemoves unchecked extraction of remote SDK archives in CIHardens CI supply chain for macOS/BSD cross-builds
873550beby Lőrinc+25−126 files
Vendor flagged security relevance
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Lower-priorityrefactor: [gui] Use SettingTo<int64_t> over deprecated SettingToIntby MarcoFalke · fa5672dc · Feb 16, 2026 · 2 filesMessage 77 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: [gui] Use SettingTo<int64_t> over deprecated SettingToInt

This refactor does not change any behavior.

Also, remove the now-unused deprecated aliases.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
AI analysis · Informational 15/100

This is a routine code cleanup in Bitcoin Core's graphical user interface. It replaces a few internal helper function calls with their newer equivalents and removes the old, now-unused helper aliases. The commit message explicitly states this does not change behavior, and the diff shows identical logic with only renamed function calls.

Lower-prioritydoc: update Windows MSVC build guide to utilize WinGet to install appsby janb84 · d159b103 · Feb 16, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · janb84

doc: update Windows MSVC build guide to utilize WinGet to install apps

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit only updates the Windows build instructions document. It replaces manual download steps with commands using WinGet, a Microsoft package manager, and renumbers some sections. There are no code changes and no security implications.

Lower-prioritybench: use deterministic `HexStr` payloadby Lőrinc · 353c660b · Feb 16, 2026 · 1 fileMessage 85 · StrongInformational 15Details
Commit message · Lőrinc

bench: use deterministic `HexStr` payload

`HexStrBench` uses the bytes from the embedded block fixture as a random source of bytes to measure `HexStr` performance against.
This coupling makes block benchmark migrations slightly more work than necessary.

We can use deterministic pseudo-random bytes instead so this benchmark keeps stable input without fixture coupling.
Use `MAX_BLOCK_WEIGHT` so the benchmark stays in the same size range and keeps measured work above harness overhead.
This changes the benchmark baseline because input size moves from about 1 MB to 4 MB.

Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>
Co-authored-by: Hodlinator <172445034+hodlinator@users.noreply.github.com>

85/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Names security-relevant behavior explicitly
AI analysis · Informational 15/100

This is a harmless internal cleanup of a performance benchmark. It swaps the test data used to measure a hex-encoding function from a real historical block file to computer-generated random bytes. There is no change to how Bitcoin Core handles real network data, no bug fix, and no security relevance.

Security candidatenet: reduce log level for PCP/NAT-PMP NOT_AUTHORIZED failuresby ANAVHEOBA · afea2af1 · Feb 16, 2026 · 1 fileMessage 93 · StrongInformational 15Details
Commit message · ANAVHEOBA

net: reduce log level for PCP/NAT-PMP NOT_AUTHORIZED failures

Users running on home networks with routers that don't support PCP (Port
Control Protocol) or NAT-PMP port mapping receive frequent warning-level
log messages every few minutes:

"pcp: Mapping failed with result NOT_AUTHORIZED (code 2)"

This is expected behavior for many consumer routers that have PCP
disabled by default, not an actionable error.

Add explicit constants for the NOT_AUTHORIZED result code (value 2)
for both NAT-PMP and PCP protocols. Log the first NOT_AUTHORIZED
failure at warning level for visibility, then downgrade subsequent
occurrences to LogDebug to avoid log noise. Other failure types
continue to warn unconditionally.

Fixes #34114

Co-authored-by: willcl-ark <will@256k1.dev>

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
update trust
AI analysis · Informational 15/100

This change is purely cosmetic: it stops Bitcoin Core from repeatedly printing the same router-related warning in the log. Home routers that don't support automatic port mapping now produce one warning instead of many, with later messages hidden behind a debug log level. There is no security vulnerability being fixed and no behavior of the network code is changed.

Lower-priorityrpc: Properly parse -rpcworkqueue/-rpcthreadsby MarcoFalke · fac3ecaf · Feb 16, 2026 · 1 fileMessage 60 · AdequateLow 27Details
Commit message · MarcoFalke

rpc: Properly parse -rpcworkqueue/-rpcthreads

Also, remove the trailing unnecessary \n from the two logs.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Low 27/100

This commit fixes how two command-line settings, -rpcworkqueue and -rpcthreads, are read in Bitcoin Core's HTTP server. The old code used a method meant only for whole numbers (GetIntArg) but treated the result as a generic argument, which could lead to incorrect parsing or unexpected behavior. The new code uses the proper GetArg method and removes unnecessary newline characters from two log messages. There is no direct evidence in the commit that this was a security vulnerability, but misconfigured thread or queue limits could affect server stability or resource use.

Lower-priorityutil: Add SettingTo<Int>() and GetArg<Int>()by MarcoFalke · faee36f6 · Feb 16, 2026 · 3 filesMessage 60 · AdequateInformational 15Details
Commit message · MarcoFalke

util: Add SettingTo<Int>() and GetArg<Int>()

Redirect:
* SettingToInt to SettingTo<int64_t>, and
* GetIntArg to GetArg<int64_t>

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit is a routine internal code cleanup in Bitcoin Core. It replaces a hardcoded integer-parsing helper with a generic template that can handle several integer sizes, and keeps the old function names as thin wrappers so existing code keeps working. There is no user-facing change and no security fix.

Lower-prioritytest: add pre-`LogPeer` net log assertionby Lőrinc · e55ea534 · Feb 15, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · Lőrinc

test: add pre-`LogPeer` net log assertion

Assert net log output contains `peer=... peeraddr=...` before the comma change.

82/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only adds a new test to Bitcoin Core's functional test suite. It checks that network log messages include the peer number and peer address in a specific format before a planned formatting change. There is no change to production code, no bug fix, and no security-relevant behavior.

Lower-prioritynet: format peer+addr logs with `LogPeer`by Lőrinc · 22335474 · Feb 15, 2026 · 4 filesMessage 68 · AdequateInformational 15Details
Commit message · Lőrinc

net: format peer+addr logs with `LogPeer`

Use `LogPeer` for peer id plus optional `peeraddr`, separated with a comma.

Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
Co-authored-by: Vasil Dimov <vd@freebsd.org>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a straightforward code cleanup that changes how Bitcoin Core formats peer-related log messages. It introduces a helper function called LogPeer that consistently prints the peer ID and, when IP logging is enabled, the peer's address separated by a comma. There is no security vulnerability or behavior change beyond log message formatting.

Lower-prioritylog: show placeholders for missing peer fieldsby Lőrinc · 9cf82bed · Feb 15, 2026 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Lőrinc

log: show placeholders for missing peer fields

Avoid logging an empty field when peer user agent or collision entry is missing.

Co-authored-by: naiyoma <lankas.aurelia@gmail.com>

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This is a minor logging-only change. When Bitcoin Core logs debug messages about a peer, it now prints '<unknown-addr>' or '<no user agent>' instead of leaving the field blank when that information is missing. It does not change how the program behaves, only how two debug log lines look.

AI review queuedlog: fix minor formatting in debug logsby Lőrinc · 736b17c0 · Feb 15, 2026 · 7 filesMessage 80 · StrongInformational 15Details
Commit message · Lőrinc

log: fix minor formatting in debug logs

Tidy a few debug log strings to avoid double spaces, concatenated status words, and mismatched format specifiers.

Co-authored-by: naiyoma <lankas.aurelia@gmail.com>

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a cosmetic cleanup of debug log messages in Bitcoin Core. It removes extra spaces, fixes a couple of mismatched format specifiers (using %s instead of %i for a transaction ID), and makes a status string clearer. There is no security issue here.

Lower-prioritytest: dont connect nodes in feature_bind_port_discoverby b-l-u-e · 4f19508a · Feb 14, 2026 · 1 fileMessage 87 · StrongInformational 15Details
Commit message · b-l-u-e

test: dont connect nodes in feature_bind_port_discover

Signed-off-by: b-l-u-e <winnie.gitau282@gmail.com>

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit changes only a Bitcoin Core functional test file. It stops the test framework from automatically connecting test nodes to each other and marks each test node as having an explicit network bind. The change is purely about making an existing test more accurate and reliable; it does not touch production code or introduce any security issue.

Lower-prioritytest: use dynamic ports and add coverage in feature_bind_port_discoverby b-l-u-e · bb00fd21 · Feb 14, 2026 · 1 fileMessage 87 · StrongInformational 15Details
Commit message · b-l-u-e

test: use dynamic ports and add coverage in feature_bind_port_discover

Signed-off-by: b-l-u-e <winnie.gitau282@gmail.com>

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100

This commit only changes a test script in Bitcoin Core. It updates the functional test feature_bind_port_discover.py to use dynamic ports instead of a hardcoded port, adds more test cases, and improves setup instructions. There is no change to the actual Bitcoin node software that users run, so it has no direct security impact on the network or wallets.

Lower-prioritynet: Fix Discover() not running when using -bind=0.0.0.0:portby b-l-u-e · b8827ce6 · Feb 14, 2026 · 1 fileMessage 65 · AdequateLow 34Details
Commit message · b-l-u-e

net: Fix Discover() not running when using -bind=0.0.0.0:port

Signed-off-by: b-l-u-e <winnie.gitau282@gmail.com>

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Low 34/100

This change fixes a bug in Bitcoin Core where the software would not automatically discover and advertise its own internet-facing IP addresses when a user configured it to listen on all network interfaces using the specific syntax '-bind=0.0.0.0:port'. Without this discovery, the node could become harder for other peers to find and connect to, potentially reducing its connectivity and network resilience. The fix makes the discovery logic also check explicit bind and whitebind configurations for the 'any address' pattern, not just the general listen-on-any setting.

Lower-priorityqt: Replace three dots with ellipsisby Hennadii Stepanov · 6df4a045 · Feb 14, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Hennadii Stepanov

qt: Replace three dots with ellipsis

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit changes a single user-interface label in the Bitcoin Core wallet program, replacing three separate dots ('...') with a single ellipsis character ('…'). It is a cosmetic translation/string cleanup and has no security relevance.

Lower-prioritycmake: Apply workaround for `install_name_tool` conditionallyby Hennadii Stepanov · 80dc4359 · Feb 14, 2026 · 1 fileMessage 50 · ThinInformational 20Details
Commit message · Hennadii Stepanov

cmake: Apply workaround for `install_name_tool` conditionally

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 20/100

This is a build-system fix for Bitcoin Core's CMake configuration. It narrows an existing workaround so it only applies to older CMake versions. The change prevents a configuration error when cross-compiling Bitcoin for macOS from a non-Apple host, but only when using CMake versions below 4.2. There is no indication this affects running Bitcoin software or introduces a security vulnerability.

Security candidatetest: Avoid empty errmsg in JSONRPCExceptionby MarcoFalke · 211111b8 · Feb 13, 2026 · 2 filesMessage 100 · StrongInformational 15Details
Commit message · MarcoFalke

test: Avoid empty errmsg in JSONRPCException

It is unclear why the fallback should be an empty message, when it is
better to include all rpc_error details that are available.

Also, include the http status.

This allows to revert commit 6354b4fd7fe819eb13274b212e426a7d10ca75d3,
because it is no longer needed.

100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
authentication path
AI analysis · Informational 15/100

This commit only changes test-framework helper code. It improves error messages shown when a Bitcoin RPC call fails during automated testing, so developers get more useful diagnostics instead of a blank message. It does not touch the live Bitcoin node software, wallet handling, consensus rules, or network code, so it cannot directly affect real users' funds or node security.

AI review queuedrelease noteby Pol Espinasa · 24f93c9a · Feb 13, 2026 · 1 fileMessage 18 · OpaqueInformational 15Details
Commit message · Pol Espinasa

release note

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit only adds a release note documenting that two old Bitcoin Core features, the `-paytxtxfee` startup option and the `settxfee` RPC, have been removed after being deprecated. It is a documentation-only change and does not modify any code.

AI review queuedwallet, rpc:remove settxfee and paytxfeeby Pol Espinasa · 331a5279 · Feb 13, 2026 · 26 filesMessage 45 · ThinInformational 21Details
Commit message · Pol Espinasa

wallet, rpc:remove settxfee and paytxfee

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 21/100

This commit removes two old Bitcoin Core fee-setting mechanisms: the command-line option `-paytxfee` and the RPC command `settxfee`. These had already been marked as deprecated. Users must now set fees per transaction using explicit options like `fee_rate` instead of a global default. There is no security vulnerability here; it is a planned API cleanup that may break old scripts or workflows that still rely on the removed options.

Lower-prioritykernel: avoid potential duplicate object in shared library/binaryby Cory Fields · eafd530d · Feb 13, 2026 · 2 filesMessage 73 · AdequateLow 32Details
Commit message · Cory Fields

kernel: avoid potential duplicate object in shared library/binary

Fixes warning and potential bug whereby init_flag may exist in both
libbitcoinkernel as well as a downstream user, as opposed to being shared as
intended.

src/support/lockedpool.h:224:31:
warning: 'init_flag' may be duplicated when built into a shared library: it is mutable, has hidden visibility, and external linkage [-Wunique-object-duplication]

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 32/100

This change moves a one-time initialization flag from a header file into a source file. The warning suggested that, because the flag was defined in a header, it could end up duplicated when Bitcoin's kernel library is linked into other programs. That duplication could mean the intended single initialization runs more than once, potentially creating multiple memory managers instead of one shared instance. The patch is a defensive fix; there is no direct evidence it is currently exploitable as a security vulnerability.

Lower-prioritybuild: add kernel-specific warningsby Cory Fields · 24c3b470 · Feb 13, 2026 · 1 fileMessage 80 · StrongInformational 13Details
Commit message · Cory Fields

build: add kernel-specific warnings

In some cases, we'll want to be more aggressive or care about different things
when building the kernel. In this case, a warning is added for symbols which
may be duplicated between the kernel and downstream users.

This warning was introduced in clang 21, which is not yet the minimum
supported compiler version. REDUCE_EXPORTS needs to be ON to trigger it.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
documentation-only discount
AI analysis · Informational 13/100

This change only adjusts compiler warning settings for the Bitcoin Core kernel build. It adds a new warning flag for newer Clang compilers to detect duplicated symbols between the kernel library and downstream users. There is no functional code change, no bug fix, and no security vulnerability being addressed.

Lower-prioritycoins: add PeekCoin()by Andrew Toth · 69b01af0 · Feb 13, 2026 · 4 filesMessage 63 · AdequateInformational 19Details
Commit message · Andrew Toth

coins: add PeekCoin()

Introduce a helper to look up a Coin through a stack of CCoinsViewCache layers without populating parent caches.

This is useful for ephemeral views (e.g. during ConnectBlock) that want to avoid polluting CoinsTip() when validating invalid blocks.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>
Co-authored-by: Pieter Wuille <pieter@wuille.net>
Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

63/100 · AdequateMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Informational 19/100

This commit adds a new read-only helper called PeekCoin() to Bitcoin Core's coin-cache system. Unlike the existing GetCoin(), PeekCoin() looks up a coin through layers of cache without writing the result into parent caches. The stated purpose is to avoid polluting the main UTXO cache when validating blocks that might turn out to be invalid. It is a defensive, non-breaking code-quality change with no direct vulnerability fix described.

Lower-prioritycoins: don't mutate main cache when connecting blockby Andrew Toth · 73e99a59 · Feb 13, 2026 · 3 filesMessage 83 · StrongModerate 61Details
Commit message · Andrew Toth

coins: don't mutate main cache when connecting block

Use `CoinsViewOverlay` when connecting blocks in `ConnectTip`.

Add a new integration test to verify that using
CoinsViewOverlay does not mutate the main cache
during validation for an invalid block.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Moderate 61/100

This Bitcoin Core change fixes how the coin cache behaves when a new block fails validation. Previously, the same cache used for the main chain was temporarily used during block validation, which could leave behind entries from invalid blocks. Now a separate overlay view is used, so failed blocks don't pollute the main cache. The commit adds a test proving that an invalid block no longer leaves its inputs in the cache. This is a correctness and denial-of-service hardening fix rather than a direct theft bug.

Lower-priorityfuzz: move backend mutating block to end of coins_viewby Andrew Toth · 86eda88c · Feb 13, 2026 · 1 fileMessage 83 · StrongInformational 15Details
Commit message · Andrew Toth

fuzz: move backend mutating block to end of coins_view

Refactor TestCoinsView() to move code that directly modifies
backend_coins_view to the end of the function.
This prepares for a CoinsViewOverlay fuzz target that asserts
the backend_coins_view is not mutated by any methods before
BatchWrite is called.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit is a test-only code cleanup. It moves a block of verification code from the middle to the end of a fuzz-testing function so that a future test can check that the underlying coin database is not modified before a specific write operation. No production code, network behavior, or wallet logic is changed, and there is no security fix.

Lower-prioritycoins: introduce CoinsViewOverlayby Andrew Toth · 67c0d179 · Feb 13, 2026 · 5 filesMessage 58 · ThinInformational 24Details
Commit message · Andrew Toth

coins: introduce CoinsViewOverlay

Introduce `CoinsViewOverlay`, a `CCoinsViewCache` subclass that reads
coins without mutating the underlying cache via `FetchCoin()`.

Use `PeekCoin()` to look up a Coin through a stack of `CCoinsViewCache` layers without populating parent caches. This prevents the main cache from caching inputs pulled from disk for a block that has not yet been fully validated. Once `Flush()` is called on the view, these inputs will be added as spent to `coinsCache` in the main cache via `BatchWrite()`.

This is the foundation for async input fetching, where worker threads must not
mutate shared state.

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
Why it was queued
defensive validation
AI analysis · Informational 24/100

This commit adds a new read-only overlay for Bitcoin Core's coin cache system. It lets the software look up transaction inputs during block validation without writing those lookups into the main in-memory cache. The goal is to avoid polluting the cache with data from blocks that might turn out to be invalid, and to prepare for future multi-threaded input fetching where worker threads should not change shared state. The change itself is defensive infrastructure, not a fix for an active bug or vulnerability.

Lower-priorityfuzz: add target for CoinsViewOverlayby Andrew Toth · cae6d895 · Feb 13, 2026 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · Andrew Toth

fuzz: add target for CoinsViewOverlay

Co-authored-by: l0rinc <pap.lorinc@gmail.com>

70/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidence
AI analysis · Informational 15/100

This commit adds a new automated fuzz test for a Bitcoin Core component called CoinsViewOverlay. Fuzz tests feed random or semi-random inputs to code to catch bugs early. The change only touches test code and does not alter the behavior of the main Bitcoin node software. There is no indication it fixes a live security issue or introduces a vulnerability.