BC
← All projectsBitcoin Core

Bitcoin Core

The Bitcoin network's reference node and wallet implementation.

BitcoinSupply chainNormal
Repository coverage

2876 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 candidates603second-pass queue885AI analyses
210commits · 30 days
491commits · 60 days
1521commits · 180 days
2876commits · 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
915Strong · 80–100
1187Adequate · 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 Poinsot2246170
Ava Chow15649126064
MarcoFalke4062186074
Lőrinc1772153081
fanquake2271957057
Hennadii Stepanov2081440063
rkrux57944074
Sjors Provoost89820074
Sebastian Falbesoner33717073
David Gumberg55638072
Pieter Wuille95514066
Hodlinator66518076
Analysis record

Published AI watches

Last scanned 36 minutes ago

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 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 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 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ci, iwyu: Enforce warning-free `src/common`

This is a routine code cleanup commit. It adjusts which C++ header files are included in the `src/common` part of Bitcoin Core so that an automated tool called Include What You Use (IWYU) reports no warnings. It also tells the continuous i…

50145f62by Hennadii Stepanov+75−3822 files
No security note in commit
Informational 20 AI analysisMessage 73 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

wallet: Remove meaningless bool fallback in FundTransaction

This commit removes an old backward-compatibility feature in Bitcoin Core's wallet RPC command `fundrawtransaction`. Previously, callers could pass a plain `true` or `false` as the second argument, which was silently ignored. Now, passing …

Removal of a no-op backward-compatibility code path that silently accepted arbitrary boolean valuesStricter RPC input validation: bare booleans now rejected with a JSON type errorNo memory safety, cryptographic, or consensus changes observed
fa7fe798by MarcoFalke+60−652 files
No security note in commit
Informational 15 AI analysisMessage 35 · Opaque
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

guix: consolidate config flags

This commit is a housekeeping change to Bitcoin Core's Guix build scripts. It only reorders and consolidates CMake configuration flags, and adds a couple of disabled test/build options. There is no change to the actual Bitcoin software cod…

683ae4c5by fanquake+16−146 files
No security note in commit
Informational 17 AI analysisMessage 45 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

gui: Menu action for exporting a watchonly wallet

This commit adds a new menu item in the Bitcoin Core desktop wallet that lets users export a 'watch-only' copy of their wallet. A watch-only wallet can see transactions and balances but cannot spend funds. The change only wires up an exist…

No security-relevant signals detected in the diffNew GUI feature exposing existing wallet export functionalityAction is disabled for wallets with private keys disabled
cb51f97fby Ava Chow+30−04 files
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

add release notes

This commit only adds a short release note describing a new wallet-migration user-interface option. There is no code change, no bug fix, and no security-related content in the diff.

4cea5957by Pol Espinasa+5−01 file
No security note in commit
Informational 19 AI analysisMessage 50 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

gui: Adds option to not load the wallet after migration

This commit adds a user-facing checkbox in the Bitcoin Core desktop wallet that lets someone choose whether to automatically load a wallet after migrating it from an older format. Previously the wallet was always loaded. The change is a us…

No security-relevant signal: change is a feature/usability additionNo memory safety, cryptographic, consensus, or network changesNo privilege boundary crossed
492a715dby Pol Espinasa+20−104 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

refactor: Make all `const static` class members `constexpr`

This commit is a code cleanup that changes many internal class constants from 'static const' to 'static constexpr'. In modern C++, constexpr constants are automatically inlined and avoid certain linker errors when used in specific ways. Th…

05c35c40by rustaceanrob+38−4024 files
No security note in commit
Informational 15 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

fuzz: populate wallet TXO index in wallet_create_transaction

This is a fix to a Bitcoin Core fuzz test (an automated testing harness), not to the main wallet code that real users run. The test was inserting fake wallet transactions in a way that skipped updating an internal index called m_txos. Beca…

