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 queue771AI 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 Chow15649123064
MarcoFalke4062177074
Lőrinc1772147081
fanquake2271932057
Hennadii Stepanov2081435063
rkrux57944074
Sjors Provoost89817074
Sebastian Falbesoner33714073
David Gumberg55637072
Pieter Wuille9559066
Hodlinator66518076
Analysis record

Published AI watches

Last scanned 32 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

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

refactor: simplify adding SipHash-1-3-UJ

This is a code cleanup (refactor) that moves the internal SipHash mixing steps into shared helper methods. It does not change how Bitcoin hashes data, how many rounds are run, or any user-visible behavior. There is no security bug being fi…

25bfca06by Lőrinc+74−1222 files
No security note in commit
Informational 21 AI analysisMessage 68 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

crypto: add generic SipHash-1-3-UJ

This commit adds a new, weaker variant of the SipHash algorithm inside Bitcoin Core's cryptography module. It is explicitly designed for low-security uses such as internal hash tables, not for protecting funds or network messages. The code…

New weaker cryptographic primitive added (SipHash-1-3 vs. standard SipHash-2-4)Explicit unpadded input design removes length-commitment paddingJumbo 256-bit blocks increase attacker control within a single round
c2d7931bby Pieter Wuille+103−02 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 queuedtest: convert equality asserts with comments or special charsby Lőrinc · 23c06d4e · Apr 7, 2026 · 5 filesMessage 95 · StrongInformational 15Details
Commit message · Lőrinc

test: convert equality asserts with comments or special chars

Some remaining `assert x == y` lines include inline comments, list literals, or descriptor strings with `#`.
Convert those sites by hand so the later mechanical rewrite can stay simple.

95/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
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only changes test code. It replaces plain Python `assert x == y` checks with a helper called `assert_equal` in a handful of test files. The reason is cosmetic/preparatory: some test lines contain inline comments, list literals, or descriptor strings with `#` characters, so they need to be converted by hand before a later automated rewrite can safely convert the rest. There is no change to Bitcoin Core's actual node or wallet logic, so it cannot affect live users, funds, or network security.

AI review queuedtest: use `in` for two-value equality assertsby Lőrinc · 76a5570b · Apr 7, 2026 · 3 filesMessage 90 · StrongInformational 15Details
Commit message · Lőrinc

test: use `in` for two-value equality asserts

Some tests spell a two-value membership check as `assert x == a or x == b`.
Rewrite those sites as `assert x in (a, b)`.
This keeps the check the same and removes `==` forms that the later cleanup should not touch.

90/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ 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 rewrites a handful of test-file assertions from the form 'x equals a or x equals b' to the equivalent form 'x is in the set (a, b)'. It does not change any production code, does not alter what the tests check, and has no security relevance for running Bitcoin software.

AI review queuedguix: binutils 2.46.0by fanquake · 47b7a9f6 · Apr 6, 2026 · 1 fileMessage 38 · OpaqueInformational 11Details
Commit message · fanquake

guix: binutils 2.46.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 11/100

