doc: mention musig() in descriptors.md
What changed, and why it matters
This commit only updates documentation. It adds two lines to the descriptors.md file explaining that the musig() expression is supported in output descriptors for MuSig2 key aggregation. There is no code change, no bug fix, and no security issue.
No action needed. This is a benign documentation update.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit is a documentation-only change to doc/descriptors.md. It adds a bullet point mentioning MuSig2 key aggregation under the list of supported descriptor features, and adds a paragraph describing the syntax and constraints of the musig(KEY,KEY,…) expression inside tr() descriptors. No source code, tests, build system, or configuration files were modified.
Changed components
doc/descriptors.mdInspect captured patch +2 / −0
diff --git a/doc/descriptors.md b/doc/descriptors.md
index 1b79c99f..c4d6c5eb 100644
--- a/doc/descriptors.md
+++ b/doc/descriptors.md
@@ -45,6 +45,7 @@ Output descriptors currently support:
- Any type of supported address through the `addr` function.
- Raw hex scripts through the `raw` function.
- Public keys (compressed and uncompressed) in hex notation, or BIP32 extended pubkeys with derivation paths.
+- [MuSig2](https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki) key aggregation.
- [Miniscript](https://bitcoin.sipa.be/miniscript/) expressions in `wsh` (P2WSH) and `tr` (P2TR) functions.
## Examples
@@ -107,6 +108,7 @@ Descriptors consist of several types of expressions. The top level expression is
- No more than one of these derivation steps may be of the form `<NUM;NUM;...;NUM>` (including hardened indicators with either or both `NUM`). If such specifiers are included, the descriptor will be parsed as multiple descriptors where the first descriptor uses all of the first `NUM` in the pair, and the second descriptor uses the second `NUM` in the pair for all `KEY` expressions, and so on.
- Optionally followed by a single `/*` or `/*'` final step to denote all (direct) unhardened or hardened children.
- The usage of hardened derivation steps requires providing the private key.
+ - `musig(KEY,KEY,...)` to represent the MuSig2 key aggregation of the relevant keys, only inside `tr()` expressions. It may be followed by unhardened `/NUM` derivation steps if all `KEY` subexpressions are xpubs or derived thereof, and none use `/*` or `/<NUM;NUM;...>`.
(Anywhere a `'` suffix is permitted to denote hardened derivation, the suffix `h` can be used instead.)
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.