Skip to content

Range format for output descriptors #5

@gorazdko

Description

@gorazdko

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions