What
Clarify that tr() descriptors use their argument as a Taproot internal key and apply the BIP341 tweak, while rawtr() expects an already-tweaked output key.
The examples for tr(...) and tr(musig(...)) now say explicitly that the resulting output key is tweaked, and the rawtr(KEY) reference now makes clear that no extra tweak is applied by the descriptor itself.
Why
The current wording can be read as if tr(KEY) and rawtr(KEY) both take a final output key directly. In the implementation, TRDescriptor::MakeScripts() finalizes a TaprootBuilder with the internal key, while RawTRDescriptor::MakeScripts() wraps the provided x-only key directly as the witness program.
Making that distinction explicit should help descriptor readers avoid misunderstanding Taproot key derivation, especially in the musig() example where the aggregate key is still an internal key before the BIP341 tweak.
Validation
- Compared the doc updates against
TRDescriptor::MakeScripts()andRawTRDescriptor::MakeScripts()insrc/script/descriptor.cpp - Ran
git diff --check upstream/master...HEAD - No code or test behavior changed (docs-only)