Abstract
Currently sweeptool handles output descriptors in Bitcoin Core compatible format wrt configurable range: /*
This means we have to pass the Receiving and Change descriptor separately.
However, there are many different standards which try to pass a descriptor only once for the Change and Receive purpose. This includes Gordian products (which omit the /0/* and /1/*), some other vendors (unchained capital?) which expect a /0/* and derive /1/* automatically, and there's a new BIP https://nunchuk.medium.com/a-new-multisig-standard-and-nunchuk-1-0-499dd3690f2d which seems to handle this more elegantly.
Imo, dropping the tail is problematic as Bitcoin Core understands that as something different, example:
$ bitcoin-cli getdescriptorinfo "pkh([d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL/1/*)"
{
"descriptor": "pkh([d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL/1/*)#ml40v0wf",
"checksum": "ml40v0wf",
"isrange": true,
"issolvable": true,
"hasprivatekeys": false
}
$ bitcoin-cli getdescriptorinfo "pkh([d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL)"
{
"descriptor": "pkh([d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL)#0gu49ctj",
"checksum": "0gu49ctj",
"isrange": false,
"issolvable": true,
"hasprivatekeys": false
}
What formats should we support?
Abstract
Currently sweeptool handles output descriptors in Bitcoin Core compatible format wrt configurable range:
/*This means we have to pass the Receiving and Change descriptor separately.
However, there are many different standards which try to pass a descriptor only once for the Change and Receive purpose. This includes
Gordian products(which omit the/0/*and/1/*), some other vendors (unchained capital?) which expect a/0/*and derive/1/*automatically, and there's a new BIP https://nunchuk.medium.com/a-new-multisig-standard-and-nunchuk-1-0-499dd3690f2d which seems to handle this more elegantly.Imo, dropping the tail is problematic as Bitcoin Core understands that as something different, example:
What formats should we support?