Test-only change in fuzz harnessFixes internal test-state consistency, not production wallet behaviorNo validation, consensus, or P2P networking changes
1eac6a72by frankomosh+1−01 file
No security note in commit
Informational 15 AI analysisMessage 83 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: Use long form of shell options in Guix scripts

This commit is a purely cosmetic change in Bitcoin Core's Guix build scripts. It replaces the short shell command 'set -e' with its long-form equivalent 'set -o errexit'. Both forms do exactly the same thing: they make the script exit imme…

2cb3bfa8by Hennadii Stepanov+6−66 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

guix: Add copyright headers to Guix scripts

This commit only adds or updates copyright and license header comments at the top of several helper scripts used for Bitcoin Core's Guix build process. It does not change any executable code, logic, or behavior. There is no security risk.

711eb10fby Hennadii Stepanov+20−27 files
No security note in commit
Low 28 AI analysisMessage 96 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

Squashed 'src/secp256k1/' changes from bd0287d650..d2d04864ef

This commit updates the secp256k1 cryptographic library inside Bitcoin Core to a newer version. The main change is adding support for a new optional feature called 'Silent Payments' (BIP352), which is a privacy-enhancing way to receive Bit…

New cryptographic module added (Silent Payments / BIP352)Field-element equality check magnitude bound corrected from 31 to 30X-only public key even-Y invariant enforced in extrakeys module
a33f2405by fanquake+13939−13434 files
No security note in commit
Informational 13 AI analysisMessage 81 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

ipc, refactor: Update mp::g_thread_context references

This is a small internal code cleanup in Bitcoin Core's inter-process communication (IPC) code. It replaces direct references to a global thread-local variable with a helper function so the code works around a compiler bug in Windows MinGW…

No security-relevant code change identifiedRefactor only: replaces direct global variable access with inline wrapperCommit message describes motivation as compiler compatibility, not security
d3d74e70by Ryan Ofsky+12−53 files
No security note in commit
Informational 15 AI analysisMessage 90 · Strong
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

scripted-diff: Use C.UTF-8 locale in Guix scripts

This commit is a routine cleanup that changes the locale setting in Bitcoin Core's Guix build scripts from the old ASCII-only 'C' locale to the modern 'C.UTF-8' locale. It is not a security fix and does not change any behavior that could b…

8916f796by Hennadii Stepanov+15−1515 files
No security note in commit
Informational 19 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

p2p: Assume v2transport for addresses from seeds

This change makes Bitcoin Core assume that hard-coded and DNS seed nodes support the newer BIP324 encrypted transport (v2) when first connecting. If the guess is wrong, the software falls back to the older v1 protocol automatically. It is …

Adds NODE_P2P_V2 to assumed service flags for seed-derived addressesFallback to v1 transport exists if the v2 assumption is wrongNo input validation, memory safety, or cryptographic changes
cf0f2aeaby Martin Zumsande+10−22 files
No security note in commit
Informational 16 AI analysisMessage 75 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

qt, test: Enable tests on macOS with `minimal` QPA plugin

This commit removes workarounds that skipped three Bitcoin Core Qt test suites on macOS when using the 'minimal' Qt platform plugin. The previous commit fixed the underlying crash cause, so these tests can now run. It is a test-infrastruct…

No security-relevant code change in the diff itselfReferences a prior crash fix, but this commit only removes test skipsNo input handling, cryptography, networking, consensus, or wallet logic modified
fd59d68cby Hennadii Stepanov+0−343 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 queuedrelease noteby Pol Espinasa · 25f69d97 · Mar 24, 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 is a documentation-only release note. It describes a new RPC feature that exposes background validation progress for the assumeutxo feature. There is no code change, no bug fix, and no security issue.

AI review queuedwallet: fix amount computed as boolean in coin selectionby furszy · 0026b330 · Mar 22, 2026 · 1 fileMessage 73 · AdequateLow 46Details
Commit message · furszy

wallet: fix amount computed as boolean in coin selection

