Skip to content

Set up a Bitcoin Gold (BTG) wallet

This page covers the three realistic options for a Bitcoin Gold (BTG) wallet in 2026:

  1. Bitcoin Gold Core (bitcoin-qt / bgoldd) — a full validating node plus GUI wallet.
  2. ElectrumG — a lightweight SPV wallet that connects to an Electrum server.
  3. Hardware wallets (Trezor, Ledger, KeepKey) that natively support Bitcoin Gold (BTG).

It also explains the one thing you must always do before installing any wallet you didn't compile yourself: verify the SHA-256 checksum. The 2018 supply-chain attack is the reason this is non-negotiable.

Read the Notable security incidents page first

The 2018 compromised Windows installer weakened private-key generation in a way that no virus scanner would catch. The only reliable defence is verifying the SHA-256 checksum of every installer you download against the value published in the official GitHub release notes. This course repeats that step every time.

1. Bitcoin Gold Core (full node + wallet)

What you need

  • 250 GB free disk space (chain + txindex).
  • 8 GB RAM recommended.
  • 4+ hours for initial sync (longer on HDD).

Get the installer

Always from the official GitHub releases page: https://github.com/BTCGPU/BTCGPU/releases.

Pick the latest tagged release (currently v0.17.3 is the widely-used stable; check for newer tags). The release notes on GitHub are the source of truth.

Verify the SHA-256 checksum

The release page lists the SHA-256 of every binary in the body of the release notes. If you can't find a checksum in the release notes, do not run the binary.

Why this step exists

The supply-chain attack that motivated this step was uploaded between 2017-11-21 and 2017-11-26 (the filename dates in the malicious downloads). The post-mortem was published on 2018-11-26, almost a year later. For full background, see Notable security incidents.

# Linux: after download
sha256sum bitcoin-gold-0.17.3-x86_64-linux-gnu.tar.gz

# macOS
shasum -a 256 bitcoin-gold-0.17.3-osx.dmg

# Windows PowerShell
Get-FileHash bitcoin-gold-0.17.3-win64-setup.exe -Algorithm SHA256

Compare the output to the value in the release notes. If they differ, do not run the file. The most likely explanations are:

  • A man-in-the-middle during download (HTTPS bypass).
  • A hostile mirror.
  • A compromised GitHub release (this has happened to other projects; the Bitcoin Gold (BTG) team works to prevent it but you should always verify).

Linux install

# Verify first
sha256sum bitcoin-gold-0.17.3-x86_64-linux-gnu.tar.gz

# Extract and install
tar -xzf bitcoin-gold-0.17.3-x86_64-linux-gnu.tar.gz
sudo install -m 0755 -o root -g root -t /usr/local/bin \
    bitcoin-gold-0.17.3/bin/{bgoldd,bgold-cli,bitcoin-qt}

Then follow the Full node course to run the daemon, but enable the wallet (remove disablewallet=1 from bitcoingold.conf).

First-run wallet setup

  1. Launch bitcoin-qt. It will create ~/.bitcoingold/wallet.dat on first start.
  2. Encrypt the wallet immediately: Settings → Encrypt Wallet. Choose a strong passphrase.
  3. Write down the seed if you created an HD wallet (Settings → Show HD seed). Store it offline.
  4. Back up wallet.dat: File → Backup Wallet. Copy the file to a USB drive stored offline.

Anyone with wallet.dat + passphrase can spend your coins

Treat wallet.dat like a stack of bearer bonds. Encrypted or not, the file alone is enough to mount a brute-force attack. Store it on a device that is never connected to a network, and ideally in two physical locations.

Address format

When creating receive addresses, prefer native segwit (bech32, btg1...):

bgold-cli getnewaddress "" "bech32"
# btg1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh

It's the cheapest to spend from and the most interop-friendly. Legacy G... (P2PKH) and A... (P2SH) addresses are still valid.

2. ElectrumG (lightweight / SPV)

ElectrumG is a community-maintained fork of the Electrum wallet that knows about Bitcoin Gold (BTG)'s address formats, BIP44 coin type (156), and Stratum servers.

Get ElectrumG

Always from the official BTCGPU/electrum GitHub releases: https://github.com/BTCGPU/electrum/releases.

Verify the SHA-256

Same procedure as for Bitcoin Gold Core. Compare to the value in the release notes.

Install

# Linux
tar -xzf Electrum-G-4.0.6.tar.gz
./Electrum-G-4.0.6/run_electrum_g

On first run:

  1. Choose a wallet name.
  2. Choose Standard wallet (or Multi-signature for a 2-of-3 setup).
  3. Generate or import a seed.
  4. Write the seed down on paper. Twelve words, in order. This is the only way to recover the wallet if your computer dies.

