I know from using bip39 to build wallets, that each receiving address and corresponding public address does have a base58 private key behind it. And if I know this private key, I can sweep it separate and apart from my HW wallet, and I can move any funds stored there. I've done it.

Now my question: In say a 2 of 3 multi-sig setup, do such private keys (base 58 or even Hexadecimal) exist under the hood. And if I possessed these, could they be combined together somehow to sign a transaction outside of the conventional bip39 wallet structure?


1 Answer 1


In say a 2 of 3 multi-sig setup, do such private keys (base 58 or even Hexadecimal) exist under the hood.

Any cryptographic key of any type, Bitcoin or other, on a computer, is representable in hexadecimal, in octal, in binary, in base58, in base64 and in any other representation used on computers. The keys are just numbers and the various encodings listed are just different visual representations of the same number.

From what I have read, a multisig setup uses the private and public keys that are usable for ordinary transactions.

In https://en.bitcoin.it/wiki/Multi-signature it says:

Creating a multi-signature address with Bitcoin-Qt

A 2-of-3 multisig address can be created by following these steps:

  1. Gather (or generate) 3 bitcoin addresses, on whichever machines will be participating, using getnewaddress or getaccountaddress RPC commands (or copy and paste from the GUI).

  2. Get their public keys using the validateaddress RPC command 3 times.

  3. Then create a 2-of-3 multisig address using addmultisigaddress; e.g.,

    bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'

    addmultisigaddress returns the multi-signature address. Be a little careful, the public keys are raw hexadecimal and don't contain checksums like bitcoin addresses do. You can then send funds into that 2-of-3 transaction using the normal sendtoaddress/sendmany RPC commands, or the GUI (or anything that's been updated to recognize multisig addresses)

I think that the suggested use of getnewaddress in step one shows that keys used are the ones we are familiar with from ordinary single-key transactions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.