Using Cold Electrum with Core in watch mode

11 replies 313 views
hawk21Member
Posts: 2 · Reputation: 124
#1Apr 13, 2026, 02:26 AM
Hey everyone. So I've been looking into this cold storage idea, and it seems like a pretty solid option for keeping things safe. I'm trying to figure out how to set up my offline wallet in watch mode on Bitcoin Core so I can sign transactions. From what I've gathered, I need to import the public key. This seems like it should be a straightforward process, but I can't seem to find any good info on it. If anyone has some pointers or resources, I'd really appreciate it. Thanks!
6 Reply Quote Share
sam_walletFull Member
Posts: 104 · Reputation: 365
#2Apr 13, 2026, 06:06 AM
Go to wallet > (wallet) information, you'll get your master public key which will be used to open a watch-only wallet. When creating a wallet, use the option to "use a master key" then enter the xpub to create a watching-only wallet. This is assuming you already have your main wallet. It's the main wallet (for signing) which is offline, the watching-only wallet is connected to the internet to be able broadcast transactions m This is the resource I was able to find, https://bitcointalk.org/index.php?topic=5392824.0 Let me know if it helps.
1 Reply Quote Share
silentchainHero Member
Posts: 473 · Reputation: 2317
#3Apr 13, 2026, 06:35 AM
As I got it you have the cold Electrum and wanna create watch only wallet on the base of Bitcoin Core. Electrum is still based on the old "key pairs" architecture while modern versions of Bitcoin Core utilize descriptors when creating wallets in fact starting from v 23.0 it's the default wallet is from the descriptors class. Thus, you cannot import directly Electrum's public  key into watch only Bitcoin Core. What you need is to create descriptor relevant to that key and import this descriptor into Bitcoin Core. Good reading on this stuff. 1) [HOW-TO] Import privkeys into a Bitcoin Core descriptor wallet 2) Multiple responses of  Pieter Wuille  here and here
3 Reply Quote Share
yield_forkFull Member
Posts: 162 · Reputation: 728
#4Apr 15, 2026, 01:27 AM
Let's say I want to import an extended public key from an electrum wallet. I get the following xpub in p2wpkh format. However, to import this into bitcoin core, recreating the same set of addresses, I need to convert this extended public key to legacy format, that is, from zpub to xpub. Here's the script to solve this: Open the electrum console. If the console tab is not visible, go to the View tab and check the "Console" option. In the console, run the following command (replace the example zpub with yours): The result will be your same extended public key, but in legacy format compatible with Bitcoin Core: Now you need to get the XPUB checksum for both the receiving and change addresses so that you can assemble the descriptors using the getdescriptorinfo command. Let's start by getting the XPUB checksum for the receiving addresses, by typing the following command (replace xpub with yours): The descriptor will be located at: Note the generated checksum: #0f874rex (Obviously it will be different in yours). Now for the change descriptor: Note down the checksum of the descriptor we will use for change. Now that you have obtained the checksum of both you can assemble the descriptors, but first, create a new wallet in bitcoin core, check the option "disable private keys" so that it is possible to import wallets for watch_only in Bitcoin Core (Bitcoin core has differentiation and separates the files for wallets with private keys and for watch_only wallets with only public keys). The wallet in descriptor format is created by default in Bitcoin Core if you are using the updated version. Assembling the descriptors Create the descriptor using the following command (replace the example xpubs and #checksum with yours), you can import one descriptor of each or import everything at once, I will leave both paths for you to choose: 1. Import descriptors individually Receiving addresses Change addresses 2. Import all descriptors at once (Receiving and Change) To simplify, you can import both descriptors at the same time: When you import both, you will get the following return: Ignore the warning, as it is saying that you have not defined an address range limit, however this is optional, by default it will import with 1000 addresses from each descriptor if you do not define a limit, but if you want, you can use the "range" parameter and manually define the amount of addresses as I show below. 3. Adjust the address range (optional) To set a range limit, add the "range" parameter in the descriptor with a range limit, e.g. starting from index 0 (the first address) to 999 (to add up to 1000 which is the default used in Bitcoin Core) example: "range":[0,999] So the final result of the descriptors with the range would be like this:
4 Reply Quote Share
coin_sigmaLegendary
Posts: 1275 · Reputation: 5553
#5Apr 16, 2026, 08:18 PM
I don't think it's a good idea to make Bitcoin Core as your watch-only wallet with an Electrum public key. Why not use an offline Electrum wallet and copy the master public key from Electrum, install Electrum on an online device, and import the public key for the watch-only wallet? This doesn't need extensive resources like on Bitcoin Core because every time you want to check your watch-only wallet from Bitcoin Core, it needs to be reindexed to get updated blocks or the current status of your wallet. Unlike if you use an Electrum watch-only wallet, you don't need to reindex and redownload the latest blocks in order to get the latest status of your wallet.
3 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#6Apr 16, 2026, 10:59 PM
It's a good idea actually, he don't have to rely on third-party servers to sync which is very bad for his privacy. He can set-up his own Electrum server to connect to, but that'll just create unnecessary bloat to his setup since he'll be installing Bitcoin Core and sync it anyways. So using Core directly as watch-only wallet makes sense unless he's going for Electrum's features that's not present in Core. Good, that is for Bitcoin Core (offline) to Bitcoin Core (online) but the replies are essential on what values to include when importing the descriptor. For Electrum to Bitcoin Core, refer to this resource: https://bitcointalk.org/index.php?topic=5399337.msg60178631#msg60178631
2 Reply Quote Share
silentchainHero Member
Posts: 473 · Reputation: 2317
#7Apr 17, 2026, 03:32 AM
One can ease such kind of task by letting Sparrow wallet which is from descriptors class to  build the relevant descriptor for you. 1) Import Electrum-wallet-file into Sparrow. 2) Look at xpub/zpub field located in Sparow's-Settings-window relevant to  imported Electrum. 3) The content of this field equals to descriptor of your interest. 4) Import this descriptor into Bitcoin Core. Shazam!
1 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#8Apr 18, 2026, 08:13 AM
It only contains the xpub, using "convert_xkey" command is way simpler than importing the wallet file to another client IMO. For the actual descriptor below 'Script Policy': Clicking "Edit" will show it, however, its a combined receiving and change address descriptor and its checksum is computed as is. Using it will still require to separate descriptor with chain_index '0' external and '1' internal, then re-calculate the checksum of each via getdescriptorinfo command. So overall, it just added extra steps.
1 Reply Quote Share
hawk21Member
Posts: 2 · Reputation: 124
#9Apr 18, 2026, 01:39 PM
First command worked but second produced this error.. During handling of the above exception, another exception occurred: Traceback (most recent call last):   File "/usr/lib/python3/dist-packages/electrum/gui/qt/console.py", line 262, in exec_command     exec(command, self.namespace, self.namespace)   File "<string>", line 1     getdescriptorinfo "wpkh(xpub68kjFJkf..............tr65hyjtdj5d/0/*)"                       ^ SyntaxError: invalid syntax >>> Thanks for these reply's!! I'm sure there's a working solution in there somewhere. Could be an older version of Electrum? something else? Gonna try upgrade anyway.
4 Reply Quote Share
gr3g.0rbitHero Member
Posts: 1025 · Reputation: 2646
#10Apr 18, 2026, 02:25 PM
He forgot to mention that getdescriptorinfo command should be done in Bitcoin Core's console or Bitcoin-cli. Refer to the link in my reply for reference in case something in the instructions didn't work, like this.
4 Reply Quote Share
SwiftMinerSenior Member
Posts: 259 · Reputation: 1036
#11Apr 18, 2026, 08:27 PM
This exactly what I was thinking. In my opinion Op's wallet should be created with ELECTRUM and also the watch only wallet should be initiated via Electrum too. Though it's possible to watch an address the best option in a case like this is to make use of a public key like a couple of other persons have said . It's literally like having your fully loaded and synced wallet but without any keys to sign a transaction. That's true if OP wanted to do so but what are the odds? Do you think that OP making use of a Good VPN he would be safe ? Or will connection to other nodes still be much of a big deal too.
1 Reply Quote Share
falcon_wizardSenior Member
Posts: 123 · Reputation: 896
#12Apr 19, 2026, 01:45 AM
He would be safe anyways if you are talking about the safety of his coins. Whether he uses a public server, his own, or connects via VPN or Tor, his bitcoin remains safe. Each Electrum node he connects to will record information, such as the user's IP address, wallet balance, and all addresses associated with the wallet. Public Electrum nodes record the same information if you use a proxy or Tor with the only difference being a different IP address. However, if OP has his own Electrum server and only uses Electrum through it, no third party will see the above mentioned info. It's a question of privacy, not security.
3 Reply Quote Share

Related topics