RB
← All projectsRust Bitcoin

rust-bitcoin

Rust library for Bitcoin data structures, serialization, consensus encoding, and scripts.

BitcoinCryptographic librariesNormal
Repository coverage

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

527security candidates507second-pass queue2197AI analyses
143commits · 30 days
279commits · 60 days
1156commits · 180 days
2045commits · 365 days
Backfill bands
Aug 5 → Feb 6787 seen32 candidatesComplete
Feb 6 → Jun 6878 seen53 candidatesComplete
Jun 6 → Jul 6211 seen15 candidatesComplete
Jul 6 → Aug 5184 seen2 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.

66/100 average clarity
496Strong · 80–100
1083Adequate · 60–79
567Thin · 40–59
151Opaque · 0–39
20security 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.
Mitchell Bagot649193645068
Andrew Poelstra21775149089
Tobin C. Harding41566410063
jrakibi944994068
Nick Johnson19121190060
Jamil Lambert, PhD11919116061
satsfy (Renato Britto)381527066
Fmt Bot331431045
Trevor Arjeski111111069
Shing Him Ng31731056
Ismail Daif22622050
Martin Habovstiak29527068
Analysis record

Published AI watches

Last scanned 43 minutes ago

Informational 19 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6922: Use `try_fold` instead of `fold` in `Sum` impl

This is a code-quality and performance improvement, not a security fix. It changes how the library adds up lists of Bitcoin amounts so that it stops early once an overflow is detected, rather than continuing to process the rest of the list…

No security-relevant signal in commit message or diffRefactor preserves overflow-checking behavior (short-circuits instead of continuing)New API method `NumOpResult::from_result` is a pure inverse of existing `into_result`
86e4d5daby Andrew Poelstra+60−562 files
No security note in commit
Moderate 52 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6893: units: Reject malformed amount strings

This update fixes a bug in how the library reads Bitcoin amount strings like '1.5 BTC'. Previously, certain malformed inputs such as '.', '._', '1_', '1_.0', and '1._0' were incorrectly accepted and treated as valid amounts (often zero), i…

Input validation bypass in amount parserMalformed strings silently parsed as zero or ordinary amountsUnderscore separator placement not enforced
fcb14622by Andrew Poelstra+88−343 files
Vendor flagged security relevance
Low 48 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6921: units: fix div_by_fee_rate_ceil precision

This commit fixes a rounding bug in how the rust-bitcoin library calculates the minimum transaction weight needed to pay a given fee at a given fee rate. The old code rounded the fee rate up too early, which could produce a weight slightly…

Incorrect fee-weight calculation due to premature integer roundingPotential transaction fee shortfall when using div_by_fee_rate_ceilOverflow protection added for Amount::MAX * 4_000_000 intermediate value
b31212e0by Andrew Poelstra+38−82 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6898: Release tracking PR: `consensus-encoding 1.3.0`

This is a routine release-management commit that bumps the version number of the `bitcoin-consensus-encoding` crate from 1.2.0 to 1.3.0 and updates lock files accordingly. It contains no code changes that fix or introduce a security issue.…

0cfc7908by Andrew Poelstra+37−349 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6909: build(deps): bump actions/labeler from 6.2.0 to 7.0.0

This commit updates a GitHub Actions automation tool (actions/labeler) used to automatically tag pull requests with labels. It is a routine dependency version bump from 6.2.0 to 7.0.0, with no indication of a security fix or vulnerability.…

4ed7c068by Andrew Poelstra+1−11 file
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6910: build(deps): bump actions/checkout from 7.0.0 to 7.0.1

This commit is a routine update to the GitHub Actions checkout tool used by the project's automated workflows. It only changes version numbers in configuration files and does not alter the actual Bitcoin library code that users run. There …

