Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.
This is a small Bitcoin Core wallet change that lets the wallet generate addresses from certain descriptors even when it does not have private keys and has already used up its pre-derived address range. It only affects descriptors that can…
Changes address-derivation gating logic in wallet codeExpands conditions under which addresses can be produced without private keysNo explicit security framing, CVE, or advisory language in commit
This commit adds a new helper method called CanSelfExpand() to Bitcoin Core's descriptor system. It lets the code ask whether a wallet descriptor can produce its Bitcoin address(es) on its own, without needing a saved cache or private keys…
New API surface added to descriptor subsystem (CanSelfExpand)No change to existing expansion, signing, or key-derivation logicNo bounds, memory, or cryptographic operations modified
This commit fixes a wallet migration bug in Bitcoin Core. When converting old-style wallets to modern descriptor wallets, the migration code could process the same BIP 32 seed more than once because it identified seeds by a 'seed ID' that …
Migration correctness fix for duplicate HD seed handlingPotential creation of redundant/conflicting wallet descriptors during legacy-to-descriptor migrationChange in seed-duplicate detection from seed_id hash to derived master xpub comparison
This commit only adds a new test to Bitcoin Core's functional test suite. It runs each MuSig2 signing operation twice and checks that different nonces and partial signatures are produced each time. There is no change to wallet or consensus…
MuSig2 nonce reuse is a known cryptographic risk (reusing a nonce with different messages can leak private keys)The commit adds a regression test, not a fixNo production code paths are changed
This change tweaks how Bitcoin Core's MuSig2 multi-signature code keeps track of active signing sessions. Previously, the session identifier was based only on the public keys and the transaction hash. Now it also includes each participant'…
MuSig2 secret nonce reuse is a well-known catastrophic failure mode (key recovery), so any change touching session/nonce binding is security-relevantThe patch narrows the window for session-id collision across multiple signing roundsNo CVE, advisory, or exploit code is present in the supplied materials
This commit finishes implementing the 'AddInput' and 'AddOutput' methods for PSBT version 2 in Bitcoin Core. PSBTs are files used to collaboratively build or sign Bitcoin transactions offline. Previously, adding inputs/outputs to a PSBTv2 …
Defensive version-mismatch guard added to AddInput/AddOutputRespects PSBTv2 modifiable flags before mutating inputs/outputsLocktime consistency check prevents adding inputs that would invalidate existing signatures
This change lets the PSBT constructor choose between version 0 or version 2 when creating a new Partially Signed Bitcoin Transaction. It also fixes a small consistency bug in the joinpsbts RPC where newly created PSBTs during joining/shuff…
assert(m_version == 0 || m_version == 2) restricts PSBT version to known valuesjoinpsbts now preserves PSBT version across merge and shuffle stepsNo input validation bypass, overflow, or unsafe serialization changes visible
This commit changes the default version number used when Bitcoin Core creates new Partially Signed Bitcoin Transactions (PSBTs) from version 0 to version 2. PSBT is a standard format for passing around unsigned or partially signed transact…
Default-value change in a serialization format constructorAddition of a regression/behavior test for the new defaultNo input validation, parsing, or memory-safety changes present
This commit only adds a new unit test file for an existing PSBT (Partially Signed Bitcoin Transaction) function called ComputeTimeLock. It does not change any production code, wallet logic, or network behavior. There is no security fix or …
This commit changes a Bitcoin Core internal helper function so that it can now report failure when a PSBT (Partially Signed Bitcoin Transaction) is internally inconsistent. Previously, the helper would build transaction precomputation data…
Defensive nullability added to PSBT precomputationNew error code PSBTError::INVALID_TX for invalid PSBT transactionsCallers now abort on failure to precompute transaction data
This commit refactors how Bitcoin Core handles Partially Signed Bitcoin Transactions (PSBTs). Previously, a PSBT stored a complete copy of the unsigned transaction. Now, the transaction is broken into separate fields and reconstructed on d…
Refactor of PSBT internal representation to remove direct unsigned transaction memberIntroduction of GetUnsignedTx() and GetUniqueID() accessorsAddition of optional/null checks when reconstructing the unsigned transaction
This commit adds a helper function that calculates when a Bitcoin transaction becomes valid based on time or block height locks inside a Partially Signed Bitcoin Transaction (PSBT). It also makes the existing unsigned-transaction builder u…
New validation logic that rejects inconsistent PSBTv2 locktime fieldsChange from unconditional fallback locktime to computed/validated locktimePotential denial-of-construction if conflicting locktime types are present
This commit adds support for a new version of Partially Signed Bitcoin Transactions (PSBTv2) in Bitcoin Core. It introduces serialization and deserialization code for new PSBTv2 fields, including transaction version, input/output counts, m…
New deserialization code parses attacker-controlled PSBT data and enforces version constraintsValidation added to reject PSBTv2 fields in PSBTv0 and vice versaLocktime validation ensures time-based locktime >= 500000000 and height-based locktime > 0 and < 500000000
This commit updates the Bitcoin Core 'decodepsbt' RPC command so it can display the newer PSBT version 2 format. It only changes what information is shown to the user; it does not change how transactions are validated, signed, or broadcast…
This commit is a straightforward internal code cleanup in Bitcoin Core. It moves a helper function that looks up the previous transaction output (UTXO) for a PSBT input from the whole-transaction object (PartiallySignedTransaction) into th…
This change updates the Bitcoin Core 'joinpsbts' RPC command so it only accepts PSBT version 0 files. Previously, it could accept newer PSBT versions, which might have led to incorrect or unexpected behavior when combining partially signed…
RPC input validation hardeningPSBT version restrictionPotential correctness issue when joining PSBTv2 transactions
This commit updates how Bitcoin Core combines two Partially Signed Bitcoin Transactions (PSBTs). It adds checks to prevent merging PSBTs of different versions, propagates failure if any input or output cannot be merged, and copies new PSBT…
Version-confusion prevention: merging is now rejected if the two PSBTs have different versions, which could have led to inconsistent or malformed transaction state.Failure propagation: input/output Merge methods now return booleans and abort the top-level merge on failure, reducing silent data loss.New PSBTv2 fields are now merged, completing support for the v2 specification.
This commit updates Bitcoin Core's internal test-framework Python helper for Partially Signed Bitcoin Transactions (PSBT) to support the newer PSBT version 2 format. It is a test/development tooling change, not a change to the live Bitcoin…
This commit updates Bitcoin Core's Partially Signed Bitcoin Transaction (PSBT) RPC commands so they can produce the newer PSBT version 2 format, and makes version 2 the default. It is a feature and compatibility change, not a fix for an ac…
Input validation: RPCs reject PSBT versions other than 0 and 2Default behavior change: newly created PSBTs now use version 2No memory-safety or cryptographic changes visible in the diff
This commit only adds new automated tests for existing PSBT (Partially Signed Bitcoin Transaction) helper functions called AddInput and AddOutput. It does not change any production wallet, consensus, or networking code. The tests verify th…