The comparison is evaluated before the assignment, so total_amount
ends up holding a boolean instead of the actual amount:
total_amount = (a - b < c)
which is not what we want here. This has been working by accident.

73/100 · AdequateMessage clarity
✓ Specific, 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 · Low 46/100

A single missing semicolon in Bitcoin Core's wallet coin-selection code caused a comparison to run before an assignment. As a result, the variable that was supposed to hold the total available amount instead held just true or false. The code still mostly worked by accident, but the wrong value could mislead the wallet's decision about whether it has enough funds, especially when unconfirmed transactions with long chains are involved. This could lead to confusing error messages or, in edge cases, incorrect transaction creation.

AI review queuedtest: verify IPC error handling for invalid coinbaseby Enoch Azariah · e7a918b6 · Mar 20, 2026 · 2 filesMessage 100 · StrongInformational 12Details
Commit message · Enoch Azariah

test: verify IPC error handling for invalid coinbase

Add a test case to interface_ipc_mining.py to verify that the IPC
server correctly handles and reports serialization errors rather than
crashing the node.

This covers the scenario where submitSolution is called with data
that cannot be deserialized, as discussed in #33341

Also introduces the assert_capnp_failed helper in ipc_util.py to
cleanly handle macOS-specific Cap'n Proto exception strings, and
refactors an existing block weight test to use it.

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 12/100

This commit only adds a new automated test and a small test helper. It checks that the Bitcoin Core IPC mining server returns a clean error when given invalid data, instead of crashing. There is no change to production code, so it does not introduce or fix a live security vulnerability by itself.

AI review queuedtest: Use NodeClockContext in more testsby MarcoFalke · faad08e5 · Mar 20, 2026 · 11 filesMessage 67 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Use NodeClockContext in more tests

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 changes Bitcoin Core's internal test and benchmark code. It replaces an older way of faking the system clock during tests (SetMockTime) with a newer helper object (NodeClockContext). No production code is touched, so this cannot affect real users, wallets, or the live network.

AI review queuedfuzz: Use NodeClockContextby MarcoFalke · fa8fe094 · Mar 20, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · MarcoFalke

fuzz: Use NodeClockContext

This refactor is a follow-up to commit
eeeeb2a0b902ed69b5cd5523833d3ab5d963c81f and does not change any
behavior.

However, it is nice to know that no global mocktime leaks from the fuzz
init step to the first fuzz input, or from one fuzz input execution to
the next.
With the clock context, the global is re-set at the end of the context.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
fuzzing or regression evidencesigning or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a tiny internal test-only code cleanup in Bitcoin Core's fuzzing harness. It replaces a direct call that sets a fake global clock with a helper object that automatically resets the fake clock when it goes out of scope. The commit message explicitly says it does not change behavior. There is no indication this affects real Bitcoin node software, wallets, or the live network.

AI review queuedscripted-diff: Rename `WAIT_TIMEOUT` to `TEST_WAIT_TIMEOUT`by Hennadii Stepanov · 658e68f9 · Mar 19, 2026 · 1 fileMessage 83 · StrongInformational 15Details
Commit message · Hennadii Stepanov

scripted-diff: Rename `WAIT_TIMEOUT` to `TEST_WAIT_TIMEOUT`

On Windows, the `winerror.h` header defines `WAIT_TIMEOUT` as a macro.

This introduces a fragile dependency on header inclusion order: if
Windows headers happen to be included before using `WAIT_TIMEOUT`, the
preprocessor expands it into a numeric literal, causing syntax errors.

Rename the variable to `TEST_WAIT_TIMEOUT` to remove this fragility and
avoid the collision entirely.

-BEGIN VERIFY SCRIPT-
sed -i 's/\<WAIT_TIMEOUT\>/TEST_WAIT_TIMEOUT/g' $(git grep -l 'WAIT_TIMEOUT' ./src/)
-END VERIFY SCRIPT-

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

