BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2888 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.

252security candidates604second-pass queue1092AI analyses
210commits · 30 days
502commits · 60 days
1527commits · 180 days
2882commits · 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
926Strong · 80–100
1188Adequate · 60–79
686Thin · 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 Poinsot2248170
Ava Chow15649130064
MarcoFalke40921110074
Lőrinc1772183081
fanquake2271976057
Hennadii Stepanov2091455063
rkrux57944074
Sjors Provoost89825074
Sebastian Falbesoner33717073
David Gumberg55638072
Pieter Wuille95518066
Hodlinator66523076
Analysis record

Published AI watches

Last scanned 1 minute ago

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
Informational 15 AI analysisMessage 80 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci: update NetBSD cross-build SDK

This is a routine maintenance update to Bitcoin Core's continuous integration (CI) system. It changes the version number of the NetBSD operating system used for cross-compilation testing from a release candidate (11.0_RC6) to the final rel…

2c87337eby Lőrinc+1−11 file
No security note in commit
Informational 15 AI analysisMessage 72 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

test: require `TryGetTotalRam()` detection

This commit only changes a test file and build configuration. It removes the option to skip a test when the system cannot detect total RAM, and instead requires the RAM detection to succeed. It does not change any production wallet, networ…

6a2de55aby Lőrinc+3−112 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: use `MIN_DBCACHE_BYTES`

This commit is a simple automated rename of a constant from MIN_DB_CACHE to MIN_DBCACHE_BYTES across five files. The value stays the same (4 MiB), and no behavior changes. It is a code-cleanup/refactoring change with no security relevance.

7cfa21d6by Lőrinc+5−55 files
No security note in commit
Informational 20 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

kernel: allow setting chainstate `dbcache`

This commit adds a new public API knob to the Bitcoin Core 'libbitcoinkernel' library so that programs using the kernel can choose how much memory to use for the chainstate database cache. It also enforces minimum and maximum size limits. …

New configurable cache-size API with explicit min/max validationReplaces hard-coded DEFAULT_KERNEL_CACHE with caller-supplied valueAdds unit tests for out-of-range rejection and 32-bit upper-bound rejection
8bd9f460by Lőrinc+41−14 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

kernel, node: colocate dbcache bounds

This commit is a small code cleanup: it moves two constants that define the minimum and maximum size of the database cache (dbcache) into a shared kernel header so that both the node and kernel code use the same limits. There is no change …

8aa21e11by Lőrinc+7−74 files
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

node, qt: inline `DEFAULT_DB_CACHE`

This is a small code cleanup change in Bitcoin Core. It removes a misleading alias named DEFAULT_DB_CACHE and replaces it with the underlying name DEFAULT_KERNEL_CACHE in a few places. The behavior of the program is unchanged; only the nam…

cd086c16by Lőrinc+5−74 files
No security note in commit
Repository ledger

Explore captured commits

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

AI review queuedrefactor: Construct g_verify_flag_names on first useby MarcoFalke · faa9d10c · Oct 10, 2025 · 3 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Construct g_verify_flag_names on first use

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a code cleanup (refactor) that changes how a lookup table of script verification flag names is created and accessed. It moves the table from a global variable constructed at program startup to a function that creates the table the first time it is called. There is no change to transaction validation rules, no bug fix, and no security-relevant behavior change.

AI review queuedbuild: Bump clang minimum supported version to 17by MarcoFalke · faed118f · Oct 9, 2025 · 4 filesMessage 57 · ThinInformational 15Details
Commit message · MarcoFalke

build: Bump clang minimum supported version to 17

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply raises the minimum supported Clang compiler version from 16 to 17 and removes a now-unnecessary C++ deduction guide. It is a routine build-system/maintenance change with no security relevance.

AI review queuedUpdate ci.ymlby Coder · b35341b9 · Oct 9, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Coder

Update ci.yml

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

This commit simply bumps a GitHub Actions helper from version 4 to version 5 in the project's continuous-integration workflow. It is a routine dependency update with no visible security relevance in the diff itself.

AI review queuedSquashed 'src/ipc/libmultiprocess/' changes from 47d79db8a552..a4f929696490by Ryan Ofsky · 0f01e157 · Oct 7, 2025 · 15 filesMessage 91 · StrongLow 32Details
Commit message · Ryan Ofsky

Squashed 'src/ipc/libmultiprocess/' changes from 47d79db8a552..a4f929696490