328c4ae9by Andrew Poelstra+37−3717 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6911: build(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0

This commit updates a GitHub Actions helper used to install a Python tool called uv, which runs the zizmor security scanner. The change only bumps the pinned version of the helper from 8.3.2 to 9.0.0. The new version's release notes mentio…

No security-relevant signals in commit or upstream release notesDependency bump in CI only, not in library codeNo CVE or advisory referenced
67600795by Andrew Poelstra+2−22 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6912: build(deps): bump github/codeql-action/upload-sarif from 4.37.0 to 4.37.3

This is a routine Dependabot update that changes the pinned version of GitHub's official CodeQL upload-sarif action from 4.37.0 to 4.37.3 in a single CI workflow. The action only uploads static analysis results to GitHub; it does not touch…

b51cec63by Andrew Poelstra+1−11 file
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6913: build(deps): bump dtolnay/rust-toolchain from 6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 to 02cb101ec7c40f2c49e1d9714d64511d8e1b74de

This is a routine update to a GitHub Actions helper used to install Rust during automated testing. It only changes the pinned version of the dtolnay/rust-toolchain action in workflow files. There is no change to the actual rust-bitcoin lib…

90330d15by Andrew Poelstra+8−84 files
No security note in commit
Informational 20 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6906: consensus_encoding, primitives: expose exact encoding size for block and transaction

This commit adds a way to ask, in advance, exactly how many bytes a Bitcoin block or transaction will take when serialized. It is a feature addition for the library's encoding system, not a fix for a vulnerability. There is no indication i…

No security-relevant signals in commit message or diffFeature addition: expose exact encoded sizeNo mention of vulnerability, CVE, bug bounty, or security report
1a365d53by Andrew Poelstra+129−1068 files
No security note in commit
Informational 15 AI analysisMessage 88 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump dtolnay/rust-toolchain

This is a routine update by Dependabot that changes which version of a popular GitHub Action (dtolnay/rust-toolchain) is used to install Rust in automated CI workflows. The commit only updates pinned commit hashes in workflow files; it doe…

a31e0b0eby dependabot[bot]+8−84 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump github/codeql-action/upload-sarif

This is a routine patch-version update of a GitHub-maintained action used only to upload static-analysis results (SARIF files) from a scheduled CI job. The change does not touch any project source code, cryptographic logic, or user-facing …

2cac6e38by dependabot[bot]+1−11 file
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

build(deps): bump astral-sh/setup-uv from 8.3.2 to 9.0.0

This is a routine automated update by Dependabot that changes the pinned version of a GitHub Action used to install a Python tool called 'uv' in two workflow files. The new version is a major release of the setup-uv action itself, but the …

7d7e7269by dependabot[bot]+2−22 files
No security note in commit
Informational 21 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6894: Harden `Copy` policy and apply to all pre-1.0 crates

This commit removes the automatic `Copy` trait from several public error types in the rust-bitcoin library and updates the project's written policy to discourage `Copy` on error types. `Copy` is a Rust trait that lets values be duplicated …

API hardening: removes `Copy` from public error types to preserve future flexibilityPolicy update: docs/policy.md now explicitly discourages `Copy` on error typesNo vulnerability fix: change is defensive/preventive, not reactive to a disclosed issue
457cb9b5by Andrew Poelstra+14−146 files
No security note in commit
Informational 18 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6787: Move `from_script` to `Address` and drop `AddressExt`

This change is a routine code cleanup, not a security fix. It moves a method that converts Bitcoin output scripts into human-readable addresses from a temporary 'extension trait' directly onto the main Address type. The actual conversion l…

ed42dabdby Andrew Poelstra+38−414 files
No security note in commit
Low 35 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6061: Units improvements

This is a routine code-quality and API-expansion pull request for the rust-bitcoin library's 'units' crate. It widens some fee-rate constructors from 32-bit to 64-bit inputs, renames the old 32-bit versions, improves serde error messages, …

API surface change: new u64 fee-rate constructors return NumOpResult to prevent silent overflowRenaming of existing u32 constructors to *_u32 may break downstream callers at compile time (breaking API change)Removal of artificial restriction in from_per_vb allows larger valid inputs
f9460859by Andrew Poelstra+266−12211 files
No security note in commit
Low 49 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6862: units: Preserve error in NumOpResult add and sub

This commit fixes a bug in how the library handles math errors. Previously, if you added or subtracted two values and one of them already had an error (for example, dividing by zero), the library would silently replace that original error …

Error-state information loss in arithmetic wrapper typeIncorrect error propagation could mask prior failures such as division by zeroDefensive correctness fix in numeric operation result handling
5324e59aby Andrew Poelstra+26−41 file
No security note in commit
Low 37 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6896: Fix `cargo audit` findings

This is a routine dependency-maintenance merge that swaps out old, unmaintained helper libraries for newer, patched versions in the project's example embedded programs and benchmark harness. The changes are driven by automated security sca…

cargo audit advisory remediationdependency upgrade for known-vulnerable crate (rand 0.7 / jobserver)dependency upgrade for known-vulnerable crate (crossbeam-epoch)
5f5f666dby Andrew Poelstra+51−1849 files
Vendor flagged security relevance
Low 37 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6897: consensus_encoding: fix overcounting bug in the composite encoders exact size len calculation

This commit fixes a counting bug in a Rust Bitcoin library. The library has combined encoders that bundle multiple pieces of data together. A method called len() is supposed to report how many bytes are left to encode, but it was incorrect…

Violation of documented API contract (ExactSizeEncoder::len)Potential incorrect buffer-size or progress decisions by downstream callersComposite encoder state not fully isolated in size reporting before fix
22bbc326by Andrew Poelstra+19−13 files
No security note in commit
Low 37 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

consensus_encoding: fix bug in the composite encoder's exact size

This commit fixes a bookkeeping bug in a Rust Bitcoin library's composite encoder. The encoder is a tool that combines multiple pieces of data into a single byte stream, and it has a method that is supposed to report how many bytes are lef…

Incorrect implementation of a documented size/length contractPotential for callers to over-allocate buffers or miscompute transaction/witness sizesComposite encoder used in consensus-critical serialization paths
914365b4by Nick Johnson+19−13 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.

Security candidateRemove option from current_chunk function signatureby Tobin C. Harding · 48352fe2 · Oct 15, 2025 · 6 filesMessage 88 · StrongInformational 18Details
Commit message · Tobin C. Harding

Remove option from current_chunk function signature

The `Option` was observed to be pointless, we can just return the
empty list.

Note that the diff is noisy AF but there is basically no changes to
the test logic which confirms the observation.

(Andrew made the observation, Tobin needed tests to convince himself.)

88/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 18/100

This commit is a routine internal code cleanup in the rust-bitcoin library. It changes an encoding helper function so that it returns an empty byte slice instead of a special 'no value' (None) marker when there is nothing left to encode. The behavior of the code is intended to stay the same; only the way callers check for the end of data is simplified. There is no indication this fixes a security bug.

Security candidate2025-10-12 automated rustfmt nightlyby Fmt Bot · 77fd3644 · Oct 12, 2025 · 8 filesMessage 45 · ThinInformational 15Details
Commit message · Fmt Bot

2025-10-12 automated rustfmt nightly

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This is an automated code-formatting commit from rustfmt. It only changes whitespace, line breaks, import order, and other stylistic details. There are no functional changes and no security implications.

Security candidatedocs: fix grammatical issues in code commentsby radik878 · 865417d6 · Oct 11, 2025 · 3 filesMessage 57 · ThinInformational 15Details
Commit message · radik878

docs: fix grammatical issues in code comments

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

This commit only fixes grammar in code comments and renames a test function that had a typo in its name. There are no code behavior changes, no security fixes, and no functional patches.

Security candidatedocs: fix scriptcode typoby Klaklax · 137bc48e · Oct 9, 2025 · 2 filesMessage 47 · ThinInformational 15Details
Commit message · Klaklax

docs: fix scriptcode typo

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathdocumentation-only discount
AI analysis · Informational 15/100

This commit fixes a spelling mistake in two documentation files, changing 'sciptcode' to 'scriptcode'. It does not change any code, program behavior, or security properties.

Security candidateFeature gate unused constby Jamil Lambert, PhD · a4be941e · Oct 9, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Jamil Lambert, PhD

Feature gate unused const

Clippy lint for a test const that is only used in an alloc feature gated
test.

Feature gate the cost as well.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This is a minor code-quality change. A constant used only in tests that require the 'alloc' feature was not itself behind that feature gate, causing a compiler warning (Clippy lint) when building without that feature. The patch adds the missing feature gate so the constant is only compiled when needed. There is no security impact.

Security candidateFix clippy error: struct is never constructedby Jamil Lambert, PhD · 5e2eeb87 · Oct 9, 2025 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Jamil Lambert, PhD

Fix clippy error: struct is never constructed

The structs are only used with `alloc` or `std`.

Feature gate the structs, their impls and the associated import with
`alloc`, which is already a dependency of `std`.

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

This commit is a routine code-quality fix. It adds Rust feature gates so that certain test-only structs and imports are only compiled when the 'alloc' feature is enabled, silencing a Clippy warning about structs that are never constructed. There is no security relevance.

Security candidateExtra quotation mark in doc commentby MozirDmitriy · 745fa021 · Oct 3, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · MozirDmitriy

Extra quotation mark in doc comment

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit fixes a stray extra quotation mark in a documentation comment. It is a typo correction with no effect on program behavior or security.

Security candidateInclude tests filesby Tobin C. Harding · 40645896 · Oct 2, 2025 · 8 filesMessage 61 · AdequateInformational 15Details
Commit message · Tobin C. Harding

Include tests files

Somehow we removed the `mod tests` line from a bunch
of modules at some stage so all tests in `tests.rs` files are not
being run.

EPIC FAIL.

Add the modules and fix the tests (lint errors and replace
`from_slice` with `from_byte_array`).

61/100 · AdequateMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit is a test-only fix. The developers accidentally removed the lines that include separate test files for several hash modules (RIPEMD160, SHA1, SHA256, SHA512), meaning those tests were not being compiled or run. The commit re-adds those test modules and makes minor updates to the tests themselves so they compile with the current API. There is no change to production code and no security vulnerability is introduced or fixed.

Security candidatefix: correct typos in PSBT serialization codeby Cameric · 9d1c9140 · Sep 27, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Cameric

fix: correct typos in PSBT serialization code

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 boundarysigning or wallet path
AI analysis · Informational 15/100

This commit fixes two typos in comments/constant names within PSBT serialization code. One renames a local constant from PSBT_SERPARATOR to PSBT_SEPARATOR (the value 0xff is unchanged), and the other fixes a grammar error in a comment. Neither change alters program behavior.

Security candidatepsbt: correct typo in consensus deserialization error messageby sent deed · f9ef8c51 · Sep 25, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · sent deed

psbt: correct typo in consensus deserialization error message

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 15/100

This commit fixes a single-letter spelling mistake in an error message string: 'deserializaton' is corrected to 'deserialization'. It does not change any program logic, parsing behavior, or security properties.

Security candidateAdd chacha20_poly1305 Criterion AEAD benchmarksby Jamil Lambert, PhD · 2e824d92 · Sep 24, 2025 · 2 filesMessage 73 · AdequateInformational 15Details
Commit message · Jamil Lambert, PhD

Add chacha20_poly1305 Criterion AEAD benchmarks

Existing benches only use the raw ChaCha20 keystream without
Poly1305/authentication overhead.

Add Criterion benchmarks to ChaCha20-Poly1305 using AEAD encrypt/decrypt
with and without AAD.

73/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
Why it was queued
access control
AI analysis · Informational 15/100

This commit only adds new performance benchmark tests for the ChaCha20-Poly1305 encryption code. It does not change any production code, fix any bug, or alter any security behavior. There is no security issue here.

Security candidatechore(psbt): fix typosby BonyHanter83 · 01f95e07 · Sep 23, 2025 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · BonyHanter83

chore(psbt): fix typos

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 15/100

This commit fixes three English grammar typos in comments and user-facing error messages within the Partially Signed Bitcoin Transaction (PSBT) module. It changes 'an non-ECDSA' to 'a non-ECDSA' and 'an ripemd160' to 'a ripemd160'. There are no code logic changes.

Security candidateMove hashes benches to Criterionby Jamil Lambert, PhD · aa021e95 · Sep 19, 2025 · 26 filesMessage 60 · AdequateInformational 15Details
Commit message · Jamil Lambert, PhD

Move hashes benches to Criterion

Move all of the bench code to individual files in hashes/benches/

Add Criterion as a dependency in Cargo.toml

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit is a routine refactoring that moves hash benchmarking code from inside the main source files into a separate benchmark suite using the Criterion library. It does not change how the hashing functions work, what data they process, or how they are exposed to users. There is no security fix or vulnerability here.

Security candidateFix function rustdoc titles to use third personby oyindamola oladapo · 6b1d663d · Sep 16, 2025 · 24 filesMessage 68 · AdequateInformational 15Details
Commit message · oyindamola oladapo

Fix function rustdoc titles to use third person

Updates function documentation to follow the project's policy of using third person in rustdoc titles (e.g., "Encodes" instead of "Encode").

Fix more function rustdoc titles to use third person

docs: add policy for third-person function documentation

docs: fix whitespace issue in policy.md

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

This commit only changes the wording of code documentation comments (rustdoc) from imperative to third-person style (e.g., 'Parse' to 'Parses'). It also adds a project policy note about this documentation style. No executable code, logic, or behavior was modified, so it has no security impact.

Security candidateUse new BIP formatby Tobin C. Harding · 5e2fbd31 · Sep 11, 2025 · 16 filesMessage 51 · ThinInformational 15Details
Commit message · Tobin C. Harding

Use new BIP format

Use the new format, four digits - rep wide including CHANGELOG, even
though it makes the link name and the PR description differ (probably).

51/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a purely cosmetic documentation and comment change. It rewrites Bitcoin Improvement Proposal (BIP) references from formats like 'BIP-32' or 'BIP 68' to a new standardized four-digit format like 'BIP-0032' or 'BIP-0068' across changelogs, examples, source code comments, and markdown docs. No program logic, code behavior, or security properties were changed.

Security candidateImprove bip linksby Tobin C. Harding · 41bc14d6 · Sep 11, 2025 · 2 filesMessage 59 · ThinInformational 15Details
Commit message · Tobin C. Harding

Improve bip links

We decided (in #4859) to use markdown links with the link at the
bottom of the docs section.

PR #4881 closed this PR, this is a follow up to fix the links.

59/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit only reformats documentation comments. It changes how web links to Bitcoin Improvement Proposals (BIPs) are written in source-code documentation, moving the actual URL to the bottom of the doc block rather than embedding it inline. No program logic, math, cryptography, or transaction handling code is modified.

Security candidatefix: use correct function name in taproot-psbt error messageby Cameric · 15f90af2 · Sep 9, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Cameric

fix: use correct function name in taproot-psbt error message

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 boundarysigning or wallet path
AI analysis · Informational 15/100

This commit fixes a typo in an example program's error message. The message previously told users to call a non-existent function; now it points to the correct function name. There is no security issue.

Security candidatefix: improve comment accuracy in ecdsa-psbt exampleby Daniel · 93b08319 · Sep 8, 2025 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · Daniel

fix: improve comment accuracy in ecdsa-psbt example

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 boundarycryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit fixes two typos in code comments within an example file. One misspelled word ('scep' instead of 'secp') and one grammar issue ('an watch-only' instead of 'a watch-only') were corrected. There are no code behavior changes, no security fixes, and no functional impact.

Security candidate2025-09-07 automated rustfmt nightlyby Fmt Bot · 975552c0 · Sep 7, 2025 · 11 filesMessage 45 · ThinInformational 15Details
Commit message · Fmt Bot

2025-09-07 automated rustfmt nightly

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit is an automated code-formatting run by the rustfmt tool. It only changes whitespace, line breaks, import order, and brace placement. There are no functional changes to the Bitcoin library, and no security implications.

Security candidateRename TxOut::value to amountby Tobin C. Harding · b620233a · Sep 2, 2025 · 18 filesMessage 76 · AdequateInformational 15Details
Commit message · Tobin C. Harding

Rename TxOut::value to amount

There is a draft naming BIP [0] and in it `amount` is favoured over
`value`. Since we are attempting to do a 1.0 stable release now is the
time to lock things like this.

Also consensus reached on this re-name in #1824

[0] https://github.com/murchandamus/bips/blob/2022-04-tx-terminology/bip-tx-terminology.mediawiki

76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a simple renaming of a field in the code from `value` to `amount` across many files. It does not change what the code does, how transactions are validated, or how bitcoins are counted. It is a cleanup change to match a proposed naming standard before the library reaches version 1.0.

Security candidateremove some pointer castsby Andrew Poelstra · 9b7e9202 · Sep 1, 2025 · 2 filesMessage 78 · AdequateInformational 18Details
Commit message · Andrew Poelstra

remove some pointer casts

I grepped the codebase for `as \*` and found a few places where we were
doing explicit pointer casts but we could've been using std methods. The
methods are safer because they don't allow changing mutability (unless
we use cast_const or cast_mut, which don't allow changing the type).

There are a few instances remaining where we cast to pointers to unsized
types. These are actually fat raw pointers and they don't have std
methods. Now they stand out because of the use of `as *`.

This commit might require a bit of thought to review, and it turns out
it has nothing to do with the MSRV bump (which gave us cast_const and
cast_mut, but actually we don't use those, thankfully..).

As a bit of trivia, though, the new cast_mut and cast_const methods were
originally proposed and implemented by our own Kixunil:

https://github.com/rust-lang/rust/pull/92657

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive path
AI analysis · Informational 18/100

This commit is a small cleanup that replaces some old-style pointer type conversions with newer, safer Rust standard-library methods. It does not fix a known security bug, but it reduces the chance that a future code change accidentally introduces a dangerous pointer mistake. The actual behavior of the program should be unchanged.

Security candidateclippy: fix new clippy linksby Andrew Poelstra · 5a04527f · Sep 1, 2025 · 7 filesMessage 68 · AdequateInformational 11Details
Commit message · Andrew Poelstra

clippy: fix new clippy links

There is one `is_some_and` usage, but everything else is about using the
new `div_ceil` method. I didn't look closely at any of these but there were
a lot of them and I'll bet at least one was actually a panic bug that's
fixed now.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
AI analysis · Informational 11/100

This commit is a routine code cleanup triggered by new warnings from the Rust linter (Clippy). It replaces hand-written 'round up to next multiple' calculations with Rust's newer built-in `div_ceil` method, and swaps one `map_or(false, ...)` for `is_some_and(...)`. The commit message itself jokes that at least one of these might have been a panic bug, but the actual diff shows no change in behavior or fix for a known crash. There is no disclosed security issue and no evidence this patch addresses an active vulnerability.

Security candidatedocs: fix typosby VolodymyrBg · 045f8f9b · Aug 31, 2025 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · VolodymyrBg

docs: fix typos

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathdocumentation-only discount
AI analysis · Informational 15/100

This commit fixes two spelling mistakes in a documentation file (`docs/crypto.md`). It changes 'cryto' to 'crypto' and 'PriviateKey' to 'PrivateKey'. There are no code changes, no functional changes, and no security implications.

Security candidaterename GenericScript to Scriptby Andrew Poelstra · f2cadf65 · Aug 22, 2025 · 22 filesMessage 58 · ThinInformational 15Details
Commit message · Andrew Poelstra

rename GenericScript to Script

Now that Script/ScriptBuf are gone we can re-claim the names for the
generic versions. This means that users of the library, after this PR,
*should* have code that largely continues to work. They will need to
replace Script/ScriptBuf with a specific tagged script type in

* function signatures
* places where type inference can't figure it out (which should be
fairly rare, since all the library methods here use specific tags
now, except a couple sighash ones)

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
Why it was queued
signing boundarycryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a straightforward internal rename in the rust-bitcoin library. It changes the names 'GenericScript' and 'GenericScriptBuf' to the simpler 'Script' and 'ScriptBuf' across many files. There are no changes to how the code behaves, no bug fixes, and no security-related changes.

Security candidateprimitives: delete Script and ScriptSigby Andrew Poelstra · 49045e2c · Aug 22, 2025 · 19 filesMessage 98 · StrongInformational 15Details
Commit message · Andrew Poelstra

primitives: delete Script and ScriptSig

This commit confirms that there is not a single untouched script instance
across the project; every one has been converted to a tagged script.

This triggers a number of doc changes which should have gone into previous
commits. I apologize for that. But it's a PITA to go back and locate exactly
which commit each doc change was supposed to go into.

In bitcoin/src/network/params.rs I changed the signet example to use a
WitnessScript. I wasn't sure if this script is interpreted as a witness
script or a scriptpubkey on Signet itself so I guessed.

In p2p/src/message.rs there is a "script" that is actually just a blob
of raw bytes (that happens to be a script) used in a "test" of the bloom
filter messages. See https://github.com/rust-bitcoin/rust-bitcoin/pull/580
where this was added for discussion about script vs bytes.

(BTW why did I let a bloom filtering PR into this project? This whole
system was a bad idea and a DoS vector. Is it even used?)

98/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a routine internal cleanup in the rust-bitcoin library. It removes the old untyped Script and ScriptBuf aliases and finishes switching all remaining code to use specific tagged script types (such as ScriptPubKey, ScriptSig, WitnessScript, etc.). There is no security vulnerability here; it is purely a refactoring change to make type usage more precise.