Bitcoin Core's descriptor documentation lists a P2SH-P2WSH-P2PKH descriptor as one of its examples:

sh(wsh(pkh(02e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13))) describes an (overly complicated) P2SH-P2WSH-P2PKH output with the specified public key.

That just seems inefficient and weird. It's not clear to me what advantage that construction would have over using P2SH-P2WPKH, P2WPKH, or, for his noodliness's sake, even P2SH-P2WSH-1of1-multisig. Is this listed just because it could be done, or is there an actual case in which the P2SH-P2WSH-P2PKH construction would be superior in some fashion to other viable options?


There is no reason to ever use this construction—other options would be able to achieve equivalent permissions much more weight efficiently. However, disallowing inefficient descriptors would complicate the implementation. I surmise that the example was only given as a sample of what would be possible, but one should not infer a recommendation to use it from that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.