RB
← All projectsRust Bitcoin

rust-bitcoin

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

BitcoinCryptographic librariesNormal
Repository coverage

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

461security candidates452second-pass queue2076AI analyses
183commits · 30 days
396commits · 60 days
1293commits · 180 days
2063commits · 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.

64/100 average clarity
318Strong · 80–100
1058Adequate · 60–79
557Thin · 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 Bagot643192641068
Tobin C. Harding41366410063
jrakibi944994068
Andrew Poelstra582155077
Nick Johnson18920189059
Jamil Lambert, PhD11418114061
Fmt Bot311431045
Trevor Arjeski111111069
Shing Him Ng31731056
Ismail Daif22622050
satsfy (Renato Britto)17617066
Martin Habovstiak27527069
Analysis record

Published AI watches

Last scanned 10 minutes ago

Informational 20 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6678: units: Add `Weight::to_vb_*` functions, deprecating `to_vbytes_*`

This is a routine API cleanup in a Rust Bitcoin library. It adds new method names (to_vb_floor, to_vb_ceil) for converting transaction 'weight' to 'virtual bytes' and marks the old names (to_vbytes_floor, to_vbytes_ceil) as deprecated. The…

7f614781by Andrew Poelstra+30−86 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6597: Release tracking PR: `crypto 0.3.0`

This commit is a routine release-tracking merge. It only bumps version numbers (bitcoin-crypto to 0.3.0 and bitcoin-primitives to 0.103.1), updates dependency version requirements, refreshes lock files, and adds changelog entries. There ar…

1fddd49eby Andrew Poelstra+34−1210 files
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Update API files

This commit only updates generated API listing files (text snapshots of public functions) to reflect a newly added public function, `to_consensus_u32`, on the `CompactTarget` type. It does not change any source code, logic, or behavior, an…

a75c53c8by Mitchell Bagot+6−03 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6675: units: Remove unnecessary track_caller

This commit removes two Rust compiler hints (`#[track_caller]`) from helper functions that simply return a value or call a user-provided fallback. These functions never panic, so the hints were unnecessary and had no security effect. The c…

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

Merge rust-bitcoin/rust-bitcoin#6644: primitives: Add serde impls for `WitnessVersion`

This commit adds standard serialization/deserialization support for the WitnessVersion type when the optional serde feature is enabled. It is a routine feature addition with no security relevance visible in the code or commit message.

4981faa7by Andrew Poelstra+50−02 files
No security note in commit
Informational 15 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6671: units: reword docs from height to count in relative locktime

This commit only changes documentation comments and variable names in the rust-bitcoin library. It rewords references to 'block height' as 'block count' for relative locktime, because a relative locktime measures elapsed blocks since a coi…

6ea4ff92by Andrew Poelstra+20−172 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6670: ci: fix labeller permissions

This is a routine GitHub Actions workflow fix. The change gives the automated PR labeler workflow permission to download artifacts and explicitly tells the GitHub CLI which repository to act on. It does not change the Bitcoin library code,…

CI workflow permission fixNo source code changesNo cryptographic or consensus changes
276e0a61by Andrew Poelstra+5−01 file
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6657: Release tracking PR: `base58ck 0.5.0`

This commit is a routine version bump for the base58ck crate from 0.4.0 to 0.5.0. It only updates version numbers in package manifests, lock files, and adds a changelog entry. There are no code changes and no security relevance.

9deb5de1by Andrew Poelstra+22−168 files
No security note in commit
Informational 21 AI analysisMessage 100 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6440: base58: Introduce `decode_check_to_array` for alloc-less decoding

This commit is a routine feature addition to the rust-bitcoin base58 crate. It adds a new no-allocator function to decode short base58-check strings into fixed-size byte arrays, and renames the existing error type while keeping a deprecate…

No security-relevant bug fix is described in the commit message or diff.New decoding path uses a fixed 128-byte scratch buffer (`ArrayVec`) and rejects oversized inputs.Checksum verification and invalid-character handling are preserved from the existing alloc implementation.
c5fd1832by Andrew Poelstra+330−775 files
No security note in commit
Informational 15 AI analysisMessage 93 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6646: hashes: add several methods to `Midstate` and release 1.2.0

