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 queue1293AI analyses
207commits · 30 days
501commits · 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 Chow15649132064
MarcoFalke40921117074
Lőrinc1772199081
fanquake2271994057
Hennadii Stepanov2091477063
rkrux57947074
Sjors Provoost89827074
Sebastian Falbesoner33718073
David Gumberg55645072
Pieter Wuille95520066
Hodlinator66526076
Analysis record

Published AI watches

Last scanned 48 minutes 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 queuedtest fixupsby glozow · 636fa219 · Aug 15, 2025 · 5 filesMessage 0 · OpaqueInformational 15Details
Commit message · glozow

test fixups

0/100 · OpaqueMessage clarity
✓ Mentions testing or verification! Very short subject! Too few words to establish purpose! 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 only changes Bitcoin Core's internal functional test scripts. It fixes log-message formatting, adjusts test thresholds and comments to match current fee-relay behavior, and adds one extra test case for a v3 transaction package. None of these changes affect the live Bitcoin node software, network protocol, consensus rules, or wallet code that users run.

AI review queueddoc fixups for 33106by glozow · daa40a3f · Aug 15, 2025 · 3 filesMessage 28 · OpaqueInformational 15Details
Commit message · glozow

doc fixups for 33106

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

This commit only updates documentation and code comments to match a previously merged change (PR 33106). It does not modify any executable network, consensus, wallet, or mempool code, so it has no security impact on its own.

AI review queuedtest: add truc wallet testsby ishaanam · 4ef8065a · Aug 15, 2025 · 3 filesMessage 67 · AdequateInformational 15Details
Commit message · ishaanam

test: add truc wallet 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 adds new automated tests for Bitcoin Core wallet behavior with version-3 (TRUC) transactions. It does not change any production wallet, node, or consensus code. The tests verify that the wallet correctly handles TRUC size limits, version mixing rules, and mempool conflict tracking. There is no security fix or vulnerability introduced here.

AI review queuedtest: extract `bulk_vout` from `bulk_tx` so it can be used by wallet testsby ishaanam · 5d932e14 · Aug 15, 2025 · 2 filesMessage 72 · AdequateInformational 15Details
Commit message · ishaanam

test: extract `bulk_vout` from `bulk_tx` so it can be used by wallet tests

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 is a simple code cleanup in Bitcoin Core's test framework. It moves a helper function called bulk_vout from one test-only file to another so it can be reused by wallet tests. There is no change to the actual Bitcoin network code, consensus rules, or wallet logic that real users run.

AI review queuedwallet: don't return utxos from multiple truc txs in AvailableCoinsby ishaanam · c5a2d080 · Aug 15, 2025 · 1 fileMessage 50 · ThinLow 46Details
Commit message · ishaanam

wallet: don't return utxos from multiple truc txs in AvailableCoins

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

This change adjusts how Bitcoin Core's wallet picks which unconfirmed coins it can spend. Specifically, when a new type of transaction called 'TRUC' (a v3 transaction) is involved, the wallet now only returns coins from one TRUC transaction at a time—the one with the highest total value—rather than returning coins from multiple unconfirmed TRUC transactions together. This is a defensive fix to avoid creating new transactions that would violate TRUC rules, which could otherwise cause the wallet's own follow-up transactions to be rejected by the network. It is more of a correctness/safety improvement than a direct theft or remote-exploitation bug.

AI review queued wallet: don't include unconfirmed v3 txs with children in available coinsby ishaanam · 2e961766 · Aug 15, 2025 · 3 filesMessage 50 · ThinLow 44Details
Commit message · ishaanam

wallet: don't include unconfirmed v3 txs with children in available coins

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

This Bitcoin Core wallet patch prevents the wallet from trying to spend coins from an unconfirmed v3 (TRUC) transaction that already has a child transaction in the mempool. Because v3 transactions are only allowed a strict one-parent-one-child chain in the mempool, attempting to create a second child would be rejected by network policy. Without this fix, the wallet could waste time and fees building transactions that the network will never accept, and in some cases might temporarily lock up funds or produce confusing behavior. It is a correctness and usability fix rather than a theft or remote-code-execution vulnerability.

AI review queuedwallet: unconfirmed ancestors and descendants are always trucby ishaanam · ec2676be · Aug 15, 2025 · 2 filesMessage 50 · ThinLow 27Details
Commit message · ishaanam

wallet: unconfirmed ancestors and descendants are always truc

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 wallet patch changes how the wallet selects unconfirmed coins to spend. It adds a filter so that when a user is building a transaction, unconfirmed ancestor or descendant coins are only used if their transaction version matches the version chosen for the new transaction. The commit title says these unconfirmed relatives are 'always TRUC' (a new v3 transaction version type). The change prevents mixing v3 (TRUC) and non-v3 unconfirmed coins in the same spend, which could otherwise cause the resulting transaction to violate network relay rules and get rejected.

AI review queuedwallet: set m_version in coin control to default valueby ishaanam · cc155226 · Aug 15, 2025 · 2 filesMessage 73 · AdequateLow 32Details
Commit message · ishaanam

wallet: set m_version in coin control to default value

In future commits we assume that coin_control.m_version has a
value when making sure that we follow truc rules, so we should
give it a default value of CTransaction::CURRENT_VERSION.

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

This Bitcoin Core commit changes how transaction version numbers are handled when a user creates a transaction through the wallet. Previously, the version was optional and only set if the user explicitly provided one. Now it always defaults to the current standard transaction version. The commit message says this is needed so future code can rely on the version field when enforcing new 'TRUC' transaction rules. On its own, this is a small defensive cleanup, not a fix for an active exploit, but it prevents a class of future bugs where an unset version could lead to incorrect rule checks.

AI review queuedwallet: mark unconfirmed v3 siblings as mempool conflictsby ishaanam · 85c54106 · Aug 15, 2025 · 2 filesMessage 50 · ThinLow 33Details
Commit message · ishaanam

wallet: mark unconfirmed v3 siblings as mempool conflicts

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 Bitcoin Core wallet patch fixes how the wallet tracks conflicting transactions for a new type of transaction called TRUC (v3). TRUC rules allow only one unconfirmed child of a parent in the mempool at a time. The wallet now correctly marks other wallet transactions that spend from the same parent as 'mempool conflicts' when one TRUC child enters or leaves the mempool. Without this, the wallet could misreport whether these sibling transactions are spendable or likely to confirm, potentially leading users to make decisions based on stale or incorrect transaction state.

AI review queuedwallet: limit v3 tx weight in coin selectionby ishaanam · da8748ad · Aug 15, 2025 · 4 filesMessage 45 · ThinLow 33Details
Commit message · ishaanam

wallet: limit v3 tx weight in coin selection

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 · Low 33/100

This Bitcoin Core commit tightens the wallet's coin-selection rules for a new type of transaction called 'v3' or 'TRUC' transactions. It makes sure the wallet does not accidentally build a transaction that is too heavy to be accepted by the network's memory pool. Without this change, a user could create a v3 transaction that the local node would reject, wasting fees or causing the wallet to produce an invalid transaction. It is a defensive correctness fix rather than an active exploit.

AI review queuedwallet: throw error at conflicting tx versions in pre-selected inputsby ishaanam · 0804fc3c · Aug 15, 2025 · 1 fileMessage 50 · ThinLow 41Details
Commit message · ishaanam

wallet: throw error at conflicting tx versions in pre-selected inputs

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

This Bitcoin Core wallet patch adds a safety check that stops users from accidentally mixing two different transaction formats (version 2 and the newer version 3, also called TRUC) in the same unconfirmed spend. Before this change, the wallet could let a user pre-select an unconfirmed input whose transaction version didn't match the version of the new transaction being built. That mismatch could produce an invalid or non-standard transaction, potentially causing the spend to be rejected by the network or by mempool rules. The fix makes the wallet detect the conflict early and return a clear error instead of silently building a problematic transaction.

AI review queueddoc: add release noteby Sjors Provoost · ce7d94a4 · Aug 14, 2025 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Sjors Provoost

doc: add release note

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 only adds a release note describing a new experimental mining interface and IPC-related build options. It contains no code changes, no bug fixes, and no security-related claims.

AI review queuedscript/interpreter: introduce script_verify_flags typenameby Anthony Towns · a5ead122 · Aug 14, 2025 · 24 filesMessage 73 · AdequateInformational 15Details
Commit message · Anthony Towns