a4f929696490 Merge bitcoin-core/libmultiprocess#224: doc: fix typos
f4344ae87da0 Merge bitcoin-core/libmultiprocess#222: test, ci: Fix threadsanitizer errors in mptest
1434642b3804 doc: fix typos
73d22ba2e930 test: Fix tsan race in thread busy test
b74e1bba014d ci: Use tsan-instrumented cap'n proto in sanitizers job
c332774409ad test: Fix failing exception check in new thread busy test
ca3c05d56709 test: Use KJ_LOG instead of std::cout for logging
7eb1da120ab6 ci: Use tsan-instrumented libcxx in sanitizers job
ec86e4336e98 Merge bitcoin-core/libmultiprocess#220: Add log levels and advertise them to users via logging callback
515ce93ad349 Logging: Pass LogData struct to logging callback
213574ccc43d Logging: reclassify remaining log messages
e4de0412b430 Logging: Break out expensive log messages and classify them as Trace
408874a78fdc Logging: Use new logging macros
67b092d835cd Logging: Disable logging if messsage level is less than the requested level
d0a1ba7ebf21 Logging: add log levels to mirror Core's
463a8296d188 Logging: Disable moving or copying Logger
83a2e10c0b03 Logging: Add an EventLoop constructor to allow for user-specified log options
58cf47a7fc8c Merge bitcoin-core/libmultiprocess#221: test default PassField impl handles output parameters
db03a663f514 Merge bitcoin-core/libmultiprocess#214: Fix crash on simultaneous IPC calls using the same thread
afcc40b0f1e8 Merge bitcoin-core/libmultiprocess#213: util+doc: Clearer errors when attempting to run examples + polished docs
6db669628387 test In|Out parameter
29cf2ada75ea test default PassField impl handles output parameters
1238170f68e8 test: simultaneous IPC calls using same thread
eb069ab75d83 Fix crash on simultaneous IPC calls using the same thread
ec03a9639ab5 doc: Precision and typos
2b4348193551 doc: Where possible, remove links to ryanofsky/bitcoin/
286fe469c9c9 util: Add helpful error message when failing to execute file

git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: a4f92969649018ca70f949a09148bccfeaecd99a

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
defensive validationsigning or wallet pathsecond-pass: near security thresholdsecond-pass: broader security terminologysecond-pass: security-sensitive path
AI analysis · Low 32/100

This is a routine subtree update for the libmultiprocess library used by Bitcoin Core. The bulk of the changes are developer-facing improvements: adding log levels, fixing typos, updating CI sanitizer settings, and adding tests. The most notable functional change is a fix for a crash that could occur when multiple IPC calls were made on the same thread at the same time. The fix makes the code throw a controlled 'thread busy' error instead of crashing. It is a stability/reliability improvement rather than a traditional security vulnerability fix.

AI review queuedRemove no longer necessary `WinCmdLineArgs` classby Hennadii Stepanov · 06d0be4e · Oct 6, 2025 · 6 filesMessage 68 · AdequateInformational 19Details
Commit message · Hennadii Stepanov

Remove no longer necessary `WinCmdLineArgs` class

This change removes one use case of `std::wstring_convert`, which is
deprecated in C++17 and removed in C++26. Other uses remain for now.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit removes a Windows-specific helper class that converted command-line arguments from Windows' native wide-character format to the standard character format used by the rest of the program. The change is a cleanup to avoid using a C++ standard library feature (`std::wstring_convert`) that is being phased out. It is not a security fix and does not appear to introduce a vulnerability; it simply changes how Windows command-line arguments are handled, likely relying on a newer mechanism elsewhere.

AI review queuedSimplify fs::path by dropping filename() and make_preferred() overloadsby Ryan Ofsky · c864a4c1 · Oct 6, 2025 · 6 filesMessage 93 · StrongInformational 15Details
Commit message · Ryan Ofsky

Simplify fs::path by dropping filename() and make_preferred() overloads

These overloads were needed to allow passing `fs::path` objects directly to
libstdc++'s `fstream` constructors, but after the previous commit, there is no
longer any remaining code that does pass `fs::path` objects to `fstream`
constructors. Writing new code which does this is also discouraged because the
standard has been updated in https://wg21.link/lwg3430 to disallow it.

Dropping these also means its no longer possible to pass `fs::path` arguments
directly to `fstream::open` in libstdc++, which is somewhat unfortunate but not
a big loss because it is already not possible to pass them to the constructor.
So this commit updates `fstream::open` calls.

Additionally, this change required updates to src/bitcoin.cpp since it was
relying on the overloaded filename() method.

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a routine code cleanup in Bitcoin Core. It removes helper functions that let custom filesystem path objects be passed directly to C++ file streams, because the project no longer uses them that way and the C++ standard now discourages it. The commit updates a handful of file-opening calls to use the underlying standard path object instead. There is no security bug being fixed here.