This commit updates the version of binutils (a set of tools used to build Bitcoin Core's release binaries inside a reproducible build environment called Guix) from 2.44 to 2.46.0. It is a routine build-system dependency bump. There is no direct evidence in the commit or supplied references that this fixes a security vulnerability, introduces a known exploit, or changes any runtime code that end users interact with.

AI review queuedbtcsignals: use a single shared_ptr for liveness and callbackby Cory Fields · 242b0ebb · Apr 3, 2026 · 1 fileMessage 73 · AdequateInformational 13Details
Commit message · Cory Fields

btcsignals: use a single shared_ptr for liveness and callback

This simplifies the implementation and eliminates an unnecessary shared_ptr.

Suggested by Marco Falke.

<Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>

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 13/100

This is a small internal code cleanup in Bitcoin Core's custom signal/slot system. It merges two separate shared pointers (one tracking whether a callback is still active, and one used as a construction tag) into a single shared pointer. There is no user-facing change, no bug fix, and no security-relevant behavior change visible in the diff.

AI review queuedsignals: Add a simplified boost-compatible implementationby Cory Fields · e60a0b9a · Apr 3, 2026 · 1 fileMessage 73 · AdequateLow 27Details
Commit message · Cory Fields

signals: Add a simplified boost-compatible implementation

This re-implements the tiny portion of boost::signals2 that we currently use.

It is enough to be useful as a generic multicast callback mechanism.

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 27/100

This commit replaces Bitcoin Core's use of the Boost signals2 library with a new, simplified in-house implementation called btcsignals. It is a code refactoring/reimplementation intended to reduce dependency on Boost. The change itself does not fix a known bug or vulnerability, but any reimplementation of a threading/callback mechanism carries risk of introducing subtle concurrency or lifetime bugs.

AI review queuedsignals: remove boost compatibility guardsby Cory Fields · 34eabd77 · Apr 3, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Cory Fields

signals: remove boost compatibility guards

These were necessary to work around unnecessary constraints that have been
fixed in the (upcoming) boost::signals2 version 1.91.

Our implementation's constraints match those of that version.

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 is a small cleanup of a test file. It removes version-specific workarounds for older Boost library versions, keeping only the behavior needed for the newest Boost version. There is no security issue here.

AI review queuedsignals: add signals testsby Cory Fields · 63c68e2a · Apr 3, 2026 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Cory Fields

signals: add signals tests

These tests are compatible with boost::signals2 as well as the replacement
implementation that will be introduced in the next commit.

This is intended to demonstrate some equivalency between the implementations.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ 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 new automated tests for an internal signal/slot library called btcsignals. It does not change any production code, fix a bug, or alter behavior visible to users or attackers. The tests are described by the author as preparation for a future replacement implementation.

AI review queuedwalletdb: Remove m_mock from SQLiteDatabaseby Ava Chow · 037ea2c7 · Apr 2, 2026 · 4 filesMessage 45 · ThinInformational 12Details
Commit message · Ava Chow

walletdb: Remove m_mock from SQLiteDatabase

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 12/100

This commit is a small internal code cleanup in Bitcoin Core's wallet database code. It removes a special 'mock' flag used only for testing and replaces it with a more general way to pass extra SQLite database options. The change only affects test helper code and how mock (in-memory) wallets are created during tests. There is no indication it fixes a security bug or introduces a security risk.

AI review queuedbench, wallet: Make WalletMigration's setup WalletBatch scopedby Ava Chow · 964eafb7 · Apr 2, 2026 · 1 fileMessage 77 · AdequateInformational 15Details
Commit message · Ava Chow

bench, wallet: Make WalletMigration's setup WalletBatch scoped

WalletBatch needs to be in a scope so that it is destroyed before the
database is closed during migration.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This change fixes a bug in a benchmark test program, not in the main Bitcoin wallet that users run. The benchmark creates a fake wallet to measure how long migration takes, and the fake wallet's database helper object was not being closed before the migration step tried to close the database. That could make the benchmark crash or fail, but it does not affect real wallets or network security.

AI review queuedwallet: Make Mockable{Database,Batch} subclasses of SQLite classesby Ava Chow · 59484e2f · Apr 2, 2026 · 4 filesMessage 95 · StrongInformational 15Details
Commit message · Ava Chow

wallet: Make Mockable{Database,Batch} subclasses of SQLite classes

The mocking functionality of MockableDatabase, MockableBatch, and
MockableCursor was not really being used. These are changed to be
subclasses of their respective SQLite* classes and will use in-memory
SQLite databases so that the tests are more representative of actual
database behavior.

MockableCursor is removed as there are no overrides needed in
SQLiteCursor for the tests.

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 15/100

This commit is a test-only refactoring change. It replaces a custom in-memory fake database used in Bitcoin Core's automated tests with a real SQLite database running in memory. There is no change to how actual user wallets work, no bug fix for live code, and no security issue introduced or fixed.

AI review queuedtest: Make duplicating MockableDatabases use cursor and batchby Ava Chow · e7d67c9f · Apr 2, 2026 · 2 filesMessage 95 · StrongInformational 15Details
Commit message · Ava Chow

test: Make duplicating MockableDatabases use cursor and batch

Instead of directly copying the stored records map when duplicating a
MockableDatabase, use a Cursor to read the records, and a Batch to write
them into the new database. This prepares for using SQLite as the
database backend for MockableDatabase.

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

This is a test-only code change. It refactors how a fake in-memory wallet database is copied during unit tests so that the copy uses the same cursor-and-batch interface a real database would use. There is no change to production wallet code, no user-facing behavior change, and no security fix or vulnerability.

AI review queueddoc: Discourage trailing doxygen comments, and fix the broken onesby MarcoFalke · facaeb9c · Apr 2, 2026 · 4 filesMessage 50 · ThinInformational 15Details
Commit message · MarcoFalke

doc: Discourage trailing doxygen comments, and fix the broken ones

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 15/100

This commit only changes documentation style guidance and moves or converts code comments. It does not alter any program logic, data handling, or network behavior, so it has no security impact.

AI review queuedqa: Improve error messageby Hodlinator · 257769a7 · Mar 31, 2026 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · Hodlinator

qa: Improve error message

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 is a tiny quality-of-life change to a test helper. It only makes an error message clearer when a test fails, so developers can see exactly what text was produced. It does not touch Bitcoin's network code, wallet, consensus rules, or any code that runs in production.

AI review queuedrefactor: Move license info into new moduleby Hennadii Stepanov · 6953363b · Mar 30, 2026 · 15 filesMessage 57 · ThinInformational 15Details
Commit message · Hennadii Stepanov

refactor: Move license info into new module

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 is a straightforward code cleanup: it moves the functions that generate copyright and license text from one source file to a new dedicated module, then updates the various Bitcoin programs to include that new module. There is no change to what the software does, no bug fix, and no security-relevant behavior change.

AI review queuedrefactor: Return std::optional from GetWalletNameFromJSONRPCRequestby MarcoFalke · fa0a0944 · Mar 30, 2026 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · MarcoFalke

refactor: Return std::optional from GetWalletNameFromJSONRPCRequest

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 straightforward internal code cleanup. It changes one helper function so that it returns a wallet name directly (using std::optional) instead of writing it into a caller-provided variable and returning true/false. There is no change to user-visible behavior, no bug fix, and no security relevance.

AI review queuedtest: wallet: Warning for excessive fallback fee.by David Gumberg · 3dcdb2b9 · Mar 26, 2026 · 1 fileMessage 67 · AdequateInformational 15Details
Commit message · David Gumberg

test: wallet: Warning for excessive fallback fee.

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 test case to Bitcoin Core's functional test suite. It checks that when a user starts the software with an unusually high fallback transaction fee, the software still works but prints a warning message. There is no code change to the actual Bitcoin Core wallet or fee logic—only a test that verifies existing behavior.

AI review queuedtest: wallet: -fallbackfee default is 0by David Gumberg · 6664e41e · Mar 26, 2026 · 1 fileMessage 82 · StrongInformational 15Details
Commit message · David Gumberg

test: wallet: -fallbackfee default is 0

Also check more RPC's for success and check that we are using
`-fallbackfee`.

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

This commit only changes a test file. It improves an existing functional test to verify that Bitcoin Core's wallet correctly fails to send transactions when the fallback fee is unset or set to zero, and succeeds when a fallback fee is configured. There is no change to production code, no security fix, and no vulnerability being patched.

AI review queuedtest: wallet: refactor: fallbackfee extract common send failure checks.by David Gumberg · d28c9892 · Mar 26, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · David Gumberg

test: wallet: refactor: fallbackfee extract common send failure checks.

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 is a minor test-code cleanup. It renames a test class to match the actual topic (fallback fee), shortens a comment, and pulls three repeated 'sending must fail' checks into a helper function. No production code or security behavior is changed.

AI review queuedwallet: drop stale TODOsby Sjors Provoost · 1438165b · Mar 25, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Sjors Provoost

wallet: drop stale TODOs

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit simply removes two outdated code comments (TODOs) from a Bitcoin Core wallet file related to external signers. No actual code behavior was changed, so it does not fix or introduce any security issue on its own.

AI review queuedfuzz: Remove unused g_setup pointersby MarcoFalke · fabbfec3 · Mar 25, 2026 · 3 filesMessage 78 · AdequateInformational 15Details
Commit message · MarcoFalke

fuzz: Remove unused g_setup pointers

These are unused and removing them avoids clang warnings like:

src/test/fuzz/deserialize.cpp:42:26: error: variable g_setup set but not used [-Werror,-Wunused-but-set-variable]

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

This commit removes unused global pointer variables in three test-only fuzzing files. It is a code cleanup change to silence compiler warnings and has no effect on the live Bitcoin Core software that users run.

AI review queuedscripted-diff: rpc: Don't pointlessly capture in RPCMethod lambdasby Anthony Towns · 5a81d73a · Mar 25, 2026 · 23 filesMessage 83 · StrongInformational 15Details
Commit message · Anthony Towns

scripted-diff: rpc: Don't pointlessly capture in RPCMethod lambdas

-BEGIN VERIFY SCRIPT-
sed -i 's/\[[&]\][(]const RPCMethod[&]/[](const RPCMethod\&/' $(git grep -l '\[\&\](const RPCMethod')
-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
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a large but purely cosmetic cleanup commit. It removes unnecessary '&' captures from C++ lambda functions used to define Bitcoin RPC commands. The code behavior is unchanged; the change only makes the source code slightly cleaner and avoids compiler warnings about unused captures.

AI review queuedscripted-diff: rpc: Rename RPCHelpMan to RPCMethodby Anthony Towns · 4e789299 · Mar 25, 2026 · 27 filesMessage 83 · StrongInformational 15Details
Commit message · Anthony Towns

scripted-diff: rpc: Rename RPCHelpMan to RPCMethod

Since this class defines the functionality of the RPC method, not
just its help text, this better reflects reality.

-BEGIN VERIFY SCRIPT-
sed -i -e 's/\bRPCHelpMan\b/RPCMethod/g' $(git grep -l RPCHelpMan 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
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a purely cosmetic rename of a C++ class used to define Bitcoin RPC commands. Every occurrence of 'RPCHelpMan' is replaced with 'RPCMethod' across 27 source files using an automated script. No behavior, logic, or security properties of the software change.

AI review queuedtest: functional: drop rmtree usage and add lint checkby David Gumberg · 0d1301b4 · Mar 24, 2026 · 16 filesMessage 100 · StrongInformational 18Details
Commit message · David Gumberg

test: functional: drop rmtree usage and add lint check

`shutil.rmtree` is dangerous because it recursively deletes. There are
not likely to be any issues with it's current uses, but it is possible
that some of the assumptions being made now won't always be true, e.g.
about what some of the variables being passed to `rmtree` represent.

For some remaining uses of rmtree that can't be avoided for now, use
`cleanup_dir` which asserts that the recursively deleted folder is a
child of the the `tmpdir` of the test run. Otherwise,
`tempfile.TemporaryDirectory` should be used which does it's own
deleting on being garbage collected, or old fashioned unlinking and
rmdir in the case of directories with known contents.

100/100 · StrongMessage clarity
✓ Specific, 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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit is a hardening change for Bitcoin Core's test code. It removes most uses of shutil.rmtree, a Python function that recursively deletes directories, because it could accidentally wipe out the wrong folder if a test variable ever pointed somewhere unexpected. The patch replaces those calls with safer alternatives: a new cleanup_folder helper that refuses to delete anything outside the test's temporary directory, tempfile.TemporaryDirectory which cleans itself up, or explicit removal of known files. It also adds a lint rule to prevent new rmtree uses in test code. This is a defensive, preventive fix in the test suite, not a fix for an active security bug in the running Bitcoin node software.

AI review queuedqa: Remove all instances of `remove_all` except test cleanupby David Gumberg · a7e4a59d · Mar 24, 2026 · 6 filesMessage 83 · StrongLow 27Details
Commit message · David Gumberg

qa: Remove all instances of `remove_all` except test cleanup

Adds a lint check for `remove_all()`

`fs::remove_all()`/`std::filesystem::remove_all()` is extremely
dangerous, all user-facing instances of it have been removed, and it
also deserves to be removed from the places in our test code where it is
being used unnecessarily.

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

This commit is a defensive cleanup: it removes almost all uses of a filesystem function called remove_all() that can wipe out entire directory trees, and adds an automated lint check to prevent it from being reintroduced. The changes only affect benchmark and test code, not the live Bitcoin wallet or node software that ordinary users run. It reduces the risk of accidental data loss during testing, but does not fix an active security bug.

AI review queuedkernel: Expose context-free block validationby w0xlt · 0587c560 · Mar 24, 2026 · 4 filesMessage 78 · AdequateInformational 14Details
Commit message · w0xlt

kernel: Expose context-free block validation

This introduces a context-free validation entry point for full blocks in
the kernel C and C++ APIs.

* Add `btck_block_check`, a C function that wraps `CheckBlock` and runs
header and body checks for a `btck_Block` using `btck_ConsensusParams`.
Callers provide a `btck_BlockValidationState` to receive the result
and supply a `btck_BlockCheckFlags` bitmask to control POW and
merkle-root verification.

* Add `btck_BlockCheckFlags` in the C API, plus the corresponding
`BlockCheckFlags` scoped enum in the C++ wrapper, including a
`*_ALL` convenience value.

* Add `Block::Check()` to the C++ wrapper to mirror the new C function
and return a bool while filling a `BlockValidationState`.

* Add a test `(btck_check_block_context_free)` that verifies a known
valid mainnet block passes with `BlockCheckFlags::ALL` and that
truncated block data fails deserialization.

Co-authored-by: yuvicc <yuvichh01@gmail.com>

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validationsecond-pass: broader security terminology
AI analysis · Informational 14/100

This commit adds a new public API to Bitcoin Core's kernel library that lets outside callers run basic sanity checks on a raw Bitcoin block (for example, checking size limits, coinbase structure, and optionally proof-of-work and the merkle root). It is purely an addition of a new validation entry point and its tests. There is no bug fix, no change to existing consensus logic, and no indication of a security issue.