script/interpreter: introduce script_verify_flags typename

Previously the SCRIPT_VERIFY_* flags were specified as either uint32_t,
unsigned int, or unsigned. This converts them to a common type alias in
preparation for changing the underlying type.

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

This commit is a pure code cleanup: it creates a single type name, script_verify_flags, and uses it everywhere script verification flags were previously written as uint32_t, unsigned int, or unsigned. The actual data type is still uint32_t, so behavior is unchanged. There is no security fix or vulnerability here.

AI review queuedvalidation: export GetBlockScriptFlags()by Anthony Towns · a3986935 · Aug 14, 2025 · 2 filesMessage 35 · OpaqueInformational 15Details
Commit message · Anthony Towns

validation: export GetBlockScriptFlags()

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 simply makes an internal helper function visible to other parts of the codebase. It does not change what the function does, what data it can access, or how Bitcoin validates blocks. There is no security issue here.

AI review queuedscript/verify_flags: make script_verify_flags type safeby Anthony Towns · bddcadee · Aug 14, 2025 · 12 filesMessage 73 · AdequateInformational 19Details
Commit message · Anthony Towns

script/verify_flags: make script_verify_flags type safe

`using script_verify_flags = uint32_t` allows implicit conversion to
and from int, so replace it with a class to have the compiler ensure we
use the correct type. Provide from_int and as_int to allow for explicit
conversions when desired.

Introduces the type `script_verify_flag_name` for the individual flag
name enumeration.

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

This commit is a code-quality refactor, not a security fix. It replaces a plain 32-bit integer type used for Bitcoin script verification flags with a dedicated C++ class that prevents accidental mixing with regular integers. The change makes the code safer to maintain but does not alter what the flags mean or how transactions are validated.

AI review queuedMove mapFlagNames and FormatScriptFlags logic to script/interpreter.hby Anthony Towns · 5db8cd2d · Aug 14, 2025 · 5 filesMessage 73 · AdequateInformational 15Details
Commit message · Anthony Towns

Move mapFlagNames and FormatScriptFlags logic to script/interpreter.h

Moves FormatScriptFlags logic into GetScriptFlagNames which returns a
vector of strings. For completeness, also has GetScriptFlagNames report
on any bits that do not match a known script flag.

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 straightforward code cleanup: it moves a helper that converts script verification flags into human-readable names from test files into a shared library location, and adds a small test for it. There is no change to how Bitcoin validates transactions or scripts, and no security fix.

AI review queuedinterfaces, chain, refactor: Remove inaccurate getActiveChainLocatorby pablomartin4btc · 2b00030a · Aug 13, 2025 · 3 filesMessage 81 · StrongInformational 15Details
Commit message · pablomartin4btc

interfaces, chain, refactor: Remove inaccurate getActiveChainLocator

The getActiveChainLocator method name was misleading, and its functionality
duplicated `Chain::findBlock`. This commit removes the method and replaces
all its usages with direct `Chain::findBlock` calls.

Additionally, the comment of getActiveChainLocator has been outdated since
commit ed47094 from #25717.

Finally, in CWallet::ScanForWalletTransactions, the findBlock calls are now
unified into a single call at the start of the function.

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
Co-authored-by: Matias Furszyfer <mfurszy@protonmail.com>

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

This is a routine internal code cleanup in Bitcoin Core. It removes a redundant method called getActiveChainLocator and replaces its uses with an existing equivalent method, findBlock. There is no security fix here and no indication this change addresses any vulnerability.

AI review queuedlog: make m_limiter a shared_ptrby stickies-v · 3d630c25 · Aug 12, 2025 · 4 filesMessage 68 · AdequateLow 27Details
Commit message · stickies-v

log: make m_limiter a shared_ptr

This allows us to safely and explicitly manage the dual dependency
on the limiter: one for the Logger, and one for the CScheduler.

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

This commit changes how Bitcoin Core's log rate-limiter is managed in memory. Previously, the scheduler held a raw pointer to the limiter, which could become invalid if the limiter was destroyed while a scheduled reset task was still pending. The fix makes the limiter a shared pointer and gives the scheduler only a weak reference, so the scheduled task safely does nothing if the limiter is gone. This is a defensive hardening change, not an active exploit fix.