Connect to a server

ElectrumG defaults to the public server list. To use your own:

  1. Tools → Network → Server
  2. Toggle "Select server automatically" off.
  3. Add: electrum.example.com over SSL on port 50002 (or whatever your Electrum server exposes).
  4. Right-click the new server → "Check connection" → green light.

You can also add the official community servers:

  • electrumx-eu.btgofficial.org:50002
  • electrumx-us.btgofficial.org:50002

(SSL, fingerprint verified on first connect.)

Verifying the server

ElectrumG shows a green/red status indicator and the server's server.version string. The official ElectrumX servers report ElectrumX 1.16.0 (or newer). If a server reports a different version string, or doesn't match the SSL certificate fingerprint, disconnect immediately.

3. Hardware wallets

Trezor, Ledger, and KeepKey all support Bitcoin Gold (BTG) natively (Trezor since 2017).

When you initialize a hardware wallet for Bitcoin Gold (BTG), you get a BIP39 seed. Do not reuse a seed from another coin — the address derivation paths differ.

Path Use
m/84'/156'/0'/0/0 Native segwit (recommended)
m/44'/156'/0'/0/0 Legacy P2PKH (G...)
m/49'/156'/0'/0/0 P2SH-segwit (A...)

The hardware wallet signs transactions internally; the seed never leaves the device. This is the most secure option for non-trivial amounts.

4. Cross-wallet import

To import a Bitcoin Gold Core wallet into ElectrumG:

  1. In Core: File → Export Wallet (the export contains all private keys, unencrypted — be careful).
  2. In ElectrumG: File → Import → Bitcoin Core wallet.
  3. Enter the passphrase if the wallet is encrypted.

To go the other way (ElectrumG → Core):

  1. In ElectrumG: Wallet → Information to view each private key.
  2. In Core: bgold-cli importprivkey <key> (one per address — slow for big wallets).

For anything beyond a handful of addresses, prefer the seed-based recovery path:

  1. In ElectrumG: Wallet → Seed to view the seed.
  2. In Core: bitcoin-qt → Help → Debug Window → Console → walletcreatefundedpsbt "" '[{"hdKeyPath": "m/84'/156'/0'/0/0", ...}]' (advanced; consult the bitcoin-cli help).

5. Common pitfalls

Sending to a Bitcoin address by mistake

If you paste a BTC address into your Bitcoin Gold (BTG) wallet, Bitcoin Gold (BTG) will happily send to the same secp256k1 public key derivation but the addresses don't share version bytes. You'll get a "Invalid address" warning, or worse, a successful broadcast to a BTC address you don't own.

Always check the prefix:

  • G... or A... (P2PKH/P2SH) or btg1... (bech32) → Bitcoin Gold (BTG).
  • 1..., 3..., bc1... → BTC. Do not send.

Replay protection

Bitcoin Gold (BTG) has strong two-way SIGHASH_FORKID replay protection (ForkID = 79). A transaction signed for BTC will not validate on Bitcoin Gold (BTG), and vice versa. But if you receive a Bitcoin Gold (BTG) payment and re-broadcast the same rawtx on BTC, BTC will accept it (BTC doesn't have the fork-id check). The reverse is what fork-id prevents.

Practical rule: never copy-paste a rawtx from one chain to another.

Confirmations

Until v0.17.3's rolling-checkpoint finalization, a 1300+ block reorg was theoretically possible (and was attempted in 2020). With v0.17.3, the protocol finalizes blocks at depth ≥ 9 + age ≥ 4800 s, so 10 confirmations is now genuinely final.

For very large transactions, wait for the 4800 s finalization window to elapse before considering the payment irreversible.

Verification checklist

Before you consider your wallet setup complete:

  • Binary SHA-256 matches the value in the official release notes.
  • Wallet is encrypted (passphrase ≥ 16 characters).
  • Seed (for ElectrumG / hardware) is written down on paper and stored offline.
  • wallet.dat (for Core) is backed up to a device that is not connected to a network.
  • First receive → send round-trip works (send a small amount, confirm it lands in the destination wallet).
  • You know which address format (btg1... / G... / A...) your recipient is using.

What to do next

  • Read the Notable security incidents page if you haven't.
  • Operate your own Electrum server — see Electrum server. Then point ElectrumG at it instead of the public servers.
  • Run a full node with the wallet — see Full node (just remove disablewallet=1 from the config).
  • Set up a multi-sig wallet with two hardware devices + a third recovery method for high-value storage.