<ol>
<li><em>Addmultisigaddress 2 <code>[{"address/pubkey of Bitcoincore address", "pubkey of other wallet key"}]</code></em> should return the P2SH address (<a href="https://blockchain.info/address/3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA" rel="nofollow">3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA</a>) and also add <a href="https://blockchain.info/address/3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA" rel="nofollow">3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA</a> to the UTXOs</li>
<li><em>importaddress <code>3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA</code></em> will add the P2SH address to the wallet as <em>WatchOnly</em></li>
</ol>

<p>I'm assuming you're not running a full node, using the <em><code>txindex=1</code></em> flag, so the <em><code>addmultisigaddress</code></em> command is what you're going to need to redeem <a href="https://blockchain.info/address/3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA" rel="nofollow">3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA</a> in Bitcoincore. FYI, <em>createmultisig</em> has the same parameters as <em>addmultisigaddress</em> (<a href="https://bitcoin.org/en/developer-reference%23createmultisig" rel="nofollow">RPC reference</a>) but it's returning the redeem script only; ie it is <em>not</em> adding the P2SH address to the UTXOs.</p>

<p>As mentioned already, for all multisig commands you'll need the full pubkey (hex version, starting with 0x04 or 0x02/03 for compressed). The only reason you can substitute the Base58Check address into Bitcoincore as a public key is because the software retrieves the pubkey from the wallet and substitutes it accordingly.</p>

<p>An alternative way to go about it is by using <em>dumpprivkey</em>/<em>validateaddress</em> to get the Bitcoincore keys required and then import the private key into the other wallet software and sign/redeem with that.</p>

<p><strong><em>EDIT:</em></strong> I've tested out importing non-wallet.dat pubkeys for a multisig P2SH address and have successfully added the Tx to the UTXOs returned by <code>listunspent</code>, with the only difference being that the JSON return data will have <code>spendable: false</code>. I did it as follows:</p>

<ol>
<li><code>addmultisigaddress 2 '["pubkey1", "pubkey2"]'</code></li>
<li>Take the returned P2SH address ...</li>
<li><code>importaddress 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA "TESTING" true</code></li>
<li>Wait for scan to complete</li>
<li>Funded 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA with <code>createrawtransaction</code>/<code>signrawtransaction</code>/<code>sendrawtransaction</code> (but I'm sure you can do it using the GUI</li>
<li><code>listunspent 0</code> will return JSON array (including <code>0</code> confirms) with an object showing <code>redeemScript</code> but with <code>spendable:</code> <em>false</em></li>
<li>You'll need to redeem the Tx using <code>createrawtransaction</code> with the privatekeys passed as parameters to spend this, obviously</li>
</ol>

CC BY-SA 3.0
2015-04-08T07:10:16.420Z
Thanks for the reply. I successfully tested multisig addresses with keys from different wallets on other platforms (coinb.in) but I haven't managed to do so with my bitcoincore install yet, despite following all your suggestion. A problem is that even after importing the address as watchonly (importaddress) I don't see the transactions to the address.
Giulio Prisco
CC BY-SA 3.0
2015-04-08T15:48:00.720Z
I'll take a look ASAP. I'm going from memory. I'm experiencing similar frustration with BIP32/Electrum 2.0.4, although it's a problem for different technical reasons, it's still indicative of how difficult different wallet clients can be with multisig and BIP32/39
Wizard Of Ozzie
CC BY-SA 3.0
2015-04-08T15:52:39.540Z
I think you'll need to rescan your blockchain data, which will take around 5-10 minutes, assuming you're not using a full node with `txindex=1`. When you use *importaddress* it'll rescan by default, however you'll need to ensure you've created the redeemscript with *addmultisigaddress* first. Again, I'll need to confirm this though, as it may be that without both private keys in the wallet, it won't "see" the UTXOs funding the P2SH for the external public key used
Wizard Of Ozzie
CC BY-SA 3.0
2015-04-09T02:18:44.507Z
@GiulioPrisco See edit.
Wizard Of Ozzie
CC BY-SA 3.0
2015-04-06T12:54:36.723Z
2015-04-09T02:29:42.577Z
2015-04-09T02:29:42.577Z
Wizard Of Ozzie
<p>I am learning how to handle multisig. First I created a 2-3 multisig address with all keys from my test wallet (bitcoind on server) and sent money to the new multisig address from another wallet. The transaction shows in the test wallet and I can use the unspent output.</p>

<p>Then I created a 2-2 address with one key from the test wallet and one key from another wallet, and sent money to the new address from another wallet.
The transaction shows on blockchain.info:</p>

<p><a href="https://blockchain.info/tx/910298ae8133cc142009539298b6e2127b2c49960facd3b21470e130d07a1701" rel="nofollow noreferrer">https://blockchain.info/tx/910298ae8133cc142009539298b6e2127b2c49960facd3b21470e130d07a1701</a></p>

<p>but it doesn't show in the test wallet, and the new multisig address has zero balance.</p>

<p>Reading this previous Q/A:</p>

<p><a href="https://bitcoin.stackexchange.com/questions/28146/multisig-doesnt-work-unless-all-keys-were-generated-from-the-current-wallet">Multisig doesn&#39;t work unless all keys were generated from the current wallet?</a></p>

<p>I see that in July 2014 Bitcoin Core only showed transactions to multisig addresses with all keys in its wallet.</p>

<p>Questions:</p>

<p>1) Is that still the case?</p>