This commit renames a test-only constant from WAIT_TIMEOUT to TEST_WAIT_TIMEOUT because the old name conflicts with a Windows system macro. It is a build hygiene fix inside the test suite and does not change any production code or affect live Bitcoin network behavior.

AI review queuedwallet: document structured importdescriptors errorsby Renato Britto · 445143bf · Mar 19, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Renato Britto

wallet: document structured importdescriptors errors

Replace the elided "JSONRPC error" placeholder in the
importdescriptors RPC help with explicit "code" and "message"
fields.

This makes the documented result schema match the structured
error object returned in practice.

73/100 · AdequateMessage clarity
✓ Specific, 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 documentation-only change. It updates the help text for the importdescriptors command to show that error responses include a numeric 'code' and a text 'message', instead of a vague placeholder. No code behavior changed, and there is no security issue here.

AI review queuedtest: Remove confusing assert_debug_log in wallet_reindex.pyby MarcoFalke · fa30951a · Mar 19, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · MarcoFalke

test: Remove confusing assert_debug_log in wallet_reindex.py

72/100 · AdequateMessage clarity
✓ Specific, 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 changes a single test file. It removes a debug-log assertion and slightly simplifies how a test node is restarted during a reindex test. There is no change to production Bitcoin Core code, no security fix, and no vulnerability.

AI review queuedcmake: Migrate away from deprecated SQLite3 targetby Daniel Pfeifer · 498b6eb6 · Mar 18, 2026 · 2 filesMessage 73 · AdequateInformational 15Details
Commit message · Daniel Pfeifer

cmake: Migrate away from deprecated SQLite3 target

CMake version 4.3 deprecated the imported target `Sqlite::Sqlite3`.
Use the preferred name `Sqlite3::Sqlite3` instead and provide an
alias for older versions of CMake. Also define the same alias when
using vcpkg.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a routine build-system cleanup. The developers renamed how their CMake scripts refer to the SQLite database library so they use the current, non-deprecated target name. It does not change Bitcoin Core's behavior, fix a bug, or alter how wallets store data. There is no security relevance in the commit itself.

AI review queuedfuzz: Add tests for CCoinControl methodsby Chandra Pratap · 2104282d · Mar 17, 2026 · 1 fileMessage 70 · AdequateInformational 15Details
Commit message · Chandra Pratap

fuzz: Add tests for CCoinControl methods

The `ccoincontrol` fuzzer misses tests for a number of CCoinControl
operations. Add them.

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

This commit only adds new test code for an existing Bitcoin Core wallet component. It expands a fuzzing harness to exercise more methods of the CCoinControl class, which is used to choose which coins are spent in transactions. There is no change to production wallet logic, no bug fix, and no security patch.

AI review queuedfuzz: Improve oracle for existing CCoinControl testsby Chandra Pratap · 43b09b99 · Mar 17, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Chandra Pratap

fuzz: Improve oracle for existing CCoinControl tests

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
fuzzing or regression evidencesigning or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only improves a fuzz test for the Bitcoin Core wallet's coin selection helper. It adds extra checks (assertions) inside the test to make sure the coin control object behaves as expected. It does not change any production wallet code, network code, or consensus rules, so it cannot introduce a security vulnerability in the running software.

AI review queuedguix: drop CMake workaroundby fanquake · dc0ddab3 · Mar 17, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · fanquake

guix: drop CMake workaround

We are now using 3.31.x.

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

This commit removes a temporary build-script workaround that was only needed for older versions of CMake on Apple macOS builds. It is a routine cleanup with no security relevance.

AI review queuedguix: update to c5eee3336cc1d10a3cc1c97fde2809c3451624d3by fanquake · 31eb46f0 · Mar 17, 2026 · 6 filesMessage 63 · AdequateInformational 16Details
Commit message · fanquake

guix: update to c5eee3336cc1d10a3cc1c97fde2809c3451624d3