This commit is a routine feature release for the bitcoin_hashes crate. It adds new public methods and a constant to the SHA-256 Midstate type so developers can compute SHA-256 midstates in const contexts. There is no indication of a securi…

0f68fcb3by Andrew Poelstra+157−4210 files
No security note in commit
Informational 15 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

units: reword docs to block count in relative locktime

This commit only rewords documentation comments and variable names in the codebase. It changes references from 'block height' to 'block count' for relative lock times, which is a terminology correction with no functional code changes. Ther…

8867fe2eby satsfy (Renato Britto)+20−172 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6667: Make the `WitnessesEncoder` private

This commit makes a small internal helper type called WitnessesEncoder private. It was previously exported as public API but is only used inside the transaction encoder. The change removes it from the public API surface and moves the code …

07d91f7fby Andrew Poelstra+54−1324 files
No security note in commit
Informational 12 AI analysisMessage 75 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

ci: fix labeller permissions

This commit adjusts a GitHub Actions workflow that automatically labels pull requests based on CI results. It adds a built-in repository token, tells the artifact download step to merge single-file artifacts, and explicitly sets the reposi…

Workflow-only change with no library code modificationsUses the default GITHUB_TOKEN rather than a custom secretRuns in workflow_run context, which already has elevated repository access by design
715f2bd6by Nick Johnson+5−01 file
No security note in commit
Informational 19 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6661: units: Remove `From<u16>` from `NumberOfBlocks`

This is a routine API cleanup, not a security fix. The developers removed a shortcut that let programmers create a 'number of blocks' value directly from any u16 number, replacing it with an existing named constructor called from_height. T…

ed5f1b68by Andrew Poelstra+18−358 files
No security note in commit
Informational 15 AI analysisMessage 91 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6668: Scrub the transaction encoding logic

This commit is a pure code reorganization (refactor) in the rust-bitcoin library. It moves transaction encoding and decoding definitions around within a single file so the code follows the project's preferred layout. No logic, behavior, or…

c5588ba5by Andrew Poelstra+57−571 file
No security note in commit
Informational 18 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6662: build(deps): bump actions/checkout from 6.0.2 to 6.0.3

This commit is a routine update to the GitHub Actions checkout tool used by the project's automated workflows. It changes the pinned version from 6.0.2 to 6.0.3 across many workflow files. The newer version fixes minor bugs related to SHA-…

Dependency bump of actions/checkout to a patch releaseUpstream fixes for SHA-256 repository checkout and merge commit regexAll affected workflows already disable persisted credentials
f7d364cdby Andrew Poelstra+29−2915 files
No security note in commit
Informational 15 AI analysisMessage 96 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Merge rust-bitcoin/rust-bitcoin#6663: build(deps): bump taiki-e/install-action from 2.79.12 to 2.81.4

This is a routine Dependabot update that bumps the version of a third-party GitHub Action used only in automated testing workflows. The change does not touch the project's actual Bitcoin library code, and there is no indication it fixes or…

5c92c0b0by Andrew Poelstra+2−22 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Update the API text files

This commit only updates two generated API text files that list the public surface of the Rust crate. It removes entries for a `WitnessesEncoder` type, reflecting that the type is no longer part of the public API. There is no source code c…

9c391145by Tobin C. Harding+0−782 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Scrub the transaction encoding logic

This commit is a pure code reorganization: it moves existing transaction encoding and decoding definitions around within a single file so they follow the project's preferred layout. No logic was changed, no security bug was fixed, and no n…

80dcef15by Tobin C. Harding+57−571 file
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Make the WitnessesEncoder private

This commit simply hides an internal helper type called WitnessesEncoder from public view. It is a routine API-cleanup change with no security relevance visible in the code or commit message.

b37accc3by Tobin C. Harding+54−542 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.

Lower-priorityconsensus_encoding: Bump version to 1.0.0-rc.2by Tobin C. Harding · 4f500b87 · Nov 27, 2025 · 6 filesMessage 68 · AdequateInformational 15Details
Commit message · Tobin C. Harding

