RB
← All projectsRust Bitcoin

rust-bitcoin

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

BitcoinCryptographic librariesNormal
Repository coverage

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

459security candidates448second-pass queue2048AI analyses
183commits · 30 days
400commits · 60 days
1283commits · 180 days
2055commits · 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
311Strong · 80–100
1054Adequate · 60–79
555Thin · 40–59
150Opaque · 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 Bagot640192640068
Tobin C. Harding40965394063
jrakibi944994068
Nick Johnson18920188059
Andrew Poelstra512051075
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 23 minutes ago

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
Informational 15 AI analysisMessage 45 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

release bitcoin_hashes 1.2.0

This commit is a routine version bump for the bitcoin_hashes library from version 1.1.0 to 1.2.0. It only updates lock files, the package version number, and the changelog. There is no code change and no security relevance visible in the c…

8899dfd2by Andrew Poelstra+27−224 files
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.1.0 to 8.2.0

This is a routine automated update by Dependabot that changes the pinned version of a GitHub Action used to install the 'uv' Python tool in two workflow files. The new commit hash corresponds to the legitimate 8.2.0 release of astral-sh/se…

1c438632by dependabot[bot]+2−22 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 automated update by Dependabot that changes the pinned version of a GitHub-provided security scanning helper used in a workflow. It does not modify the project's actual Bitcoin library code, its cryptographic logic, or an…

5293bee4by 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 taiki-e/install-action from 2.79.12 to 2.81.4

This is a routine Dependabot update that bumps a GitHub Actions helper used in automated testing workflows from version 2.79.12 to 2.81.4. It only changes which version of the action is invoked during CI runs; it does not modify the Rust B…

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

build(deps): bump actions/checkout from 6.0.2 to 6.0.3

This is a routine automated update by Dependabot that bumps the GitHub Actions 'actions/checkout' dependency from version 6.0.2 to 6.0.3 across all project workflow files. It only changes pinned commit hashes and version comments for the a…

Routine patch-level dependency bumpNo changes to permissions, inputs, or workflow logicpersist-credentials: false already present on all checkout steps
ae935fadby dependabot[bot]+29−2915 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-priorityp2p: add BlockLocator newtype with logarithmic buildby Peter Zafonte · 0f099202 · Apr 1, 2026 · 2 filesMessage 73 · AdequateInformational 21Details
Commit message · Peter Zafonte

p2p: add BlockLocator newtype with logarithmic build

Replace the bare Vec<BlockHash> in GetBlocksMessage and GetHeadersMessage
with a BlockLocator newtype. Add BlockLocator::build, which constructs a
logarithmic locator based on Bitcoin Core's LocatorEntries() via a
caller-supplied get_ancestor closure, keeping chain state out of this
crate's imports. Cap the locator at MAX_LOCATOR_HASHES (101), matching
Bitcoin Core's MAX_LOCATOR_SZ.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 21/100

This commit refactors how Bitcoin peer-to-peer messages request blocks and headers. It replaces a plain list of block hashes with a dedicated 'BlockLocator' type and adds a helper to build locators in a logarithmic pattern (like Bitcoin Core). There is no direct security fix here; it is a structural improvement that makes the library behave more like Bitcoin Core and could indirectly reduce network/DoS risks by capping locator size and producing better locators.

Security candidateReplace uses of secp XOnlyPublicKey with parity accessby Mitchell Bagot · 31d01001 · Apr 1, 2026 · 2 filesMessage 73 · AdequateInformational 13Details
Commit message · Mitchell Bagot

Replace uses of secp XOnlyPublicKey with parity access

Now that the bitcoin XOnlyPublicKey has parity included, there are some
uses of the secp type that can be replaced by the bitcoin type.

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

This is a small internal cleanup change in the rust-bitcoin library. It swaps some low-level uses of one public-key type for another equivalent type that now carries extra parity information. There is no indication this fixes a security bug or changes behavior visible to users in a risky way.

Security candidateChange Witness::p2wpkh to take bitcoin PublicKeyby Mitchell Bagot · adda3936 · Apr 1, 2026 · 3 filesMessage 68 · AdequateInformational 18Details
Commit message · Mitchell Bagot

