user44524: Say there're 3 people (A,B,C) involving into a 2 of 3 multisig scenario. If A & B agree to sign a transaction, what steps they should take? My guess is:

A creates a transaction with the multisig address, signs it with A's private key.
A gets the raw transaction above, somehow (via email or something else) manually sends it to B.
B signs it and broadcasts to the whole Bitcoin network.


user3697: Not exactly.
1.
First, you need to create a receiving address that holds your "2 of 3 spendable" funds.
For that, you need three pubkeys (pubA, pubB and pubC).
2.
Form a multisig script/address with those three pubkeys.
You can use Bitcoin Cores call addmultisigaddress nrequired ["key",...]. 
All three participants should do that with the exact same order of the pubkeys.
addmultisigaddress 2 <pubA> <pubB> <pubC>
This will spitt out a multisig address.
The 2 stands for how many signatures are required to sign the input later.
If you want the redeem-script (expert users), call validateaddress <newmultisig-addr>
(there is a string object called script)
3.
Receive coins with your new created multisig address.
4.
Spending the coins/inputs requires now 2 signatures. If you use bitcoin-core, you need to create a (raw)transaction spending that particular input.
For that, you need to know the transaction-id and the output index of the received coin you want to spend.
Do something like
 createrawtransaction 
      '[{
         "txid": "8b9123963a3bbeedac1469daf6111929286e57128812dc08e83a94a3c4e76e3e", 
          "vout":0
       }]'
       '{"<newaddress>": <amount>}'

You will get a raw transaction which you then can sign (on your side, first signature or two required).
signrawtransaction <hex from createrawtransaction>

You can pass the partial signed transaction to other participants and let them so the same thing:
signrawtransaction <hex from partial signed transaction>

Details:
If you use addmultisigaddress you don't need to pass around the reedem-script and signtransaction's parameters are much simpler.

44524: <p>Say there're 3 people (A,B,C) involving into a 2 of 3 multisig scenario. If A &amp; B agree to sign a transaction, what steps they should take? My guess is:</p>

<ol>
<li>A creates a transaction with the multisig address, signs it with A's private key.</li>
<li>A gets the raw transaction above, somehow (via email or something else) manually sends it to B.</li>
<li>B signs it and broadcasts to the whole Bitcoin network.</li>
</ol>
 3697: <p>Not exactly.</p>

<p><strong>1.<br /></strong>
First, you need to create a receiving address that holds your "2 of 3 spendable" funds.
For that, you need three pubkeys (pubA, pubB and pubC).</p>

<p><strong>2.<br /></strong>
Form a multisig script/address with those three pubkeys.
You can use Bitcoin Cores call <code>addmultisigaddress nrequired ["key",...]</code>. 
All three participants should do that with the exact same order of the pubkeys.</p>

<p><code>addmultisigaddress 2 &lt;pubA&gt; &lt;pubB&gt; &lt;pubC&gt;</code>
<strong>This will spitt out a multisig address.</strong>
The 2 stands for how many signatures are required to sign the input later.</p>

<p>If you want the redeem-script (expert users), call <code>validateaddress &lt;newmultisig-addr&gt;</code>
(there is a string object called <code>script</code>)</p>

<p><strong>3.<br /></strong>
Receive coins with your new created multisig address.</p>

<p><strong>4.<br /></strong>
Spending the coins/inputs requires now 2 signatures. If you use bitcoin-core, you need to create a (raw)transaction spending that particular input.
For that, you need to know the transaction-id and the output index of the received coin you want to spend.</p>

<p>Do something like</p>

<pre><code> createrawtransaction 
      '[{
         "txid": "8b9123963a3bbeedac1469daf6111929286e57128812dc08e83a94a3c4e76e3e", 
          "vout":0
       }]'
       '{"&lt;newaddress&gt;": &lt;amount&gt;}'
</code></pre>

<p>You will get a raw transaction which you then can sign (on your side, first signature or two required).</p>

<pre><code>signrawtransaction &lt;hex from createrawtransaction&gt;
</code></pre>

<p>You can pass the partial signed transaction to other participants and let them so the same thing:</p>

<pre><code>signrawtransaction &lt;hex from partial signed transaction&gt;
</code></pre>

<p><strong>Details:</strong>
If you use <code>addmultisigaddress</code> you don't need to pass around the reedem-script and <code>signtransaction</code>'s parameters are much simpler.</p>