AI review queued[prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicitby glozow · 2e515d28 · Aug 11, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · glozow

[prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit

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

This commit only changes a single functional test file. It explicitly sets the minimum relay transaction fee in the test setup so the test's assumptions about fees are clear. There is no change to production wallet, consensus, or networking code, and no security issue is present.

AI review queuedRemove implicit uint256 conversion and comparisonby marcofleon · 6f068f65 · Aug 11, 2025 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · marcofleon

Remove implicit uint256 conversion and comparison

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

This commit removes shortcuts that let a new transaction ID type be silently treated as the older uint256 type. It is a code-cleanup change that makes type mismatches produce compile-time errors rather than compile silently. There is no direct evidence this fixes an exploitable vulnerability; it is a hardening/refactoring step.

AI review queuedrefactor: Move `transaction_identifier.h` to primitivesby marcofleon · de0675f9 · Aug 11, 2025 · 20 filesMessage 85 · StrongInformational 15Details
Commit message · marcofleon

refactor: Move `transaction_identifier.h` to primitives

Moves the file from `src/util` to `src/primitives`. Now that the
refactor is complete, Txid and Wtxid are fundamental types, so it
makes sense for them to reside in `src/primitives`.

85/100 · StrongMessage clarity
✓ Specific, 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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a pure code reorganization: it moves a header file that defines transaction ID types (Txid, Wtxid) from one directory to another and updates all the places that include it. There are no functional changes to how Bitcoin Core behaves, and no security issue is present.

AI review queuedrefactor: Convert remaining instances from uint256 to Txidby marcofleon · 9c24cda7 · Aug 11, 2025 · 25 filesMessage 85 · StrongInformational 15Details
Commit message · marcofleon

refactor: Convert remaining instances from uint256 to Txid

These remaining miscellaneous changes were identified by commenting out
the `operator const uint256&` conversion and the `Compare(const uint256&)`
method from `transaction_identifier.h`.

85/100 · StrongMessage clarity
✓ Specific, 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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This is a code cleanup change that replaces generic 256-bit hash values with more specific transaction ID types (Txid and Wtxid) across many files. It does not change what the program computes or how it protects data; it only makes the type names more precise so developers can catch category mistakes at compile time. There is no indication this fixes a security bug.

AI review queuedmempool, refactor: Convert uint256 to Txidby marcofleon · f6c0d1d2 · Aug 11, 2025 · 16 filesMessage 45 · ThinInformational 15Details
Commit message · marcofleon

mempool, refactor: Convert uint256 to Txid

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 is a straightforward internal code cleanup in Bitcoin Core. It replaces the generic 256-bit hash type (uint256) with more specific transaction ID types (Txid and Wtxid) in the memory pool and related code. There is no change to network rules, consensus logic, or user-visible behavior, and no security vulnerability is introduced or fixed.

AI review queuedrefactor: Convert RPCs and `merkleblock` from uint256 to Txidby marcofleon · 326f2447 · Aug 11, 2025 · 12 filesMessage 62 · AdequateInformational 18Details
Commit message · marcofleon

refactor: Convert RPCs and `merkleblock` from uint256 to Txid

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

This commit is a code cleanup that replaces the generic uint256 type with a more specific Txid type when handling transaction identifiers in RPC commands and merkle block processing. It does not change program behavior, fix a bug, or introduce a security feature. It is a type-safety refactor intended to make the code clearer and harder to misuse in the future.

AI review queuedpolicy: introduce a helper to detect whether a transaction spends Segwit outputsby Antoine Poinsot · 2907b588 · Aug 8, 2025 · 3 filesMessage 73 · AdequateInformational 12Details
Commit message · Antoine Poinsot

policy: introduce a helper to detect whether a transaction spends Segwit outputs

We will use this helper in later commits to detect witness stripping without having
to execute every input Script three times in a row.

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

This commit adds a new internal helper function in Bitcoin Core that detects whether a transaction spends any Segregated Witness (Segwit) output, except for a special 'anchor' output type. It does not change network rules, user-visible behavior, or fix any bug by itself. It is a preparatory code change for future commits.