Back to Blog
How to Connect Cove Wallet to Your Personal Electrum Server
·6 min read

How to Connect Cove Wallet to Your Personal Electrum Server

Step-by-step guide to connecting Cove Wallet to your own Electrum server for better Bitcoin privacy and full node sovereignty.

Every time you check your Bitcoin balance using a default server, you're telling someone else's computer about your addresses. For users who run their own full nodes, this defeats much of the privacy benefit. Connecting Cove Wallet to your personal Electrum server closes that gap, keeping your transaction lookups entirely within your own infrastructure.

This guide walks through the complete process, from preparing your Electrum server to configuring Cove and troubleshooting common issues.

Why Connect to Your Own Server

When a Bitcoin wallet queries a public Electrum server, that server learns which addresses belong together in your wallet. Over time, this creates a detailed picture of your holdings and spending patterns. The server operator might be trustworthy, or they might log everything, or their server might be compromised. You simply don't know.

Running your own Electrum server means those queries never leave your network. Your full node validates the blockchain independently, and your Electrum server provides address lookups only to you. This combination gives you both verification sovereignty (you're not trusting anyone else's copy of the blockchain) and query privacy (nobody sees what addresses you're checking).

Cove Wallet supports this setup directly through its node settings, making it one of the more straightforward mobile wallets for connecting to personal infrastructure.

Prerequisites

Before configuring Cove, you need a working Electrum server. The most common setup involves:

A synced Bitcoin Core node. Your full node must be fully synchronized with the network. Initial sync can take hours to days depending on your hardware and internet connection.

Electrum Personal Server (EPS) or equivalent. EPS is a lightweight implementation that indexes only your own addresses rather than the entire blockchain. This makes it practical to run on modest hardware like a Raspberry Pi. Alternatives include Electrs and ElectrumX, which index everything and require more resources.

Network accessibility. Your Electrum server needs to be reachable from wherever you'll use Cove. For home setups, this typically means either being on the same local network or setting up Tor for remote access.

The standard port for Electrum servers with SSL is 50002. If you're using a non-standard configuration, note your specific port.

Setting Up Electrum Personal Server

If you already have EPS running, skip to the Cove configuration section. For those still setting up, here's the essential process:

First, create a dedicated wallet in Bitcoin Core for EPS to use:

```

bitcoin-cli createwallet electrumpersonalserver

```

Next, configure EPS by editing its config.ini file. You'll need to provide your Bitcoin Core RPC credentials and your wallet's master public keys (xpubs or zpubs). EPS only monitors addresses derived from keys you explicitly provide, which is why it stays lightweight.

The RPC connection details typically look like:

```

[bitcoin-rpc]

rpc_user = your_rpc_username

rpc_password = your_rpc_password

rpc_port = 8332

```

Start EPS and let it scan for historical transactions related to your addresses. This initial scan can take a while depending on how many addresses you're monitoring.

Configuring Cove Wallet

With your Electrum server running, the Cove side is straightforward:

  1. Open Cove Wallet and navigate to the settings menu
  2. Select "Node settings" (or similar, depending on app version)
  3. Choose "Custom Electrum" as your connection type
  4. Enter your server address in the format: `IP:port` or `hostname:port`

For local network connections, this might be `192.168.1.50:50002`. For Tor connections, you'd use your .onion address followed by the port and protocol indicator: `youronionaddress.onion:50002:s` (the 's' indicates SSL).

Tap connect, and Cove should establish a connection to your server.

Using Tor for Remote Access

If you want to connect to your home server while away from your local network, Tor is the cleanest solution. It avoids port forwarding complications and keeps your home IP address private.

Configure your Electrum server to expose a Tor hidden service, then use that .onion address in Cove. The wallet supports Tor routing for these connections, though you may need to have Tor enabled on your device.

Troubleshooting Common Issues

Connection refused errors usually mean the Electrum server isn't running, isn't listening on the expected port, or a firewall is blocking the connection. Verify EPS is actually running with `ps aux | grep electrum` on Linux systems. Check that port 50002 (or your configured port) is open.

Certificate errors occur when SSL configuration doesn't match what Cove expects. EPS generates a self-signed certificate by default. Ensure you're specifying SSL in your connection string if your server requires it.

Transactions not appearing after connecting to your own server typically means EPS doesn't know about the addresses in question. Add the relevant master public key to your EPS config and rescan. Remember, EPS only indexes addresses you explicitly configure.

Slow performance with EPS is rare since it only monitors your addresses, but ensure your Bitcoin Core node isn't still syncing or under heavy load from other processes.

Tor connection timeouts happen when the .onion address is unreachable or Tor routing isn't working on your device. Test the .onion address from another Tor-enabled application to isolate whether the issue is with Cove or your Tor setup generally.

Security Considerations

Connecting to your own server improves privacy substantially, but introduces operational security responsibilities:

Keep your node updated. Both Bitcoin Core and your Electrum server software receive security patches. Running outdated versions can expose you to known vulnerabilities.

Secure your RPC credentials. Anyone who can access your Bitcoin Core RPC interface can query your node. Use strong passwords and limit network exposure.

Consider physical security. If someone gains physical access to your node hardware, they could potentially extract wallet information. This matters more for hot wallet setups than for watch-only configurations where Cove only holds public keys.

Backup your EPS configuration. If you lose the master public keys in your EPS config, you'll need to re-add them and rescan to restore functionality.

The Tradeoffs

Running your own infrastructure isn't free. You're taking on maintenance responsibility, electricity costs, and the complexity of keeping everything running. If your node goes down while you're traveling, you won't be able to check balances or broadcast transactions until you fix it (or temporarily switch to a public server).

For users who prioritize convenience over privacy, public Electrum servers work fine and require zero maintenance. The privacy cost is real but abstract for many people.

The middle ground involves using a trusted node package like RaspiBolt, BTCPay Server, or similar projects that bundle Bitcoin Core with an Electrum server in a more managed configuration. These reduce (but don't eliminate) the operational burden.

Moving Forward

Once connected, Cove functions identically to before, just with your own infrastructure handling the backend queries. You can still use all of the wallet's features, including coin control, custom fees, and hardware wallet integration. The difference is entirely in where your address lookups go.

For users managing multiple wallets or running complex UTXO strategies, this setup pairs well with Cove's BIP329 label support, letting you maintain consistent transaction notes while keeping everything off third-party servers.

The initial setup takes effort, but the result is a genuinely private mobile Bitcoin wallet backed by your own full node, a setup that would have seemed unreasonably complex just a few years ago.