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 queue248AI analyses
194commits · 30 days
405commits · 60 days
1283commits · 180 days
2070commits · 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 Bagot640192109068
Tobin C. Harding4096544063
jrakibi944912068
Nick Johnson189204059
Andrew Poelstra512011075
Jamil Lambert, PhD114185061
Fmt Bot311412045
Trevor Arjeski111111069
Shing Him Ng3176056
Ismail Daif2263050
satsfy (Renato Britto)1766066
Martin Habovstiak2754069
Analysis record

Published AI watches

Last scanned 20 minutes ago

Informational 15 AI analysisMessage 60 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

base58ck: Bump version to 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 describing unrelated feature changes. There are no code changes,…

8479b56eby Tobin C. Harding+22−168 files
No security note in commit
Informational 20 AI analysisMessage 58 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Rename Error to DecodeCheckError

This commit is a routine code cleanup: it renames the `Error` type in the base58 module to the more descriptive `DecodeCheckError`, and adds a deprecated type alias so existing code using `base58::Error` continues to work. There is no chan…

b0eba4c0by Mitchell Bagot+45−395 files
No security note in commit
Informational 15 AI analysisMessage 78 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: add sha256::Midstate::SHA256_IV constant

This commit is a routine internal refactoring in the rust-bitcoin SHA-256 hashing code. It exposes the SHA-256 initial value (IV) as a public constant and renames an internal helper function so it can start from any midstate rather than al…

dc21841bby Andrew Poelstra+39−143 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: add several methods to sha256::Midstate for computing them in const contexts

This commit adds new helper methods to the SHA-256 'Midstate' type in the rust-bitcoin hashes library. These helpers let callers compute SHA-256 intermediate states inside 'const' contexts (compile-time constants). It is a routine feature …

7d8f06d2by Andrew Poelstra+80−72 files
No security note in commit
Informational 17 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

taproot-primitives: Implement encoding traits for TapLeafHash

This commit adds standard data-encoding support for a Bitcoin Taproot hash type (TapLeafHash) so it can be properly serialized and deserialized in PSBT data. There is no indication of a security bug being fixed; it appears to be a missing-…

No security-relevant signal in commit message or diffChange is a feature addition (encoding trait implementations)No bounds-checking, memory-safety, or cryptographic flaws evident in diff
b2ab0896by Mitchell Bagot+59−12 files
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Split Address into an extension trait

This commit is a routine code reorganization in the rust-bitcoin library. It moves the `Address::from_script` method out of the main `Address` type into a new 'extension trait' called `AddressExt`. The actual logic of the function is copie…

c900fa8cby Mitchell Bagot+35−263 files
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

primitives: Bump version to 0.103.0

This commit is a routine release preparation: it bumps the version number of the `bitcoin-primitives` crate from 0.102.0 to 0.103.0, updates related dependency declarations in other crates, refreshes lock files, and adds a changelog entry.…

5612224dby Tobin C. Harding+48−88 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: bump version to 1.1.0

This commit is a routine version bump for the bitcoin_hashes crate from 1.0.0 to 1.1.0. It updates dependency references across the workspace, records the release in the changelog, and adjusts deprecation lint allowances in tests. There is…

bf3f25f4by Nick Johnson+34−269 files
No security note in commit
Informational 17 AI analysisMessage 80 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

refactor(bip32): Xpub child tweak api

This commit is a straightforward API refactor in the BIP-32 (Bitcoin key derivation) code. It replaces a function that returned a raw secret key and chain code with one that returns a new structured type called XpubChildTweak. The actual c…

No security-relevant behavioral change observedAPI rename and return-type encapsulation onlyNo new validation, bounds checking, or constant-time guarantees added
37191717by Trevor Arjeski+21−71 file
No security note in commit
Informational 18 AI analysisMessage 85 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

refactor(bip32): rename Xpub and Xpriv derivation methods

This is a routine code cleanup in a Bitcoin library. It renames key-derivation methods on extended public and private keys (Xpub/Xpriv) to clearer names and removes old aliases. There is no security bug being fixed and no new vulnerability…

No security-relevant logic changePure API renaming/refactoringDeprecated method removal may break downstream callers at compile time
f8f053fdby Trevor Arjeski+61−852 files
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

internals: Bump version to 0.6.0