Package updates:
binutils 2.41 -> 2.44
diffutils 3.10 -> 3.12
file 5.45 -> 5.46
git-minimal 2.46.0 -> 2.52.0
(base) glibc 2.39 -> 2.41
gzip 1.13 -> 1.14
linux-headers 6.1.119 -> 6.1.166
LLVM/Clang 19.1.4 -> 19.1.7
mingw-w64 12.0.0 -> 13.0.0
nsis 3.10 -> 3.11
python-minimal 3.10 -> 3.11

CMake 4.x becomes available.
Clang/LLVM 20 & 21 become available.

63/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit updates the Guix build environment used to create reproducible Bitcoin Core release binaries. It bumps many dependency versions (compiler toolchain, glibc, Python, etc.) and makes the build container's root filesystem writable. There is no direct evidence this fixes a specific security vulnerability in Bitcoin Core itself; it is routine build-system maintenance.

AI review queuedtest/wallet: ensure FastWalletRescanFilter is updated during scanningby Novo · 92287ae7 · Mar 16, 2026 · 1 fileMessage 95 · StrongInformational 12Details
Commit message · Novo

test/wallet: ensure FastWalletRescanFilter is updated during scanning

The fixed non-range descriptor address ensured that the FastWalletRescanFilter would match all Blocks even if the filter wasn't properly updated.
This commit moves the non-range descriptor tx to a different block, so that the filters must be updated after each TopUp for the test to pass.

Co-authored-by: rkrux <rkrux.connect@gmail.com>

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100

This is a test-only change in Bitcoin Core. It improves a wallet rescan test so that it actually verifies the FastWalletRescanFilter is updated correctly during scanning. The previous test setup accidentally allowed the filter to be stale and still pass because a fixed non-range descriptor address matched every block. There is no change to production wallet code, so this does not directly fix a live security bug.

AI review queueddepends: capnp 1.4.0by fanquake · bde35d61 · Mar 15, 2026 · 1 fileMessage 38 · OpaqueInformational 13Details
Commit message · fanquake

depends: capnp 1.4.0

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 13/100

This commit simply updates a build dependency, the Cap'n Proto library, from version 1.3.0 to 1.4.0 inside Bitcoin Core's build system. It changes the version number and the cryptographic checksum used to verify the downloaded source. There is no indication in the commit itself that this fixes a security problem, and no security advisory was provided. Dependency updates can sometimes include hidden security fixes, but this change alone does not show one.

AI review queuedrefactor: Enable -Wswitch in exhaustive switchby MarcoFalke · fa2670bd · Mar 13, 2026 · 19 filesMessage 80 · StrongInformational 15Details
Commit message · MarcoFalke

refactor: Enable -Wswitch in exhaustive switch

Also, apply the comment according to the dev notes.

Also, modify the dev notes to give a lambda-wrapped example.

Can be reviewed via --ignore-all-space

Co-authored-by: Lőrinc <pap.lorinc@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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a code cleanup (refactor) that changes how switch statements are written so the compiler can warn developers if they forget to handle a new option in the future. It does not fix a security bug, change program behavior, or introduce a vulnerability. It only makes the code style more consistent and improves future maintainability.

AI review queueddoc: fix process name typo in multiprocess.mdby ViniciusCestarii · c2732146 · Mar 12, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · ViniciusCestarii

doc: fix process name typo in multiprocess.md

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit fixes a single-word typo in a documentation file. The text incorrectly said a server class was in the 'bitcoin-wallet' process when the surrounding explanation describes the 'bitcoin-node' process. There is no code change and no security relevance.

AI review queuedtests: Add test for mempool-invalid wallet txby Anthony Towns · 32325d17 · Mar 11, 2026 · 1 fileMessage 78 · AdequateInformational 15Details
Commit message · Anthony Towns

tests: Add test for mempool-invalid wallet tx

Uses send rpc to create a tx with oversized OP_RETURN output, verifies
that it doesn't enter the mempool, and that getbalance rpc returns a
nonmempool value.

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