AI review queuedFix windows libc++ fs::path fstream compile errorsby Ryan Ofsky · b0113afd · Oct 6, 2025 · 13 filesMessage 91 · StrongInformational 21Details
Commit message · Ryan Ofsky

Fix windows libc++ fs::path fstream compile errors

As reported by hebasto in https://github.com/bitcoin/bitcoin/issues/33545,
newer libc++ versions implementing https://wg21.link/lwg3430 will no longer
implicitly convert `fs::path` objects to `std::filesystem::path` objects when
constructing `std::ifstream` and `std::ofstream` types.

This is not a problem in Unix systems since `fs::path` objects use
`std::string` as their native string type, but it causes compile errors on
Windows which use `std::wstring` as their string type, since `fstream`s can't
be constructed from `wstring`s.

Fix the windows libc++ compile errors by adding a new `fs::path::std_path()`
method and using it construct `fstream`s more portably.

Additionally, delete `fs::path`'s implicit `native_string` conversion so these
errors will not go undetected in the future, even though there is not currently
a CI job testing Windows libc++ builds.

91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 21/100

This is a portability fix for compiling Bitcoin Core on Windows with newer versions of the libc++ standard library. It does not change runtime behavior on currently working platforms; it only ensures the code still builds on a less-common Windows toolchain. There is no security vulnerability being fixed here.

AI review queued[test] wallet send 3 generation TRUCby glozow · dcd42d6d · Oct 2, 2025 · 1 fileMessage 55 · ThinInformational 15Details
Commit message · glozow

[test] wallet send 3 generation TRUC

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds a new functional test to Bitcoin Core. It checks that the wallet correctly refuses to spend an unconfirmed TRUC (version 3) transaction output when that output already has an unconfirmed parent—in other words, it prevents creating a third unconfirmed generation in a chain. There is no change to production wallet, consensus, or networking code, so it does not introduce or fix a live security vulnerability on its own.

AI review queued[wallet] never try to spend from unconfirmed TRUC that already has ancestorsby glozow · e753fadf · Oct 2, 2025 · 1 fileMessage 50 · ThinLow 43Details
Commit message · glozow

[wallet] never try to spend from unconfirmed TRUC that already has ancestors

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 43/100

This Bitcoin Core wallet patch prevents users from accidentally creating invalid or poorly structured transactions. Specifically, it stops the wallet from spending coins that come from an unconfirmed 'TRUC' (version 3) transaction which already has parent transactions in the mempool. Without this check, the wallet could build a transaction chain that violates Bitcoin's new TRUC rules, causing the new transaction to be rejected by the network instead of confirmed.

AI review queuedrpc: refactor: use string_view in Arg/MaybeArgby stickies-v · b3bf18f0 · Oct 2, 2025 · 18 filesMessage 68 · AdequateInformational 15Details
Commit message · stickies-v

rpc: refactor: use string_view in Arg/MaybeArg

Modernizes interface by not forcing users to deal with raw pointers,
without adding copying overhead. Generalizes the logic of whether
we return by value or by optional/pointer.

In cases where functions take a `const std::string&` and it would
be too much work to update them, a string copy is made (which was
already happening anyway).

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

This commit is a routine code cleanup in Bitcoin Core's RPC (remote procedure call) handling. It replaces some uses of std::string with std::string_view to avoid unnecessary string copying and modernize the API. There is no security-relevant change here—no bug fix, no vulnerability patch, and no behavior change visible to users.

AI review queuedtest: make notfound_on_unannounced more reliableby David Gumberg · 14ae71f3 · Sep 30, 2025 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · David Gumberg

test: make notfound_on_unannounced more reliable

By using mocktime, we will always hit both the notfound
branch and the tx sent branch.
The previous version didn't achieve that due to timing
issues.

Co-authored-by: Martin Zumsande <mzumsande@gmail.com>

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
second-pass: broader security terminology
AI analysis · Informational 15/100

This commit only changes a single test file. It makes an existing functional test more reliable by using mock time instead of looping up to 100 times and hoping for the right timing. There is no change to the actual Bitcoin Core node software, so it cannot affect real users, wallets, or network behavior.

AI review queuedwallet: Keep secnonces in DescriptorScriptPubKeyManby Ava Chow · 68ef954c · Sep 30, 2025 · 2 filesMessage 50 · ThinLow 33Details
Commit message · Ava Chow

