03 / Wallet backends
The node that validates can serve your wallets.
Electrum and Esplora run inside rbitcoin, using the same archive as the node. A subset of Bitcoin Core JSON-RPC is also available. Choose the interface your wallet needs; no separate indexer is required.
Choose the interface your client needs
- Electrum
- Confirmed and unconfirmed history, transaction broadcast, fee information, silent payment tweaks, and Electrum 1.6 package broadcast.
- Esplora
- A REST interface for wallet clients. The same API can replace a mempool or Blockstream electrs HTTP backend. Queries use an exact address, scripthash, transaction, or block id. It is an API, not a bundled graphical block explorer.
- JSON-RPC
- Chain, mempool, raw-transaction and decode methods, fee estimates, a block-template selector, and an optional Stratum v2 template provider. A subset of the Bitcoin Core interface.
Your wallet keeps your keys and signs transactions. rbitcoin supplies chain data and broadcasts transactions. Check the compatibility contract before pointing an existing integration at it.
Connect a wallet
Address history needs --sh-index, the optional wallet index. It is off by
default. Electrum and Esplora still start without it. Address and scripthash calls then
answer scripthash index disabled. Transaction, block, and fee calls keep
working.
Continue from the Linux signet setup. Stop the node with Ctrl-C, then restart it with the same data directory:
./rbitcoin-node --datadir ./datadir-signet \
--network signet --listen 127.0.0.1:38333 \
--milestone 0 --sh-index \
--electrum-listen 127.0.0.1:50001
Leave the node running while it syncs and builds the wallet index. Electrum waits until that index is ready; reaching the chain tip alone is not enough. Enabling the index after a mainnet sync can take hours.
In a signet-capable wallet on the same machine, select signet and set its Electrum
server to 127.0.0.1, port 50001, using plain TCP (SSL/TLS
off). These settings are for a local connection. A wallet on another device needs the
remote-access setup.
Silent payments
rbitcoin serves silent payment tweaks over Electrum and supports Frigate scan-key subscriptions. Your wallet must support the matching protocol; ordinary Electrum support is not enough. See the client compatibility notes.
Using JSON-RPC
TCP JSON-RPC authenticates with a Bearer token from {datadir}/rpc.token. A
Unix socket uses filesystem access control. --rpc-cookie-file accepts a
Bitcoin Core cookie on TCP for clients that expect one, including an unmodified mempool
backend. The node does not create that file, and it has no --rpcuser
setting.
There is no wallet RPC surface or coins-database UTXO scan. A matching method name is not a guarantee that every existing Core integration will work unchanged. Read the method and authentication reference.
Remote access
Keep application listeners on loopback for local use. For a wallet on another device, use a secure tunnel or configure a TLS proxy and access controls. The node itself serves plain TCP or HTTP.
See the operator guide for deployment examples. Keep RPC tokens private and restrict who can reach your services.