Skip to main content

Electrum Server

Rebar Data operates a full Electrum protocol server, giving lightweight wallets and applications efficient access to Bitcoin blockchain data without running a full node.

Capabilities

  • Address history — Full transaction history for any address
  • UTXO queries — Unspent outputs for balance computation
  • Transaction broadcast — Submit signed transactions
  • Block headers — Retrieve and verify headers for SPV validation
  • Fee estimation — Current fee rate estimates
  • Subscriptions — Real-time notifications when an address receives or spends funds

When to Use Electrum

Use CaseRecommended Interface
Wallet backendsElectrum
Real-time balance monitoringElectrum (subscriptions)
Payment processingElectrum
SPV verificationElectrum
Metaprotocol queriesREST API
Analytics and batch queriesREST API or GraphQL

Connection Details

HostELECTRUM_HOST_PLACEHOLDER
PortELECTRUM_PORT_PLACEHOLDER
ProtocolSSL

Connecting Your Wallet

Electrum Wallet

  1. Open Electrum and go to Tools > Network
  2. Uncheck Select server automatically
  3. Enter ELECTRUM_HOST_PLACEHOLDER as the server and ELECTRUM_PORT_PLACEHOLDER as the port
  4. Click Close — the wallet will reconnect using Rebar's server

Sparrow Wallet

  1. Open Sparrow and go to File > Preferences > Server
  2. Select Private Electrum Server
  3. Enter ELECTRUM_HOST_PLACEHOLDER for the URL and ELECTRUM_PORT_PLACEHOLDER for the port
  4. Ensure Use SSL is enabled
  5. Click Test Connection, then Close

BlueWallet

  1. Open BlueWallet and go to Settings > Network > Electrum Server
  2. Enter ELECTRUM_HOST_PLACEHOLDER:ELECTRUM_PORT_PLACEHOLDER
  3. Save and restart the app

BDK (Bitcoin Dev Kit)

Configure BDK's Electrum backend to point at Rebar's server:

use bdk_electrum::electrum_client::Client;

let client = Client::new("ssl://ELECTRUM_HOST_PLACEHOLDER:ELECTRUM_PORT_PLACEHOLDER")?;

JavaScript / TypeScript

Using the electrum-client-js library:

import { ElectrumClient } from "electrum-client-js";

const client = new ElectrumClient(
"ELECTRUM_HOST_PLACEHOLDER",
ELECTRUM_PORT_PLACEHOLDER,
"ssl"
);

await client.connect();