<p>I know this is old, but I'd like to comment from the point of view of more recent bitcoin code.
Both <em>createmultisig</em> and <em>addmultisigaddress</em> now output the redeem script.</p>
<p>Using the redeem script seems only necessary for manually signing a raw transaction with <em>signrawtransactionwithkey</em>, which appears redundant (for ordinary usage), as the set of PSBT commands do all of that automatically.
<em>createpsbt</em>, <em>decodepsbt</em>, <em>walletprocesspsbt</em>, <em>finalizepsbt</em>, <em>sendrawtransaction</em>.</p>
<p>This is what brought me here searching for the practical difference between createmultisig and addmultisigaddress. I think what we are left with is only whether it adds it to your wallet. I was confused, because at first it appears that you need to create it and then add it, but in practice you can go straight to addmultisigaddress.</p>

CC BY-SA 4.0
2022-02-05T14:08:03.553Z
2022-02-05T14:08:03.553Z
Sean Phillips
<ul>
<li><p><a href="https://bitcoin.org/en/developer-reference#createmultisig" rel="nofollow"><code>createmultisig</code></a> creates a P2SH multisig address for use in raw transactions.  It outputs the redeem script because you'll need that to spend any payments sent to the P2SH address.</p></li>
<li><p><a href="https://bitcoin.org/en/developer-reference#addmultisigaddress" rel="nofollow"><code>addmultisigaddress</code></a> adds a P2SH multisig address to your Bitcoin Core wallet, allowing you to track and spend payments received by that address.  It doesn't output the redeem script because Bitcoin Core stores that for you.  (You can retrieve it later with <a href="https://bitcoin.org/en/developer-reference#validateaddress" rel="nofollow"><code>validateaddress</code></a>.)</p></li>
</ul>

CC BY-SA 3.0
2015-02-15T01:09:32.243Z
Of course, that makes perfect sense. I've noticed the new v0.10 help function partitions the 2 functions under the Tx and Wallet categories, respectively.  The categories would've clarified the query for me as past versions of help were not clearly delineated
Wizard Of Ozzie
CC BY-SA 3.0
2015-02-14T14:51:22.950Z
2015-02-14T14:51:22.950Z
David A. Harding
<p>What is the functional difference between <em>createmultisig</em> and <em>addmultisigaddress</em> in bitcoincore (v 0.10)? </p>

<p>To be clear, I understand how both function. ie. <code>multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."]</code>  (where <code>n</code> is the n of m value, and a JSON list of eiher hex pubkeys or Base58 addresses follows). </p>

<p>However, the output for the <em>multisigCmd</em> (<em>createmultisig</em> and <em>addmultisigaddress</em>, respectively) is:</p>

<ul>
<li><strong>createmultisig:</strong> <code>==&gt; 3outputEqualsPay2scriptBTCAddress</code>, <code>script as hex</code></li>
<li><strong>addmultisigaddress:</strong> <code>==&gt; 3outputEqualsPay2scriptBTCAddress</code> (<em>no script!</em>)</li>
</ul>

<p>Both commands give identical output addresses (ie <code>3outputEqualsPay2scriptBTCAddress</code>) when the same JSON data input is used. So the difference, really, is only that the former outputs the redeeming hex script. Am I missing something? Why the need for 2 commands rather than, for example, a single command with a <code>-hex_script_output</code> flag?</p>

<bitcoin-core><multi-signature><raw>
Difference between createmultisig and addmultisigaddress?
Wizard Of Ozzie
# Difference between createmultisig and addmultisigaddress?

(Asked by: username_0 on 2015-02-14)

What is the functional difference between *createmultisig* and *addmultisigaddress* in bitcoincore (v 0.10)?

To be clear, I understand how both function. ie. `multisigCmd n ["address1 public key as hex", "address in Base58 format", "more JSON entries..."]` (where `n` is the n of m value, and a JSON list of eiher hex pubkeys or Base58 addresses follows).

However, the output for the *multisigCmd* (*createmultisig* and *addmultisigaddress*, respectively) is:

* **createmultisig:** `==> 3outputEqualsPay2scriptBTCAddress`, `script as hex`
* **addmultisigaddress:** `==> 3outputEqualsPay2scriptBTCAddress` (*no script!*)

Both commands give identical output addresses (ie `3outputEqualsPay2scriptBTCAddress`) when the same JSON data input is used. So the difference, really, is only that the former outputs the redeeming hex script. Am I missing something? Why the need for 2 commands rather than, for example, a single command with a `-hex_script_output` flag?

**Tags:** bitcoin-core, multi-signature, raw


---

## 2 answers

### Answer by username_2 on 2015-02-14. Score: 4 | Accepted answer

* [`createmultisig`](https://bitcoin.org/en/developer-reference#createmultisig) creates a P2SH multisig address for use in raw transactions. It outputs the redeem script because you'll need that to spend any payments sent to the P2SH address.
* [`addmultisigaddress`](https://bitcoin.org/en/developer-reference#addmultisigaddress) adds a P2SH multisig address to your Bitcoin Core wallet, allowing you to track and spend payments received by that address. It doesn't output the redeem script because Bitcoin Core stores that for you. (You can retrieve it later with [`validateaddress`](https://bitcoin.org/en/developer-reference#validateaddress).)

> **Comments:**
> **username_0**: Of course, that makes perfect sense. I've noticed the new v0.10 help function partitions the 2 functions under the Tx and Wallet categories, respectively.  The categories would've clarified the query for me as past versions of help were not clearly delineated  

---

### Answer by username_1 on 2022-02-05. Score: 1

I know this is old, but I'd like to comment from the point of view of more recent bitcoin code.
Both *createmultisig* and *addmultisigaddress* now output the redeem script.

Using the redeem script seems only necessary for manually signing a raw transaction with *signrawtransactionwithkey*, which appears redundant (for ordinary usage), as the set of PSBT commands do all of that automatically.
*createpsbt*, *decodepsbt*, *walletprocesspsbt*, *finalizepsbt*, *sendrawtransaction*.

This is what brought me here searching for the practical difference between createmultisig and addmultisigaddress. I think what we are left with is only whether it adds it to your wallet. I was confused, because at first it appears that you need to create it and then add it, but in practice you can go straight to addmultisigaddress.


---