This commit is a routine version bump for the internal 'bitcoin-internals' crate from 0.5.0 to 0.6.0. It updates version numbers across package manifests and lock files, and adds a changelog describing API cleanups and small improvements. …

aed7a9ceby Tobin C. Harding+73−5616 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Remove hex dep from internals

This commit simply removes an unused software dependency (the hex-conservative crate) from the internals sub-package and updates related package configuration files. It is a routine cleanup change with no security relevance.

bd0d4bc0by Tobin C. Harding+8−118 files
No security note in commit
Informational 17 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Replace external uses of base58 encoding with Base58CkString

This commit is a routine internal code cleanup in the rust-bitcoin project. It swaps old base58 encoding helper functions for a new equivalent type, Base58CkString, in three source files. There is no indication from the commit itself that …

No security-relevant signal in the diff: equivalent API swap onlyNo new dependencies or unsafe blocks introducedNo changes to input validation, parsing, or secret handling
7f5fbd13by Mitchell Bagot+10−103 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Add try_push to Buffer trait

This commit adds a new `try_push` method to an internal `Buffer` trait used during Base58 encoding. It is a straightforward, additive change that lets encoding code gracefully handle a full fixed-size buffer in no-allocation builds. There …

aafb6065by Mitchell Bagot+15−01 file
No security note in commit
Informational 15 AI analysisMessage 73 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

consensus_encoding: Rename _with decoder functions

This commit is a simple renaming of internal Rust functions from names ending in '_with' to names ending in '_with_decoder'. It does not change what the code does, only what the functions are called, to avoid confusion with another functio…

12325a67by Mitchell Bagot+18−174 files
No security note in commit
Informational 17 AI analysisMessage 63 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

Move ScriptPubKeyBufExt to addresses

This commit is a routine internal code reorganization in the rust-bitcoin library. It moves a helper trait (ScriptPubKeyBufExt) and its functions from one internal module to another, and re-exports it so existing users see no change. There…

ed00d91aby Mitchell Bagot+92−552 files
No security note in commit
Informational 16 AI analysisMessage 50 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: Deprecate sha256t_tag macro

This is a routine code-maintenance change: the developers are marking an old helper macro as deprecated and telling users how to write the same code by hand. There is no bug fix, no security patch, and no vulnerability being addressed in t…

ac921e97by jrakibi+26−123 files
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

2026-07-05 automated rustfmt nightly

This commit is a routine automated code-formatting run by the rustfmt tool. It only changes whitespace, import order, and line breaks in five files. There are no functional changes, no bug fixes, and no security-related modifications.

673e5ee4by Fmt Bot+12−115 files
No security note in commit
Informational 15 AI analysisMessage 68 · Adequate
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

hashes: implement sha256t::Tag without the macro

This commit is a routine code cleanup in the rust-bitcoin library. It replaces a macro used to define SHA-256 tagged hash identifiers with direct Rust code that does the same thing. The actual hash values and behavior are unchanged; only t…

0131814dby jrakibi+30−133 files
No security note in commit
Informational 15 AI analysisMessage 95 · Strong
RB Rust Bitcoinrust-bitcoin BitcoinCryptographic libraries

ci: adapt default and no feature bip32 test for rbmt 0.4.0

This is a routine update to the project's automated testing configuration. A tool used to run example tests changed its syntax, so the developer updated one line to keep the same tests running the same way. There is no user-facing change a…

5f933d5cby satsfy (Renato Britto)+1−11 file
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 candidateMove serde_round_trip macro to bip32by Mitchell Bagot · 3cf7554a · Jun 9, 2026 · 5 filesMessage 78 · AdequateInformational 15Details
Commit message · Mitchell Bagot

Move serde_round_trip macro to bip32

The serde_round_trip macro from internals is only used in the bip32
module for testing. Rather than pulling it in from internals, it should
instead be defined in-line in the tests module.

Move serde_round_trip macro to bip32. Add bincode dev dependency to
key_expression.

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
secret or key materialcryptography-sensitive path
AI analysis · Informational 15/100

This commit is a routine code cleanup: it moves a small test-only helper macro from a shared internal utility crate into the one place it is actually used. There is no change to user-facing behavior, no bug fix, and no security relevance.

Security candidateRemove Verification re-exportsby Mitchell Bagot · 31c3e51b · Jun 9, 2026 · 2 filesMessage 68 · AdequateInformational 20Details
Commit message · Mitchell Bagot

