descriptors icon indicating copy to clipboard operation
descriptors copied to clipboard

Support Slip-132 variants

Open nk1tz opened this issue 1 month ago • 0 comments

Add SLIP-132 extended public key support (zpub, ypub, vpub, upub)

Hey @landabaso, I know this might sound crazy, but I keep coming across applications that are constructing descriptors with slip-132 variants even though the concept of the descriptor itself renders this a redundant expression of intent...

Here is a solution to transmute encountered variants to the standard x|t versions that bip32 expects. Of course I could pre-transform descriptors prior to passing them to this library, but I wanted to see what you thought of this idea.

Changes

  • Updated regex in re.ts to accept zpub/ypub/vpub/upub prefixes (and their uppercase multisig variants)
  • Added convertToStandardXpub() in keyExpressions.ts that converts SLIP-132 keys to xpub/tpub by swapping version bytes before passing to bip32
  • Added test vectors proving zpub/ypub/vpub/upub descriptors derive the same addresses as their xpub/tpub equivalents

nk1tz avatar Nov 25 '25 22:11 nk1tz