Consider these descriptors:
1: pk(xpub68Enqrw9EMhovqR93YKMGJ67JiNqVkMxggjzJY3ijcJmFv4TSBqUXg94GXN4UCEop1MAmUUucDzUphakwFQy8Da8ENoiz7cBRA2P11GeKVU)#rrz9d6nw
2: pk([b3d53e5f]xpub68Enqrw9EMhovqR93YKMGJ67JiNqVkMxggjzJY3ijcJmFv4TSBqUXg94GXN4UCEop1MAmUUucDzUphakwFQy8Da8ENoiz7cBRA2P11GeKVU)#qx98nulh
3: pk([2f9a2980]xpub68Enqrw9EMhovqR93YKMGJ67JiNqVkMxggjzJY3ijcJmFv4TSBqUXg94GXN4UCEop1MAmUUucDzUphakwFQy8Da8ENoiz7cBRA2P11GeKVU)#zk36mwcm
They all contain the same XPUB. The first descriptor has no fingerprint/key identifier. The second descriptor contains its own fingerprint. The third descriptor contains the fingerprint of the master key from which it was derived.
When I pass these descriptors into bitcoin-cli deriveaddresses
, they all yield the same result: 1HPsQmQYzaDqF4aVLS8Wy16mZ3KuaMgaVu
.
I realize that the fingerprint says something about the chain of previous XPUBs, and can be used by wallets to verify ownership of a given key. In the context of a descriptor, do they provide any value, or can they safely be removed from the descriptor?