Remove Verification re-exports

These re-exports exist from the days when secp required an explicit
context for cryptographic operations. With the introduction of the
global context in recent secp versions, they are no longer needed.

Remove Verification re-exports from key modules.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
defensive validationcryptography-sensitive path
AI analysis · Informational 20/100

This commit simply stops publicly re-exporting a secp256k1 type called `Verification` from two Rust Bitcoin key modules. It is a routine API cleanup: the type is still available directly from the underlying secp256k1 library, so no cryptographic capability is removed, only a convenience shortcut. There is no security bug or vulnerability here.

Security candidatecrypto: Remove all From impls for error typesby Mitchell Bagot · 33765355 · Jun 8, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

crypto: Remove all From impls for error types

Aside from From<Infallible>, error types should not have any From
impls but should instead make use of map_err. This ensures greater
future flexibility for changes to the error types moving forward.

Remove From<InvalidSighashTypeError> for SigFromSliceError from
taproot.

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 internal code cleanup in the rust-bitcoin library. It removes a convenience conversion (a 'From' implementation) between two error types and replaces it with an explicit error mapping. The actual behavior of signature parsing does not change; it is purely about how errors are wired through the code. There is no indication this fixes a security bug.

Security candidateRemove Secp256k1 variant from taproot SigFromSliceErrorby Mitchell Bagot · f3920e7b · Jun 8, 2026 · 1 fileMessage 78 · AdequateInformational 19Details
Commit message · Mitchell Bagot

Remove Secp256k1 variant from taproot SigFromSliceError

The Secp256k1 variant of the SigFromSliceError is no longer needed.
The secp parsing of the signature is now infallible, meaning there
cannot be a secp error during parsing of a signature from a slice.

Remove Secp256k1 error variant from taproot::SigFromSliceError.

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

This commit removes an unused error category from a Bitcoin cryptography library. It is a cleanup change because the underlying signature-parsing code can no longer fail in the way that error category described. There is no direct evidence this fixes an active security bug, but it does slightly reduce the library's public error surface, which can help downstream code handle errors more reliably.

Security candidateReplace usage of secp256k1::Error with new error in ecdsaby Mitchell Bagot · f0a0f330 · Jun 8, 2026 · 1 fileMessage 83 · StrongInformational 15Details
Commit message · Mitchell Bagot

Replace usage of secp256k1::Error with new error in ecdsa

The ecdsa::InvalidDerError can be used both in the key verify
functions but also to replace the Secp256k1 variant in DecodeError.

Replace DecodeError::Secp256k1 variant with InvalidDer.

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

This commit is a straightforward internal cleanup in the rust-bitcoin library. It swaps one error type for another when an ECDSA signature fails to decode from DER format. The behavior of signature parsing does not change; only the name and contents of the error value reported to callers are different. There is no indication this fixes a security bug or introduces a vulnerability.

Security candidateReplace usage of secp256k1::Error with new errors in keyby Mitchell Bagot · 4eefd023 · Jun 8, 2026 · 1 fileMessage 83 · StrongInformational 17Details
Commit message · Mitchell Bagot

Replace usage of secp256k1::Error with new errors in key

As part of the goal of providing more precise error types, the new
error types should be used for the from_bytes, from_secret_bytes and
verify functions on the key types. This also requires replacement of
the various Secp256k1 variants in enum error types.

Replace Secp256k1 error variants with specific error types and
replace error return types with specific types for from_bytes,
from_secret_bytes and verify functions.

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

This commit is a routine code cleanup in the rust-bitcoin library. It replaces generic error types from the underlying secp256k1 cryptographic library with more specific, library-defined error types for key parsing and signature verification functions. There is no indication this fixes a security vulnerability; it is an API-quality improvement.

Security candidateIntroduce errors for byte parsing and verificationby Mitchell Bagot · 1a337804 · Jun 8, 2026 · 2 filesMessage 83 · StrongInformational 18Details
Commit message · Mitchell Bagot

Introduce errors for byte parsing and verification

At present, the from_bytes, from_secret_bytes and verify methods on
the key types all return secp256k1::Error. In all of these methods,
only a single variant of that error type is returned. To both hide
the secp type, and to provide the possibility for more meaningful
error values, new error types should be introduced.