consensus_encoding: Bump version to 1.0.0-rc.2

Do another RC release, no changelog additions required IMO.

Includes:

- Added `reserve` method
- Used `Self` instead of `Foo`
- Made a few constructors const
- Removed `hashes` dep

Bump the version, update to use this RC version in crates that depend
on `encoding`, and update the lock files.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is a routine version bump for a Rust package called `bitcoin-consensus-encoding`, moving it from one release candidate (1.0.0-rc.1) to the next (1.0.0-rc.2). It only updates version numbers in package manifests and lock files. There are no code changes, no bug fixes, and no security-related changes visible in the diff.

AI review queuedAdd decode test for reserve capacityby Jamil Lambert, PhD · 11d3f375 · Nov 26, 2025 · 1 fileMessage 78 · AdequateInformational 15Details
Commit message · Jamil Lambert, PhD

Add decode test for reserve capacity

There are new mutants in the reserve function for both VecDecoder and
ByteVecDecoder.

Add two new tests to check the functionality of reserve and kill the
mutants.

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

This commit only adds two new unit tests to verify that two decoder types allocate memory in correctly-sized batches. It does not change any production code, fix a bug, or alter behavior. There is no security-relevant change.

AI review queuedunits: Replace manual ceil division with div_ceilby Mitchell Bagot · a9f54c64 · Nov 26, 2025 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

units: Replace manual ceil division with div_ceil

Since the bump to MSRV 1.74, we now have access to div_ceil for ceiled
division of integer types. There are various places in units that we
manually implement ceiling division that can now be replaced by calls
to div_ceil.

Convert div_by_weight_ceil, div_by_fee_rate_ceil and mul_by_weight
to use div_ceil in place of manual ceiling division.

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

This commit is a routine code cleanup in the rust-bitcoin library. It replaces hand-written ceiling-division logic with Rust's newer built-in `div_ceil` function. The math result is intended to be identical, and there is no indication of a security bug being fixed.

Lower-priorityAdd in diff cargo-mutants CI workflowby user · 11228618 · Nov 25, 2025 · 2 filesMessage 78 · AdequateInformational 15Details
Commit message · user

Add in diff cargo-mutants CI workflow

This adds a new CI workflow in the rust.yml workflow file to be run
alongside tests on PRs and pushes.

This CI utilizes the `--in-diff` flag on cargo-mutants to check for
mutations in the source code within the PR diff.

This does not replace the current weekly cargo-mutants CI as changes
outside of the source code, whether through a change of a test or some
other change not explicitly in the rust source the diff mutation will
not catch.

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit adds a new automated testing step to the project's GitHub Actions CI pipeline. It runs a tool called cargo-mutants on the code changed in a pull request to help detect whether tests are thorough enough. There is no change to the actual Bitcoin library code, no new feature, and no security fix or vulnerability.

Security candidatedocs: fix copy-paste errors in documentation commentsby Herobrine · 9b06f2d5 · Nov 25, 2025 · 2 filesMessage 62 · AdequateInformational 15Details
Commit message · Herobrine

docs: fix copy-paste errors in documentation comments

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

This commit fixes two typos in documentation comments. One incorrectly called a private key type an 'extended public key,' and another incorrectly referenced a different struct name in a conversion function's doc comment. These are purely cosmetic comment corrections and do not change any executable code.

Security candidateRemove wildcard Error importsby Jamil Lambert, PhD · 5890ed91 · Nov 24, 2025 · 21 filesMessage 35 · OpaqueInformational 15Details
Commit message · Jamil Lambert, PhD

Remove wildcard Error imports

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a large but purely cosmetic code cleanup in the Rust Bitcoin library. It removes wildcard imports of error types (like `use Error::*`) and replaces them with explicit `Self::Variant` or fully-qualified names. The behavior of the code does not change; it only makes the source code easier to read and maintain.

Security candidateRun cargo formatby Jamil Lambert, PhD · 4985e208 · Nov 24, 2025 · 9 filesMessage 43 · ThinInformational 15Details
Commit message · Jamil Lambert, PhD

Run cargo format