wallet: Keep secnonces in DescriptorScriptPubKeyMan

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 33/100

This commit changes how Bitcoin Core wallets store temporary secret signing data (MuSig2 'secnonces') for multi-signature transactions. Previously, these secrets may have been kept in a more general signing provider; now they are kept inside the wallet's descriptor key manager. The change is defensive: it ensures these one-time secrets stay only in memory and are never written to disk, which prevents a dangerous nonce-reuse bug that could leak private keys. The commit itself is a small code move/addition, not a complete fix, and the commit message does not call it a security vulnerability.

AI review queuedtest: Test MuSig2 in the walletby Ava Chow · ac599c4a · Sep 30, 2025 · 2 filesMessage 67 · AdequateInformational 15Details
Commit message · Ava Chow

test: Test MuSig2 in the wallet

67/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds a new automated test file for the MuSig2 multi-signature wallet feature. It does not change any production wallet, cryptography, or consensus code. There is no security-relevant change to the software users run.

AI review queuedsign: Add CreateMuSig2AggregateSigby Ava Chow · 258db938 · Sep 30, 2025 · 4 filesMessage 35 · OpaqueInformational 17Details
Commit message · Ava Chow

sign: Add CreateMuSig2AggregateSig

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit adds a new helper function that combines multiple MuSig2 partial signatures into one final Schnorr signature for Bitcoin transactions. It is a feature addition, not a fix. The code includes verification of each partial signature before aggregation, which is good defensive practice. There is no evidence in the commit or supplied references that this change addresses a security vulnerability.

AI review queuedsign: Add CreateMuSig2Nonceby Ava Chow · 512b17fc · Sep 30, 2025 · 7 filesMessage 35 · OpaqueInformational 14Details
Commit message · Ava Chow

sign: Add CreateMuSig2Nonce

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 14/100

This commit adds a new helper function for creating MuSig2 cryptographic nonces in Bitcoin Core. MuSig2 is a multi-signature scheme that lets multiple parties jointly sign a transaction. The change is a feature addition: it introduces a nonce generator, a session ID helper, and wiring for signing code. There is no direct evidence in the commit or supplied references that this fixes a known security vulnerability. It is best treated as a normal code addition that may carry implementation risks rather than a disclosed security patch.

AI review queuedsign: Include taproot output key's KeyOriginInfo in sigdataby Ava Chow · 9baff05e · Sep 30, 2025 · 2 filesMessage 50 · ThinLow 27Details
Commit message · Ava Chow

sign: Include taproot output key's KeyOriginInfo in sigdata

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This Bitcoin Core change makes the wallet's signing code record key-origin metadata for both the internal key and the final output key of a Taproot address, not just the internal key. That metadata helps external signers (like hardware wallets) understand which key path was used to derive the address. On its own this is a small correctness/data-availability fix; it does not directly change how coins are spent or introduce an obvious exploit, but missing key-origin data could previously have caused signing failures or user confusion for Taproot key-path spends.

AI review queuedsign: Add CreateMuSig2PartialSigby Ava Chow · bf69442b · Sep 30, 2025 · 4 filesMessage 35 · OpaqueInformational 11Details
Commit message · Ava Chow

sign: Add CreateMuSig2PartialSig

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 11/100

This commit adds a new function that lets a Bitcoin Core wallet create a partial MuSig2 signature as part of a multi-party signing process. It is a feature addition, not a fix. There is no direct evidence in the commit or supplied references that this change introduces a security vulnerability.

AI review queuedp2p: Use different inbound inv timer per networkby Martin Zumsande · 0f7d4ee4 · Sep 30, 2025 · 1 fileMessage 68 · AdequateLow 43Details
Commit message · Martin Zumsande

p2p: Use different inbound inv timer per network

Currently nodes schedule their invs to all inbound peers at the same time.
It is trivial to make use this timing pattern for fingerprinting
identities on different networks. Using a separate timers for each network will
make the fingerprinting harder.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Low 43/100

This change tweaks how Bitcoin nodes schedule transaction announcements to inbound peers. Previously, all inbound peers were told about new transactions on the same shared timer, which could let a spy with multiple connections figure out when a node first learned of a transaction and possibly trace it back to its source. The patch splits that timer by network group so that different peer networks get staggered announcement times, making that timing-based fingerprinting harder. It is a privacy-hardening fix, not a fix for a code crash or theft bug.

AI review queuedci: remove 3rd party js from windows dll gha jobby Max Edwards · 7ae0497e · Sep 25, 2025 · 1 fileMessage 80 · StrongInformational 17Details
Commit message · Max Edwards