Add FromSecretBytesError, InvalidPublicKeyError and VerifyError to
key errors.
Add InvalidDerError error type to ecdsa error submodule.

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
defensive validationcryptography-sensitive path
AI analysis · Informational 18/100

This commit is a routine code-quality refactor. It introduces new, more specific Rust error types for parsing keys and signatures, replacing a generic underlying library error type. There is no change to cryptographic behavior, validation logic, or security boundaries. It only changes what kind of error message callers receive when parsing fails.

Security candidatetaproot: Remove From<&Signature> for SerializedSignatureby Mitchell Bagot · 3af1119f · Jun 7, 2026 · 1 fileMessage 78 · AdequateInformational 17Details
Commit message · Mitchell Bagot

taproot: Remove From<&Signature> for SerializedSignature

The From<&'a Signature> for SerializedSignature impl functions by
derefing the signature and then serializing it. The presence of the
trait implies that SerializedSignature is some sort of reference to
the signature, when it is instead a type owning its own data.

Remove From<&Signature> impl from taproot::SerializedSignature.

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

This commit removes a convenience conversion that let users turn a borrowed Taproot signature into an owned, serialized byte form. The change is API-cleanup: the old trait made it look like the serialized form was just a view of the original signature, when it actually copies/owns the bytes. There is no direct security bug fixed here, but removing the misleading conversion reduces the chance that future callers misunderstand ownership and accidentally clone or mishandle signature data.

Security candidateBump key-expression crate versionby Mitchell Bagot · c1fbe98c · Jun 6, 2026 · 5 filesMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

Bump key-expression crate version

With the bip32 module moved, the key-expression crate should now have
a new version release before the next bitcoin release.

Bump key-expression version number to 0.1.0.
Update changelog.
Adjust bitcoin manifest to match new version number.
Update lock files.

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
secret or key material
AI analysis · Informational 15/100

This commit is purely a housekeeping release step. It bumps the version number of the bitcoin-key-expression crate from 0.0.0 to 0.1.0, updates the changelog, and adjusts the main bitcoin package and lock files to match. There are no code changes, bug fixes, or security patches in the diff.

Security candidateAdd From<Infallible> to sighash errorsby Mitchell Bagot · d8d8c334 · Jun 5, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · Mitchell Bagot

Add From<Infallible> to sighash errors

In order to facilitate use in generics, all error types should have a
From<Infallible> implementation.

Add From<Infallible> to all sighash error types.

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

This commit adds standard Rust trait implementations that allow certain Bitcoin signature-hash error types to be created from the Infallible type. Infallible is a type that can never actually exist, so these conversions can never be invoked at runtime. The change is purely an ergonomic improvement for generic programming and has no security relevance.

Security candidateMake sighash error fields privateby Mitchell Bagot · 1d583d6f · Jun 5, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · Mitchell Bagot

Make sighash error fields private

The sighash error types in crypto currently all have pub fields. This
prevents any future changes to their structure after a 1.0 and is not
required for any functionality.

Make all inner fields in sighash errors pub(super) or pub(crate).

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 reduces the visibility of internal fields on three error types in the crypto/sighash module from public to crate-internal. It is a routine API-hardening change to preserve future flexibility before a 1.0 stable release. There is no security vulnerability here.

Security candidatecrypto: Gate all usage of hex-conservative behind hex featureby Mitchell Bagot · 745f4fe4 · Jun 3, 2026 · 6 filesMessage 73 · AdequateInformational 19Details
Commit message · Mitchell Bagot

crypto: Gate all usage of hex-conservative behind hex feature

Typically, all of the crates upstream of bitcoin have a hex feature
that gates the usage and inclusion of the hex-conservative crate.
Since the crypto crate functionality was crudely pulled from bitcoin,
this feature was not present but instead baked in as part of the
default functionality.

Introduce a hex feature which gates hex 1.1.0.
Add hex feature gates as necessary for existing functionality.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
cryptography-sensitive path
AI analysis · Informational 19/100

This commit reorganizes how an optional hex-encoding helper library is enabled in the bitcoin-crypto crate. It makes the hex-conservative dependency optional and gated behind a new 'hex' feature, instead of being included by default. The main bitcoin crate explicitly enables this feature, so end-user behavior is unchanged. This is a build/configuration cleanup, not a fix for an exploitable vulnerability.