Only formatted changes in the previous commit. There are still a lot
of unrealated lines of code that need formatting.

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

This commit only reformats source code using the Rust formatter (cargo fmt). It changes whitespace, line breaks, and import grouping but does not alter program logic, behavior, or any security checks. There is no security issue.

Security candidateecdsa: Add to/from_signature, len, and iterby Tobin C. Harding · a098184e · Nov 23, 2025 · 2 filesMessage 68 · AdequateInformational 15Details
Commit message · Tobin C. Harding

ecdsa: Add to/from_signature, len, and iter

To the `ecdsa` type add `to_signature`, `from_signature`, `len`, and
`iter` methods.

Change the implementation of `IntoIter` for a sig reference so we can
add `iter` method as done in `taproot`.

While we are at it fix up the docs and layout all the methods in the
same order for both types (`ecdsa` and `taproot`).

This unifies the APIs of the two types `ecdsa::SerializedSignature`
and `taproot::SerializedSignature`.

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

This commit is a routine API cleanup for the rust-bitcoin library. It adds a few helper methods (to_signature, from_signature, len, iter) to the ECDSA serialized-signature type and reorders existing methods in the Taproot serialized-signature type so both types look the same. There is no security fix or behavior change that would affect users' funds or data.

Security candidateImport core typesby Tobin C. Harding · bbc57722 · Nov 23, 2025 · 2 filesMessage 43 · ThinInformational 15Details
Commit message · Tobin C. Harding

Import core types

Done in an effort to make the `ecdas` and `taproot` modules uniform.

Import and do so in both modules.

43/100 · ThinMessage clarity
✓ Subject identifies a change✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit is a minor code cleanup. It imports two common Rust traits (`Borrow` and `Deref`) directly at the top of two source files, instead of referring to them with their full `core::...` module path inside the code. There is no functional change, no bug fix, and no security relevance.

Security candidateMove/add From<PushBytes> for SerializedSignatureby Tobin C. Harding · 39a50dd9 · Nov 23, 2025 · 2 filesMessage 60 · AdequateInformational 15Details
Commit message · Tobin C. Harding

Move/add From<PushBytes> for SerializedSignature

Move the `ecdsa` impl to `script::push_bytes` and add one for the
`taproot` type.

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

This commit is a small internal code reorganization. It moves an existing conversion helper (so a serialized ECDSA signature can be viewed as a script 'push bytes' object) to a more central location, and adds an equivalent helper for Taproot signatures. There is no security fix or behavior change visible to users.

Security candidateOnly return valid data in sig sliceby Tobin C. Harding · c5f08f53 · Nov 23, 2025 · 2 filesMessage 68 · AdequateLow 41Details
Commit message · Tobin C. Harding

Only return valid data in sig slice