<p>2) If so, can I still use the unspent output and how?</p>

<multi-signature><bitcoin-core>
Multisig addresses with keys from different wallets
Giulio Prisco
# Multisig addresses with keys from different wallets

(Asked by: username_0 on 2015-04-06)

I am learning how to handle multisig. First I created a 2-3 multisig address with all keys from my test wallet (bitcoind on server) and sent money to the new multisig address from another wallet. The transaction shows in the test wallet and I can use the unspent output.

Then I created a 2-2 address with one key from the test wallet and one key from another wallet, and sent money to the new address from another wallet.
The transaction shows on blockchain.info:

<https://blockchain.info/tx/910298ae8133cc142009539298b6e2127b2c49960facd3b21470e130d07a1701>

but it doesn't show in the test wallet, and the new multisig address has zero balance.

Reading this previous Q/A:

[Multisig doesn't work unless all keys were generated from the current wallet?](https://bitcoin.stackexchange.com/questions/28146/multisig-doesnt-work-unless-all-keys-were-generated-from-the-current-wallet)

I see that in July 2014 Bitcoin Core only showed transactions to multisig addresses with all keys in its wallet.

Questions:

1) Is that still the case?

2) If so, can I still use the unspent output and how?

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


---

## 1 answers

### Answer by username_1 on 2015-04-06. Score: 1 | Accepted answer

1. *Addmultisigaddress 2 `[{"address/pubkey of Bitcoincore address", "pubkey of other wallet key"}]`* should return the P2SH address ([3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA](https://blockchain.info/address/3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA)) and also add [3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA](https://blockchain.info/address/3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA) to the UTXOs
2. *importaddress `3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA`* will add the P2SH address to the wallet as *WatchOnly*

I'm assuming you're not running a full node, using the *`txindex=1`* flag, so the *`addmultisigaddress`* command is what you're going to need to redeem [3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA](https://blockchain.info/address/3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA) in Bitcoincore. FYI, *createmultisig* has the same parameters as *addmultisigaddress* ([RPC reference](https://bitcoin.org/en/developer-reference%23createmultisig)) but it's returning the redeem script only; ie it is *not* adding the P2SH address to the UTXOs.

As mentioned already, for all multisig commands you'll need the full pubkey (hex version, starting with 0x04 or 0x02/03 for compressed). The only reason you can substitute the Base58Check address into Bitcoincore as a public key is because the software retrieves the pubkey from the wallet and substitutes it accordingly.

An alternative way to go about it is by using *dumpprivkey*/*validateaddress* to get the Bitcoincore keys required and then import the private key into the other wallet software and sign/redeem with that.

***EDIT:*** I've tested out importing non-wallet.dat pubkeys for a multisig P2SH address and have successfully added the Tx to the UTXOs returned by `listunspent`, with the only difference being that the JSON return data will have `spendable: false`. I did it as follows:

1. `addmultisigaddress 2 '["pubkey1", "pubkey2"]'`
2. Take the returned P2SH address ...
3. `importaddress 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA "TESTING" true`
4. Wait for scan to complete
5. Funded 3MWpeBDwJdk8F7fecZBZ6FHjDJVnGxpnRA with `createrawtransaction`/`signrawtransaction`/`sendrawtransaction` (but I'm sure you can do it using the GUI
6. `listunspent 0` will return JSON array (including `0` confirms) with an object showing `redeemScript` but with `spendable:` *false*
7. You'll need to redeem the Tx using `createrawtransaction` with the privatekeys passed as parameters to spend this, obviously

> **Comments:**
> **username_0**: Thanks for the reply. I successfully tested multisig addresses with keys from different wallets on other platforms (coinb.in) but I haven't managed to do so with my bitcoincore install yet, despite following all your suggestion. A problem is that even after importing the address as watchonly (importaddress) I don't see the transactions to the address.  
> **username_1**: I'll take a look ASAP. I'm going from memory. I'm experiencing similar frustration with BIP32/Electrum 2.0.4, although it's a problem for different technical reasons, it's still indicative of how difficult different wallet clients can be with multisig and BIP32/39  
> **username_1**: I think you'll need to rescan your blockchain data, which will take around 5-10 minutes, assuming you're not using a full node with `txindex=1`. When you use *importaddress* it'll rescan by default, however you'll need to ensure you've created the redeemscript with *addmultisigaddress* first. Again, I'll need to confirm this though, as it may be that without both private keys in the wallet, it won't "see" the UTXOs funding the P2SH for the external public key used  
> **username_1**: @username_0 See edit.  

---