Security candidateDestructure error types in source implsby Mitchell Bagot · 8b03bf95 · Jun 1, 2026 · 30 filesMessage 80 · StrongInformational 15Details
Commit message · Mitchell Bagot

Destructure error types in source impls

In the source impls of error types, we previously decided to use
explicit impls to try to prevent changes in the error type from
introducing errors. However, impls that simply return None do not help
to solve this issue.

Add a complete error type destructure to all None source impls to catch
future error shape changes.

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

This commit is a code-quality maintenance change. It adds pattern-matching destructuring inside Rust error-type 'source' methods that previously just returned 'None'. The goal is to make the compiler warn future maintainers if the shape of an error type changes, so they remember to update the source() implementation. It does not change runtime behavior, fix a bug, or close a security vulnerability.

Security candidatehashes: Bump version to 1.0.0by Tobin C. Harding · f7f7dd2b · May 31, 2026 · 12 filesMessage 68 · AdequateInformational 15Details
Commit message · Tobin C. Harding

hashes: Bump version to 1.0.0

No changes since last RC `v0.21.0`.

In preparation for release add a changelog entry, bump the version,
and update the lock files.

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 release-preparation change. It bumps the version number of the `bitcoin_hashes` crate from 0.21.0 to 1.0.0, updates the changelog, and updates dependency references in lock files and other crates' configuration files. There are no code changes and no security relevance.

Security candidate2026-05-31 automated rustfmt nightlyby Fmt Bot · acaff550 · May 31, 2026 · 6 filesMessage 45 · ThinInformational 15Details
Commit message · Fmt Bot

2026-05-31 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 path
AI analysis · Informational 15/100

This commit is a routine automated code-formatting run by the rustfmt tool. It only changes whitespace, line breaks, and import grouping in six files. No program logic, security checks, or behavior were altered.

Security candidatehashes: Inline error functionsby Tobin C. Harding · 5b241e3b · May 29, 2026 · 2 filesMessage 35 · OpaqueInformational 15Details
Commit message · Tobin C. Harding

hashes: Inline error functions

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

This commit adds compiler hints to three small functions in the rust-bitcoin hashes crate, suggesting the compiler should inline them. It does not change behavior, fix a bug, or address any security issue.

Security candidatehashes: Rename engine_input_implby Tobin C. Harding · 7b56cdda · May 29, 2026 · 6 filesMessage 50 · ThinInformational 15Details
Commit message · Tobin C. Harding

hashes: Rename engine_input_impl

In line with other macros put the 'impl' first in the name. Also use
`{}` instead of `()` as is more typical here.

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

This commit is a pure code cleanup: it renames an internal helper macro from `engine_input_impl!` to `impl_engine_input!` and switches its syntax from parentheses to curly braces. No logic, behavior, or security properties of the hashing code change.

Security candidatehashes: Add From<Infallible> for error typesby Tobin C. Harding · acd0d01f · May 29, 2026 · 2 filesMessage 68 · AdequateInformational 16Details
Commit message · Tobin C. Harding

hashes: Add From<Infallible> for error types

As is customary in this repo add `From<Infallible>` to all error
types. The unusual code layout (above display) is intentional and
inline with other error code.

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

This commit adds a standard Rust trait implementation that lets two error types be automatically converted from the 'Infallible' type (a type that can never actually exist). It is a routine ergonomic improvement and does not fix any security bug or change runtime behavior.

Security candidatehashes: Pluralize function docsby Tobin C. Harding · 3b2bdc0e · May 29, 2026 · 9 filesMessage 50 · ThinInformational 15Details
Commit message · Tobin C. Harding

hashes: Pluralize function docs

By convention in this repo we use plural for the verb in function
docs.

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

This commit only changes the wording of code comments (documentation) from singular verbs like 'Finalize' to plural verbs like 'Finalizes' to match the project's style convention. No actual program code was modified, so it cannot affect security or behavior.

Security candidatebip32: add missing From<Infallible> to errorsby satsfy (Renato Britto) · ab38e614 · May 29, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · satsfy (Renato Britto)

bip32: add missing From<Infallible> to errors

Error types impls are not uniform in this module.

Add From<Infallible> for DerivationError and
InvalidBase58PayloadLengthError.

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