This commit only adds a new test case to Bitcoin Core's functional test suite. It checks that a wallet transaction containing an oversized data output (OP_RETURN) is rejected from the mempool and that the wallet correctly reports the funds as 'nonmempool'. There is no change to production wallet, mempool, or consensus code, so it does not introduce or fix a live security issue.

AI review queuedwallet: Add separate balance info for non-mempool wallet txsby Anthony Towns · 25e063d9 · Mar 11, 2026 · 13 filesMessage 50 · ThinInformational 19Details
Commit message · Anthony Towns

wallet: Add separate balance info for non-mempool wallet txs

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 · Informational 19/100

This commit changes how Bitcoin Core wallets report balances for coins that are spent by transactions no longer in the memory pool. It adds a new 'nonmempool' balance category so users can see these amounts separately, rather than having them silently affect other balance figures. This is a transparency/accounting improvement, not a fix for a code execution or theft vulnerability.

AI review queuedrefactor: Introduce TxDocOptionsby MarcoFalke · fa4d5891 · Mar 11, 2026 · 4 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Introduce TxDocOptions

This prepares the function to be more flexible, when more options are
passed in the future.

62/100 · AdequateMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a simple code cleanup: it replaces a function that took two separate arguments with a small options structure. The behavior of the software is unchanged; only the internal organization of the code is different. There is no security issue here.

AI review queuedrefactor: Add and use RPCResultOptionsby MarcoFalke · fa8250e9 · Mar 11, 2026 · 4 filesMessage 80 · StrongInformational 15Details
Commit message · MarcoFalke

refactor: Add and use RPCResultOptions

Initially only move skip_type_check there.

In the future, more options can be added, without having to touch the
constructors.

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

This is a small internal code cleanup in Bitcoin Core's RPC help system. It replaces a single boolean flag (`skip_type_check`) with a small options structure (`RPCResultOptions`) so future options can be added more easily. No behavior changes, no security fixes, and no user-facing changes.

AI review queuedbench: Add wallet encryption benchmarkby David Gumberg · 51ac1abf · Mar 11, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · David Gumberg

bench: Add wallet encryption benchmark

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: security-sensitive path
AI analysis · Informational 15/100

This commit adds a new performance benchmark that measures how long it takes to encrypt a Bitcoin wallet containing many keys. It does not change any wallet, networking, consensus, or cryptographic code that runs in production. It only adds test/benchmark code, so it does not introduce or fix a security vulnerability.

AI review queuedwallet: Make encryption derivation clock mockableby David Gumberg · 9a158725 · Mar 11, 2026 · 1 fileMessage 90 · StrongInformational 18Details
Commit message · David Gumberg

wallet: Make encryption derivation clock mockable

Adds a special case where if the elapsed time during measurement of DKF
performance is 0, the default derive iterations are used so that
behavior is stable for testing and benchmarks.

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

This is a small Bitcoin Core wallet change that makes the encryption key-stretching benchmark use a mockable clock during testing. If the measured time is zero (likely because a test fakes the clock), it falls back to a fixed default number of iterations instead of trying to divide by zero or produce unstable results. It is a test-stability improvement, not a fix for an active security vulnerability.

AI review queuedrefactor: Generalize derivation target calculationby David Gumberg · ae5485fa · Mar 11, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · David Gumberg

refactor: Generalize derivation target calculation

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 Bitcoin Core calculates how many password-stretching iterations to use when encrypting a wallet. It replaces a two-step manual timing-and-averaging process with a small loop that does the same thing more generally. There is no security bug visible in the change; it is purely a maintainability improvement.

AI review queuedwallet: rpc: Improve error message for low feerates.by David Gumberg · 98fcd7af · Mar 11, 2026 · 2 filesMessage 50 · ThinInformational 19Details
Commit message · David Gumberg

wallet: rpc: Improve error message for low feerates.

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 · Informational 19/100

This commit only improves the wording of an error message shown when a user sets a transaction fee rate that is too low. It adds suggestions to adjust wallet or network fee settings. There is no code behavior change, no bug fix, and no security impact.