Change Witness::p2wpkh to take bitcoin PublicKey

The p2wpkh function on Witness takes a secp public key. This ultimately
causes various other places to need to convert from the bitcoin type
to the secp type needlessly.

Change Witness::p2wpkh to take bitcoin::PublicKey and adjust call sites
accordingly.

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 is a routine internal API cleanup in the rust-bitcoin library. It changes one function so it accepts the project's own public-key type instead of a lower-level secp256k1 public-key type, removing unnecessary conversions at call sites. There is no indication this fixes a security bug or introduces a vulnerability.

Security candidatehashes: Split cfg(all(...)) into stacked attributesby Ismail Daif · 845ba44f · Mar 31, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

hashes: Split cfg(all(...)) into stacked attributes

50/100 · ThinMessage clarity
✓ Specific, 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 is a purely cosmetic refactoring of Rust conditional-compilation attributes. It splits combined `#[cfg(all(...))]` expressions into two stacked `#[cfg(...)]` attributes, which is a supported Rust syntax and does not change which code gets compiled under which conditions. There is no security relevance.

AI review queuedprimitives: Split cfg(all(...)) into stacked attributesby Ismail Daif · b24494dd · Mar 31, 2026 · 5 filesMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

primitives: Split cfg(all(...)) into stacked attributes

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