The `SerializedSignature` types have an internal buffer and we track
the length of valid data in the buffer. However in `AsRef` and friends
we are returning a slice of the whole buffer. This is confusing and a
potential footgun (eg `sig.as_ref()l.en()` isn't be meaningful).

Make the impls that get a byte slice reference only return valid data.
Done for both `ecdsa` and `taproot` type.

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

This commit fixes a bug in how serialized Bitcoin signatures expose their byte content. Previously, code asking for the signature bytes could receive the entire internal buffer, including leftover or uninitialized bytes beyond the actual signature length. Now only the valid, used portion is returned. This prevents accidental misuse where someone might hash, encode, or transmit extra garbage bytes as if they were part of the signature.

Security candidateRemove mutable impls from ecdsa SerializedSignatureby Tobin C. Harding · 8eb36454 · Nov 23, 2025 · 1 fileMessage 90 · StrongInformational 20Details
Commit message · Tobin C. Harding

Remove mutable impls from ecdsa SerializedSignature

We do not want users to be able to arbitrarily mutate a serialized
signature because doing so is meaningless. Also the `taproot` type
does not support mutatable references.

90/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarycryptography-sensitive path
AI analysis · Informational 20/100

This commit removes the ability for outside code to directly modify the raw bytes of an ECDSA serialized signature object in the rust-bitcoin library. Previously, callers could obtain a mutable reference to the internal byte buffer and change it, which the developers consider meaningless because a signature is supposed to be a fixed cryptographic result. The change makes the type consistent with the taproot signature type, which already did not allow mutation. It is a hardening/correctness change rather than a fix for a known exploitable vulnerability.

Security candidateMove ecdsa reference implsby Tobin C. Harding · ff0841ae · Nov 23, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Tobin C. Harding

Move ecdsa reference impls

Move the impls so they are in the same order as in the `taproot`
module.

Code move only.

50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit simply reorders existing code in a Rust source file. It moves two blocks of code (implementations of Deref and DerefMut for SerializedSignature) to a different location within the same file so the order matches another module. No code behavior is changed, no bugs are fixed, and no security issue is introduced.

Security candidateAdd Lower/UperHex impls for taproot::SerializedSignatureby Tobin C. Harding · a2a69cef · Nov 23, 2025 · 1 fileMessage 65 · AdequateInformational 16Details
Commit message · Tobin C. Harding

Add Lower/UperHex impls for taproot::SerializedSignature

Done in an effort to make the `ecdsa` and `taproot`
`SerializedSignature`s have the same API.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing boundarycryptography-sensitive path
AI analysis · Informational 16/100

This commit adds two new ways to display a taproot serialized signature as hexadecimal text (lowercase and uppercase). It is a pure API-consistency change to make taproot signatures match the existing ecdsa signature API. There is no security issue visible in the diff.

Security candidateAdd equality impls to ecdsa::SerializedSignatureby Tobin C. Harding · e903d12d · Nov 23, 2025 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Tobin C. Harding

Add equality impls to ecdsa::SerializedSignature

Done as part of an effort to make the `SerializedSignature` types in
`ecdsa` and `taproot` have the same APIs.

Copy the impls from the `taproot` type.

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

This commit adds standard Rust comparison traits (equality and ordering) to a type that wraps a raw ECDSA signature byte array. It simply lets programmers compare these signature objects more conveniently; it does not change signature validation or introduce a security vulnerability.

Security candidateMove ecdsa::SerializedSignature implsby Tobin C. Harding · fa57e889 · Nov 23, 2025 · 2 filesMessage 58 · ThinInformational 15Details
Commit message · Tobin C. Harding

Move ecdsa::SerializedSignature impls

In an effort to make the `ecdsa` and `taproot` modules look the same
so it is easier to tell exactly where they differ move some
`SelializedSignature` impls. Elect to use the layout in the `taproot`
one.

Except in `taproot` move the `Eq` impl to be grouped with the
`PartialEq` impls.

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

This commit is purely a code cleanup: it moves some trait implementation blocks for the ECDSA SerializedSignature type to a different location in the same file and reorders the Taproot Eq impl to sit next to PartialEq. No logic, behavior, or signatures changed.

Security candidateMove the SerializedSignature to cryto moduleby Tobin C. Harding · df89db76 · Nov 23, 2025 · 3 filesMessage 88 · StrongInformational 18Details
Commit message · Tobin C. Harding

Move the SerializedSignature to cryto module

There was no good reason for putting it where it is, at least from
what I found on the original PR

> I don't remember exactly but I think I thought it wouldn't work in
> the other taproot module. I have no idea now if it's actually an
> issue

ref: https://github.com/rust-bitcoin/rust-bitcoin/pull/2156#issuecomment-1790295634

Anyways, in order to split the `crypto` module out into a separate
crate it makes sense to have the `SerializedSignature` as well.

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

This commit is a straightforward internal code reorganization. It moves the SerializedSignature type from one module to another within the same crate, without changing its behavior or public API. There is no security fix or vulnerability here.

Security candidatecrypto: Re-order taproot::Signature methodsby Tobin C. Harding · b906245b · Nov 23, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Tobin C. Harding

crypto: Re-order taproot::Signature methods

The `taproot::Signature` and `ecdsa::Signature` are similar, lets make
the code look similar so its more clear exactly where the APIs differ.

Move the `taproot` code to mirror the `ecdsa` code.

Code move only, no logic change.

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

This commit simply reorders two methods inside the same Rust source file so that the taproot signature code matches the layout of the ECDSA signature code. No code behavior, logic, or public API changed. It is a cosmetic cleanup only.

Security candidatecrypto: Fix taproot module docsby Tobin C. Harding · dba9d487 · Nov 23, 2025 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Tobin C. Harding

crypto: Fix taproot module docs

The docs are just plain wrong, this module contains `Signature` only,
nothing to do with keys.

65/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarycryptography-sensitive path
AI analysis · Informational 15/100

This commit only fixes a documentation comment in the source code. It changes the module description from incorrectly saying it contains Taproot keys to correctly saying it contains Taproot signatures. There is no code change and no security impact.

Lower-priorityio: Add decoding functionsby Tobin C. Harding · 0cab47cf · Nov 23, 2025 · 2 filesMessage 58 · ThinInformational 12Details
Commit message · Tobin C. Harding

io: Add decoding functions

Copy the standalone decoding functions from `consensus_encoding` for
decoding from a reader.

Note that docs mention a couple of std types still.

58/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context
AI analysis · Informational 12/100

This commit adds new helper functions for decoding data from a reader in the rust-bitcoin `io` crate. It is a feature addition that copies existing decoding logic from another module and includes tests. There is no indication in the commit or supplied references that this fixes a security vulnerability.

AI review queuedSkip formatting byte arraysby Tobin C. Harding · 1f806395 · Nov 23, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · Tobin C. Harding

Skip formatting byte arrays

8 byte column are easier to read.

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 only adds formatting hints to test code so that a code formatter (rustfmt) leaves byte arrays arranged in tidy 8-byte columns. It does not change any behavior, logic, or security-sensitive code.

Lower-prioritychore: fix incorrect reference in commentsby Snezhkko · 61ade916 · Nov 23, 2025 · 1 fileMessage 57 · ThinInformational 15Details
Commit message · Snezhkko

chore: fix incorrect reference in comments

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only corrects two documentation comments that pointed to the wrong module name. It changes no executable code, so it cannot affect program behavior or security.

Lower-priorityAutomated update to Github CI to cargo-semver-checks version-0.45.0by Update cargo-semver-checks Bot · c6e3b5fd · Nov 22, 2025 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Update cargo-semver-checks Bot

Automated update to Github CI to cargo-semver-checks version-0.45.0

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This commit simply bumps the version number of a CI linting tool (cargo-semver-checks) used in GitHub Actions from 0.44.0 to 0.45.0. It does not change any library code, dependencies shipped to users, or runtime behavior of the rust-bitcoin crate. There is no security relevance visible in the commit.

AI review queuedfuzz: Update generate_files.sh for current targetsby Mitchell Bagot · b7c2e084 · Nov 21, 2025 · 3 filesMessage 83 · StrongInformational 15Details
Commit message · Mitchell Bagot

fuzz: Update generate_files.sh for current targets

In a2c809b, several new fuzz targets were introduced for
consensus_encoding. The fuzz crate's Cargo.toml was updated, but the
corresponding changes to generate-files.sh were not made. Since the
fuzz Cargo.toml is generated by generate-files.sh, it should be kept
up to date with any new changes.

Add consensus_encoding dependency and new Clippy lints to
generate-files.sh, and update the Cargo.toml and daily fuzz files
by running generate-files.sh.

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

This commit is a routine maintenance update to the project's fuzz-testing infrastructure. It adds newly-created fuzz test targets to a script that auto-generates configuration files, and refreshes the generated files to match. There is no change to the actual Bitcoin library code that users rely on, and no security fix or vulnerability is present.

Security candidateDrop rand-std feature flagby Nick Johnson · 85fccd64 · Nov 21, 2025 · 11 filesMessage 68 · AdequateInformational 18Details
Commit message · Nick Johnson

Drop rand-std feature flag

With underlying secp256k1 updates, this flag is essentially a duplicate
with the "rand" feature flag. Dropping this one for user clarity.

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

This commit removes a redundant feature flag called 'rand-std' from the rust-bitcoin library and replaces its use with the combination of 'rand' and 'std'. It is a cleanup change to make feature selection clearer for users. There is no security vulnerability or bug fix in the code itself.