If I create a 3/3 multisig wallet and then type seed
, the seed shown is 528 hex characters.
What does this seed consist of, and does it allow full restoration of that participant's multisig wallet?
528 hex characters is 264 bytes.
The format is:
threshold of signers required - 8 byte uint32
number of total signers - 8 byte uint32
multisig signing secret key of this wallet - 32 byte scalar
public spend key of the overall multisig wallet - 32 byte EC point
secret view key of the overall multisig wallet - 32 byte scalar
public view key of the overall multisig wallet - 32 byte EC point
multisig keys - 3x 32 byte scalars. One of these is your own blinded multisig signing
secret key, the others are blinded versions of the other signers' multisig
signing secret keys
multisig signing public key of this wallet - 32 byte EC point
Note that the multisig secret signing keys are blinded as follows:
blinded multisig secret key = hash_to_scalar(multisig secret key || salt)
where salt
is a 32 byte sequence starting with the ASCII "Multisig", right-padded with zeros.
Thanks to jtgrassie for the link to the source code where this is written.