This commit is a purely stylistic change in the Rust Bitcoin library. It rewrites conditional compilation attributes (the Rust equivalent of #ifdef feature flags) from a single combined form to a stacked form. For example, #[cfg(all(feature = "hex", feature = "alloc"))] becomes two separate #[cfg(...)] lines. This has no effect on which code is compiled or how the library behaves, and it does not fix or introduce any security issue.

Lower-priorityunits: Split cfg(all(...)) into stacked attributesby Ismail Daif · d3a48a88 · Mar 31, 2026 · 6 filesMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

units: Split cfg(all(...)) into stacked attributes

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a purely stylistic cleanup in the Rust Bitcoin library. It changes how the code tells the compiler which optional features must be enabled for certain pieces of code to compile, switching from combined conditions like `#[cfg(all(feature = "std", feature = "encoding"))]` to stacked single conditions like `#[cfg(feature = "std")]` followed by `#[cfg(feature = "encoding")]`. In Rust, these two forms mean the same thing, so this does not change behavior, fix a bug, or address a security issue.

Lower-priorityAdd attribute stacking style to policy.mdby Ismail Daif · 87f076b8 · Mar 31, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Ismail Daif

Add attribute stacking style to policy.md

45/100 · ThinMessage clarity
✓ 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 only adds a coding-style rule to the project's documentation. It tells developers to prefer stacking multiple #[cfg] attributes instead of combining them with #[cfg(all(...))]. No code behavior changed, and there is no security impact.

Lower-priorityio: Split cfg(all(...)) into stacked attributesby Ismail Daif · 7dc2ce53 · Mar 31, 2026 · 2 filesMessage 45 · ThinInformational 15Details
Commit message · Ismail Daif

io: Split cfg(all(...)) into stacked attributes

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a purely cosmetic change in how Rust conditional compilation rules are written. It splits combined conditions like `cfg(all(A, B))` into two separate stacked `#[cfg(A)]` and `#[cfg(B)]` lines. The actual conditions and the resulting compiled code are unchanged, so there is no security or functional effect.

Lower-priorityconsensus_encoding: Split cfg(all(...)) into stacked attributesby Ismail Daif · 250e8257 · Mar 31, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

consensus_encoding: Split cfg(all(...)) into stacked attributes

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a minor Rust code cleanup. It changes one line that previously required both the 'std' and 'alloc' features together into two separate feature checks stacked on top of each other. There is no functional or security change; the compiled result is the same.

Lower-prioritybase58: Split cfg(all(...)) into stacked attributesby Ismail Daif · 17102150 · Mar 31, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

base58: Split cfg(all(...)) into stacked attributes

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100

This commit is a minor code-style change in the Rust Bitcoin library. It rewrites a single conditional compilation attribute from one combined form into two stacked forms. There is no functional change, no bug fix, and no security relevance.

Security candidatebitcoin: Split cfg(all(...)) into stacked attributesby Ismail Daif · d57e8346 · Mar 31, 2026 · 9 filesMessage 50 · ThinInformational 15Details
Commit message · Ismail Daif

bitcoin: Split cfg(all(...)) into stacked attributes

50/100 · ThinMessage clarity
✓ Specific, 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 a code-style refactor. It replaces single-line Rust conditional annotations like #[cfg(all(A, B))] with stacked separate lines like #[cfg(A)] #[cfg(B)]. The behavior is identical; no security issue is introduced or fixed.

Security candidateMove transparent_newtype to use include!by Mitchell Bagot · ac8f61f8 · Mar 31, 2026 · 17 filesMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

Move transparent_newtype to use include!

The transparent_newtype macro from internals is one of many cross-crate
macros which we'd like to remove over time.

Copy transparent_newtype macro to include directory. Replace all uses
of internals::transparent_newtype with include! calls and direct usage
of the macro.

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 is a routine internal refactoring of the rust-bitcoin project. It moves a helper macro called transparent_newtype from one internal crate to a shared include file, then updates all crates to use the shared version. There is no change to user-facing behavior, no bug fix, and no security relevance.

Security candidatehashes: Adjust hash newtype doc commentsby Mitchell Bagot · 7064e44d · Mar 31, 2026 · 4 filesMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

hashes: Adjust hash newtype doc comments

In hashes, a handful of the transparent_newtype invocations for hashes
use doc comments that are missing backticks around names or are
generally unclean. These should be normalised to suit typical style.

Adjust doc comments on sha256t, sha256d, muhash and siphash hash
newtypes.

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 only fixes the wording and formatting of documentation comments in four source files. It adds backticks around hash function names like `SHA256d` and `SipHash24` so the generated documentation looks consistent. No code behavior changes.

Lower-priorityci: update weekly fmt job to cargo-rbmtby Nick Johnson · ccf2e220 · Mar 31, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Nick Johnson

ci: update weekly fmt job to cargo-rbmt

This locks in the compiler version for the format job.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This is a routine GitHub Actions CI maintenance change. It swaps the weekly automated code-formatting job from using a floating nightly Rust toolchain to a custom project tool called cargo-rbmt, which pins the compiler version. There is no user-facing code change and no security-relevant behavior.

AI review queuedci: switch to rbmt api commandby Nick Johnson · 752c98ee · Mar 31, 2026 · 36 filesMessage 72 · AdequateInformational 15Details
Commit message · Nick Johnson

ci: switch to rbmt api command

API files have been moved into the package directories themselves instead
of the shared root level api/ directory.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
second-pass: unusually broad change
AI analysis · Informational 15/100

This commit is purely a housekeeping change to the project's continuous integration (CI) setup. It moves the files that record the library's public API surface from a shared top-level directory into each individual crate's own directory, and switches the CI workflow to use a different command to check those API files. There is no change to the actual Bitcoin library code that users run, and no security impact.

Lower-priorityci: remove legacy toolchain file usageby Nick Johnson · 9fb89c50 · Mar 31, 2026 · 2 filesMessage 80 · StrongInformational 15Details
Commit message · Nick Johnson

ci: remove legacy toolchain file usage

The legacy toolchain version pins have been migrated to the root
manifest Cargo.toml. Clean up any tooling using the old locations.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100

This commit is purely a cleanup of developer tooling. It removes old references to a pinned nightly Rust toolchain version from the pre-commit git hook and the justfile (a task runner). The actual toolchain version pins were already moved to the project's main Cargo.toml file in a previous change. There is no change to the library code, no change to how the software behaves for users, and no security relevance.

Lower-priorityci: upgrade rbmt versionby Nick Johnson · 19d066b6 · Mar 31, 2026 · 1 fileMessage 40 · ThinInformational 15Details
Commit message · Nick Johnson

ci: upgrade rbmt version

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
AI analysis · Informational 15/100

This commit only updates a version identifier for an internal CI/testing tool (rbmt). There are no code changes to the rust-bitcoin library itself, and nothing in the commit suggests any security issue.

Lower-priorityci: add explicit git ref for prereleaseby Nick Johnson · 2bede009 · Mar 31, 2026 · 1 fileMessage 72 · AdequateInformational 15Details
Commit message · Nick Johnson

ci: add explicit git ref for prerelease

Allows the prerelease job to be run post-merge on master branch.

72/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100

This is a one-line change to the project's GitHub Actions CI workflow. It adds an explicit git reference (the previous commit SHA) when running pre-release checks, so the check can run correctly after a pull request is merged into the master branch. There is no change to the Rust library code, no security fix, and no vulnerability.

Lower-prioritynetwork: Move errors to error submoduleby Mitchell Bagot · 0cb80c66 · Mar 31, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

network: Move errors to error submodule

As with the other crates, errors in network should be moved to a
submodule. Any errors should then be no_inline re-exported in the
top-level module.

Move errors to public error submodule and re-export at top-level.

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 code reorganization. It moves the definition of a parsing error type into a new 'error' submodule while keeping the same public name available at the top level. There is no security-relevant change.

Security candidateRun the formatterby Tobin C. Harding · 8ba4bbfe · Mar 31, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Tobin C. Harding

Run the formatter

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
cryptography-sensitive path
AI analysis · Informational 15/100

This commit is purely a code formatting cleanup. It only reorders an import statement, removes extra blank lines, and reformats an array literal to fit style guidelines. There are no functional changes to the SHA-256 hashing code.

Security candidatehashes: fmt skip a bunch of stuffby Tobin C. Harding · 3be528f5 · Mar 31, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Tobin C. Harding

hashes: fmt skip a bunch of stuff

Add attribute to a bunch of stuff recently introduced in #5888.

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

This commit only adds `#[rustfmt::skip]` annotations to three places in a SHA-256 cryptographic implementation file. These annotations tell Rust's automatic code formatter to leave those blocks alone. There is no change to program logic, constants, memory handling, or any behavior that could affect security.

AI review queuedconsensus_encoding: Move errors to submoduleby Tobin C. Harding · 34281a57 · Mar 31, 2026 · 5 filesMessage 80 · StrongInformational 15Details
Commit message · Tobin C. Harding

consensus_encoding: Move errors to submodule

In order to make the HTML docs render more clearly it would be nice to
have all the errors separate. We recently introduced a policy for
doing this repo wide.

Add a public `error` submodule and re-export all errors at the crate
root.

Because of anomalies in how `cargo` renders docs for re-exports
between types and modules explicitly use `doc(inline)` and `no_inline`
so we get exactly the behaviour we desire.

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a pure code reorganization: it moves existing error type definitions from several source files into a new dedicated `error` submodule and re-exports them at the crate root. There are no functional changes to how data is encoded or decoded, no bug fixes, and no security-relevant behavior changes.

Lower-priorityconsensus_encoding: Document freestanding functionsby Tobin C. Harding · b1615836 · Mar 31, 2026 · 1 fileMessage 55 · ThinInformational 15Details
Commit message · Tobin C. Harding

consensus_encoding: Document freestanding functions

Mention all the free standing functions in the crate level docs.

55/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit only updates the crate-level documentation in the consensus_encoding module. It expands the list of free-standing encoding and decoding functions with brief descriptions. No code behavior was changed.

Lower-priorityconsensus_encoding: Add macro example docsby Tobin C. Harding · 6135536f · Mar 31, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Tobin C. Harding

consensus_encoding: Add macro example docs

Add an examples section to the rustdocs for the two public macros.

60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit only adds documentation examples to two Rust macros. It does not change any executable code, logic, or security behavior. There is no security issue here.

Lower-priorityconsensus_encoding: Remove trailing empty line from rustdocby Tobin C. Harding · 274a9680 · Mar 31, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Tobin C. Harding

consensus_encoding: Remove trailing empty line from rustdoc

This is a style change; fit in with the rest of the repo.

65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100

This commit removes one blank line from a documentation comment in a Rust source file. It is purely a code-style cleanup with no functional or security relevance.