Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

Can somebody help me with step-by-step list of how to create a multi signature 2-of-3 transaction?

share|improve this question
It's worth mentioning that this other question bitcoin.stackexchange.com/questions/3557/… doesn't appear to be a duplicate because it relates to the Bitcoin client app –  Highly Irregular May 17 '12 at 22:14
Do you mean create the raw transaction, or do you just mean that you'd like to send such a transaction? If the former, then look into OP_CHECKMULTISIG and BIP-11; if the latter, then you may want to use an online wallet such as blockchain.info, which I believe handles this. –  Daniel H Aug 28 '12 at 5:42
It's been a year since this was asked. What gives? See also bitcointalk.org/index.php?topic=195168.0 –  ripper234 May 4 '13 at 19:26
See also - bitcoin.stackexchange.com/questions/23889/… –  ripper234 Mar 23 '14 at 10:43
To build a multisig transaction, the easiest API I know of: dev.blockcypher.com/#multisig –  Matthieu Jul 1 '14 at 19:54

2 Answers 2

It seems some partial implementation exists. Quoting Gavin:

Generate a multisig address:

  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 multisignature 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).

Spend from a multisig address:

This isn't implemented yet (RPC calls mechanism). You could gather up all addresses into one wallet, and then you would be able to spend the funds.

Update March 2014

Multisig is still hard. I believe the SX library is an easy tool (by people like Vitalik Buterin and Amir Taaki) for working with multisig, but I haven't tested that myself.

share|improve this answer

Actually, both receiving funds at and spending funds from a multi-sig address is already supported.

You can find the code to do so, plus comments, by Gavin:


share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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