This commit adds two small Rust trait implementations that allow certain error types to be automatically converted from the 'Infallible' type. 'Infallible' is a type that can never actually exist, so these conversions are purely for making the error types easier to use in generic code. There is no security issue here.

Security candidaterefactor(bip32): split relative and absolute bip32 derivation pathsby Trevor Arjeski · 65ab45cd · May 29, 2026 · 1 fileMessage 85 · StrongLow 34Details
Commit message · Trevor Arjeski

refactor(bip32): split relative and absolute bip32 derivation paths

This is part of a larger refactor on the bip32 module.

- Make DerivationPath parse only relative paths
- Add AbsoluteDerivationPath for master prefixed (m) notation

Splitting DerivationPath into relative and absolute types will force the
derivation APIs to be more explicit about which path is being used to derive a
child key.

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
secret or key materialcryptography-sensitive path
AI analysis · Low 34/100

This commit refactors how Bitcoin BIP-32 derivation paths are represented in the rust-bitcoin library. It splits the old single DerivationPath type into two: DerivationPath (relative paths like 0'/1) and AbsoluteDerivationPath (master-prefixed paths like m/0'/1). The goal is to make wallet code more explicit about whether it is deriving from the master key or from an intermediate key. The change is a type-system/API hardening, not a fix for a known exploitable bug. It may prevent future misuse where a relative path is accidentally treated as absolute or vice versa, but the commit itself does not describe any active vulnerability.

Security candidaterefactor(bip32): rename DerivationPath to RelativeDerivationPathby Trevor Arjeski · 6ee99f84 · May 29, 2026 · 2 filesMessage 85 · StrongInformational 20Details
Commit message · Trevor Arjeski

refactor(bip32): rename DerivationPath to RelativeDerivationPath

Renaming to trigger code changes in consumers of this module so we can pinpoint
locations that may need to be changed to AbsoluteDerivationPath

85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
secret or key materialcryptography-sensitive path
AI analysis · Informational 20/100

This is a routine code cleanup that renames the type `DerivationPath` to `RelativeDerivationPath` throughout the project. The change is purely a refactor: it does not alter how the code behaves, what it computes, or how it handles data. The commit message explicitly says the rename is intended to force other developers to update their code so the maintainers can identify places that may later need a new `AbsoluteDerivationPath` type. There is no security fix or vulnerability here.

Security candidaterefactor(bip32): rename derivation path extend to joinby Trevor Arjeski · 83afae52 · May 29, 2026 · 1 fileMessage 77 · AdequateInformational 15Details
Commit message · Trevor Arjeski

refactor(bip32): rename derivation path extend to join

Use path-like naming convention for non-mutating concatenation like Rust does.

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
secret or key materialcryptography-sensitive path
AI analysis · Informational 15/100

This commit is a simple rename of a method from 'extend' to 'join' in a Rust Bitcoin library. It does not change what the code does, only its name. There is no security issue here.

Security candidatebip32: split generic wrapper for Xpriv::new_masterby satsfy (Renato Britto) · 4f6de66e · May 28, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · satsfy (Renato Britto)

bip32: split generic wrapper for Xpriv::new_master

Keep the public new_master accepting impl Into<NetworkKind> and impl
AsRef<Bip32Seed>, but forward the arguments to new_master_inner, thus
preventing inner part from repeating for each inline implementation.

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
secret or key materialcryptography-sensitive path
AI analysis · Informational 15/100

This is a small internal code cleanup in a Bitcoin library. It splits one function into two so the inner logic doesn't have to be repeated, but the public behavior is unchanged. There is no security issue visible in the change.

Security candidatebip32: tidy InvalidSeedLengthError trait implsby satsfy (Renato Britto) · c0d5e26c · May 28, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · satsfy (Renato Britto)

bip32: tidy InvalidSeedLengthError trait impls

Follow up to match the conventions used by other errors in this module.

- Derive Copy.
- Add From<Infallible>.
- Use explicit source returning None in std::error::Error.
- Clarify range display message with 'inclusive' word.

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

This is a minor code cleanup for an error type in the BIP-32 (Bitcoin key derivation) module. It adds a standard 'Copy' trait, a conversion from Rust's 'Infallible' type, an explicit 'no underlying cause' implementation, and slightly clarifies an error message. There is no security fix or behavior change.