ci: remove 3rd party js from windows dll gha job

We can use vswhere.exe directly to create a vs developer
prompt and so can remove this third party dependency.

Co-authored-by: David Gumberg <davidzgumberg@gmail.com>

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 discountsecond-pass: broader security terminology
AI analysis · Informational 17/100

This change updates a Bitcoin Core GitHub Actions workflow so that it no longer downloads and runs a third-party JavaScript action (ilammy/msvc-dev-cmd) to set up the Microsoft Visual Studio build environment on Windows. Instead, it uses a small PowerShell script that runs a tool already installed with Visual Studio (vswhere.exe) and then calls the official Microsoft batch file (vsdevcmd.bat). The main benefit is reducing supply-chain risk: the project no longer depends on an external, pinned-but-third-party action that could be compromised or behave unexpectedly. There is no direct vulnerability being fixed in Bitcoin Core's own code.

AI review queuedtest: Remove convert_to_json_for_cliby Ava Chow · df67bb6f · Sep 23, 2025 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · Ava Chow

test: Remove convert_to_json_for_cli

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a routine cleanup of Bitcoin Core's functional test code. It removes a helper method called convert_to_json_for_cli that was used to wrap arguments when tests were run against the command-line bitcoin-cli tool. The change only affects internal test scripts and has no impact on the live Bitcoin network, wallets, or node security.

AI review queueddoc: remove unrelated `bitcoin-wallet` binary from `libbitcoin_ipc` descriptionby Sebastian Falbesoner · fbde8d9a · Sep 22, 2025 · 1 fileMessage 81 · StrongInformational 15Details
Commit message · Sebastian Falbesoner

doc: remove unrelated `bitcoin-wallet` binary from `libbitcoin_ipc` description

`bitcoin-wallet` as-is is merely an offline wallet inspection tool
(introduced more than 9 years ago in PR #13926) that doesn't have any
relation with IPC/multiprocess, so remove it from the list of binaries
that use `libbitcoin_ipc`.

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a documentation-only correction. It removes an incorrect mention of the bitcoin-wallet tool from a design document that describes which programs use the inter-process communication (IPC) library. There is no code change and no security impact.

AI review queuedcmake: Install `bitcoin` manpageby Hennadii Stepanov · 7584a4fd · Sep 16, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · Hennadii Stepanov

cmake: Install `bitcoin` manpage

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit is a harmless build-system fix. It tells the CMake installer to also include the manual page (help documentation) for the main `bitcoin` command-line program when installing Bitcoin Core. There is no security issue.

AI review queuedcontrib: add placeholder manpage for bitcoin binaryby fanquake · 53e6db91 · Sep 9, 2025 · 1 fileMessage 30 · OpaqueInformational 15Details
Commit message · fanquake

contrib: add placeholder manpage for bitcoin binary

30/100 · OpaqueMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
documentation-only discountsecond-pass: opaque commit message
AI analysis · Informational 15/100

This commit adds a placeholder manual page file for the bitcoin binary. It contains only documentation text and instructions for generating real manpages later. There is no executable code, no configuration change, and no security relevance.

AI review queuednet: check for empty header before calling FillBlockby Eugene Siegel · 5e585a0f · Sep 8, 2025 · 1 fileMessage 73 · AdequateLow 44Details
Commit message · Eugene Siegel

net: check for empty header before calling FillBlock

Previously in debug builds, this would cause an Assume crash if
FillBlock had been called previously. This could happen when multiple
blocktxn messages were received.

Co-Authored-By: Greg Sanders <gsanders87@gmail.com>

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Low 44/100

This change fixes a bug in how Bitcoin Core handles repeated compact-block transaction messages from peers. In debug builds, receiving multiple blocktxn messages for the same block could trigger an internal consistency check (Assume) crash because the code tried to look up information from a header that had already been cleared. The patch detects the empty-header situation, marks the peer as misbehaving, and returns early instead of crashing. It is a robustness fix that prevents a debug-only crash and tightens handling of misbehaving peers.

AI review queuedqt: 30.0 translations updateby Hennadii Stepanov · b320f5ef · Sep 8, 2025 · 123 filesMessage 45 · ThinInformational 15Details
Commit message · Hennadii Stepanov

qt: 30.0 translations update

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is a routine update of the non-English user-interface translations for the Bitcoin Core Qt (graphical) wallet. It adds, removes, and reorders translated text strings and drops a number of very low-translation-coverage locale files. There is no executable code change, no change to wallet logic, networking, consensus, or cryptography, and no security-relevant behavior is introduced or fixed.