<p>You aren't doing anything wrong. This behavior is expected for Bitcoin Core 0.18. The <a href="https://github.com/bitcoin/bitcoin/pull/15024" rel="nofollow noreferrer">Pull Request</a> allowing private keys to be derived from descriptors and imported with <code>importmulti</code> was merged recently. This functionality will be included in Bitcoin Core 0.19.</p>

CC BY-SA 4.0
2019-11-18T03:49:25.143Z
I am testing this with 0.19.0 rc3 but its still behaving the same way, forcing the wallet to be cold. Any idea why?
Fontaine
CC BY-SA 4.0
2019-11-18T16:19:16.653Z
Did you import the descriptor with the tprv of the tpub? `getdescriptorinfo` returns the descriptor with only pubkeys. To get the checksum for the private key descriptor, check the `checksum` field and add it to your descriptor.
Ava Chow
CC BY-SA 4.0
2019-06-18T03:16:47.253Z
2019-06-18T03:16:47.253Z
Ava Chow
<p>When I call: </p>

<pre><code>bitcoin-cli getdescriptorinfo "pkh(tprv8iDvhA6eaMDbRuH3D2DTNuH6N6LvMTVrcv7z6sVxyyYvThSaCSa3i3qFVqUgVL4NbVkACxjx3KPWLoP5jvDU3i16hjTnzEFnZuqsnTJ5F4n/*)"
</code></pre>

<p>it returns:</p>

<pre><code>{
  "descriptor": "pkh(tpubDEuxqa8tiiuGKNJq6ft3nJwCw7rrWngmCDimPPYGQFMKJBhLpqPdtYT7fzuDbk1AppxRdYjzeUrLaVNQRP7EYghzLDBMguY2LHHHeHMtzhm/*)#0wkkha79",
  "isrange": true,
  "issolvable": true,
  "hasprivatekeys": true
}
</code></pre>

<p>I then call:</p>

<pre><code>bitcoin-cli importmulti '[{ "desc": "pkh(tpubDEuxqa8tiiuGKNJq6ft3nJwCw7rrWngmCDimPPYGQFMKJBhLpqPdtYT7fzuDbk1AppxRdYjzeUrLaVNQRP7EYghzLDBMguY2LHHHeHMtzhm/*)#0wkkha79", "timestamp": "now", "range": 100, "watchonly": false, "label": "Hot Storage", "keypool": false, "rescan": false }]'

</code></pre>

<p>It returns:</p>

<pre><code>{
    "success": true,
    "warnings": [
      "Some private keys are missing, outputs will be considered watchonly. If this is intentional, specify the watchonly flag."
    ]
  }

</code></pre>

<p>I am importing an xprv because I want to import the private keys, but they always get imported as watch-only. </p>

<p>Why is this? Is it intentional?</p>

<bitcoin-core><json-rpc><bitcoin-cli>
When I use importmulti with an xprv it never imports the private keys. What am I doing wrong?
Fontaine
# When I use importmulti with an xprv it never imports the private keys. What am I doing wrong?

(Asked by: username_0 on 2019-06-18)

When I call: 
bitcoin-cli getdescriptorinfo "pkh(tprv8iDvhA6eaMDbRuH3D2DTNuH6N6LvMTVrcv7z6sVxyyYvThSaCSa3i3qFVqUgVL4NbVkACxjx3KPWLoP5jvDU3i16hjTnzEFnZuqsnTJ5F4n/*)"

it returns:
{
  "descriptor": "pkh(tpubDEuxqa8tiiuGKNJq6ft3nJwCw7rrWngmCDimPPYGQFMKJBhLpqPdtYT7fzuDbk1AppxRdYjzeUrLaVNQRP7EYghzLDBMguY2LHHHeHMtzhm/*)#0wkkha79",
  "isrange": true,
  "issolvable": true,
  "hasprivatekeys": true
}

I then call:
bitcoin-cli importmulti '[{ "desc": "pkh(tpubDEuxqa8tiiuGKNJq6ft3nJwCw7rrWngmCDimPPYGQFMKJBhLpqPdtYT7fzuDbk1AppxRdYjzeUrLaVNQRP7EYghzLDBMguY2LHHHeHMtzhm/*)#0wkkha79", "timestamp": "now", "range": 100, "watchonly": false, "label": "Hot Storage", "keypool": false, "rescan": false }]'


It returns:
{
    "success": true,
    "warnings": [
      "Some private keys are missing, outputs will be considered watchonly. If this is intentional, specify the watchonly flag."
    ]
  }


I am importing an xprv because I want to import the private keys, but they always get imported as watch-only. 
Why is this? Is it intentional?

**Tags:** bitcoin-core, json-rpc, bitcoin-cli


---

## 1 answers

### Answer by username_1 on 2019-06-18. Score: 2 | Accepted answer

You aren't doing anything wrong. This behavior is expected for Bitcoin Core 0.18. The [Pull Request](https://github.com/bitcoin/bitcoin/pull/15024) allowing private keys to be derived from descriptors and imported with `importmulti` was merged recently. This functionality will be included in Bitcoin Core 0.19.

> **Comments:**
> **username_0**: I am testing this with 0.19.0 rc3 but its still behaving the same way, forcing the wallet to be cold. Any idea why?  
> **username_1**: Did you import the descriptor with the tprv of the tpub? `getdescriptorinfo` returns the descriptor with only pubkeys. To get the checksum for the private key descriptor, check the `checksum` field and add it to your descriptor.  

---

