Set up a Bitcoin Gold wallet¶
This page covers three available approaches to a Bitcoin Gold wallet. Some software is old; check its maintenance status before use:
- Bitcoin Gold Core (
bitcoin-qt/bgoldd) — a full validating node plus GUI wallet. - ElectrumG — a lightweight SPV wallet that connects to an Electrum server.
- A hardware wallet whose current firmware and companion software explicitly support Bitcoin Gold.
It also explains the checks required before installing a wallet you did not compile yourself: verify both the published checksum and its trusted signature. 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. A checksum only detects corruption when the expected checksum itself is authentic. Verify the signed checksum file from the official BTCGPU release and confirm the signing key through an independent trusted source.
Official product instructions take precedence
The current official instructions published by the wallet software publisher or hardware manufacturer are authoritative for that product and version. If this community guide conflicts with them, follow the official product documentation after verifying that its source is authentic. Search results, advertisements, chat messages, and unsolicited support messages are not official instructions.
There is no account recovery
A confirmed Bitcoin Gold payment cannot be cancelled or recalled by the sender, a wallet provider, or an administrator. Anyone who obtains a seed phrase or private key can spend the coins, while losing every usable copy makes the coins permanently inaccessible. No legitimate administrator, support agent, wallet developer, or Discord moderator needs your seed phrase or private keys.
Before storing a significant balance, verify a small receive-and-send transaction and complete a recovery test from the actual backup you intend to keep.
1. Bitcoin Gold Core (full node + wallet)¶
What you need¶
- 250 GB free disk space (chain + txindex).
- 8 GB RAM recommended.
- Enough time and bandwidth for a full initial synchronization; duration depends on hardware, peers, and current chain size.
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 signed checksum¶
The release page provides SHA-256 values in a PGP-signed checksum message. If a release does not provide a verifiable signed checksum, do not run the binary. Import the expected signing key from an independently verified source, verify the signature, and only then compare the binary hash.
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 verified signed message. If they differ, do not run the file. Possible explanations include:
- A man-in-the-middle during download (HTTPS bypass).
- A hostile mirror.
- A compromised release location or signing workflow.
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}
For a GUI wallet, install the Qt dependencies from the Full node course, configure the build with GUI support instead of --without-gui, and remove disablewallet=1 from bitcoingold.conf.
First-run wallet setup¶
- Launch
bitcoin-qt. It will create wallet data inside the Bitcoin Gold application data directory on first start. - Encrypt the wallet immediately:
Settings → Encrypt Wallet. Choose a long, unique passphrase and preserve it separately from the wallet backup. - After encryption completes and Core restarts, use File → Backup Wallet and keep copies in at least two separate, offline locations. Create another backup after changing the passphrase or importing private keys. Bitcoin Gold Core does not provide a normal GUI workflow for displaying an HD seed phrase.
First-time encryption changes the HD seed
In BTG Core v0.17.3, encrypting an HD wallet for the first time encrypts and retains every private key already stored in the wallet. Funds controlled by those keys remain spendable after the wallet is unlocked with the passphrase. The process then flushes the keypool and generates a new HD seed for future addresses. A pre-encryption backup remains valid for the keys and addresses it already contains, but it cannot recover addresses generated from the new seed. Create and verify a fresh backup immediately after encryption. Do not receive funds to newly generated addresses until that backup has been verified.
Whether you retain the pre-encryption backup is your responsibility. If you keep it, store it offline and protect it as unencrypted private-key material. If you decide to destroy it, do so only after the new backup has been verified.
Changing the wallet passphrase later does not generate another HD seed. Existing backup files remain encrypted with the passphrase that was active when they were created. Create and verify a fresh backup after every passphrase change, and retain the matching passphrase for any older backup you choose to keep. Create another fresh backup after importing a private key because older backups do not contain the imported key.
A forgotten passphrase cannot be recovered. Encryption also does not protect an unlocked wallet from malware, a keylogger, or an attacker with RPC access.
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.
Use File → Backup Wallet or the backupwallet RPC instead of copying a live wallet database. The dumpprivkey and dumpwallet commands produce unencrypted secret material even when wallet.dat is encrypted; never paste or upload their output.
An unlocked RPC wallet can be drained
Never expose the Core RPC interface to the public internet. Use the shortest practical walletpassphrase timeout and run walletlock when the signing operation is complete. Wallet encryption does not stop an RPC client from spending while the wallet is unlocked.
Address format¶
When creating receive addresses, prefer native segwit (bech32, btg1...):
Native SegWit addresses use the btg1... format. Legacy G... (P2PKH) and A... (P2SH) addresses remain valid and may be required by older wallets or services.
2. ElectrumG (lightweight / SPV)¶
ElectrumG is the Bitcoin Gold fork of the Electrum wallet. It knows about Bitcoin Gold's address formats, BIP44 coin type (156), and Stratum servers.
Legacy software
The latest official BTCGPU ElectrumG release is 3.2.1 from 2018. Treat it as legacy software: verify the signed release metadata, review compatibility with your operating system, and do not use it for significant funds without an independent security assessment. Install ElectrumG and any updates only from the official BTCGPU/Electrum GitHub releases page.
Get ElectrumG¶
Always from the official BTCGPU/electrum GitHub releases: https://github.com/BTCGPU/electrum/releases.
Verify the signed checksum¶
Use the PGP-signed checksum message attached to the official release. The release key is now expired. It can still verify that the historical signature was made by that key, but you must independently establish that the key was trusted at signing time.
Install¶
Use only an artifact actually attached to a verified official release; do not follow third-party download instructions.
On first run:
- Choose a wallet name.
- Choose Standard wallet (or Multi-signature for a 2-of-3 setup).
- Generate or import a seed.
- Record every seed word in the exact order shown on a durable offline medium and complete the wallet's confirmation step before receiving funds.
The seed is the wallet
Anyone with the seed can recreate the wallet and spend its coins without the wallet password. Never enter it into a website, chat, support form, cloud document, screenshot, or ordinary note-taking application. Importing a seed on a compromised computer exposes every key derived from it.
Verify the recorded copy through the wallet's built-in seed confirmation and perform an offline recovery test before treating it as the only backup. Keep independent copies protected from theft, fire, and water.
Multisig requires independent signer recovery
Do not create a multisig wallet until you understand its signing threshold and have tested its recovery procedure. Back up at least the threshold number of independent private signing keys. Also preserve the complete public wallet configuration: the threshold, network, script and address type, derivation paths, master fingerprints, and every cosigner's extended public key (XPUB), preferably as a verified output descriptor or wallet backup.
Recovering the threshold number of seeds alone may not be sufficient if any cosigner XPUB or part of the wallet policy is missing. If fewer than the threshold number of private signing keys can be recovered, the funds cannot be spent. Do not store enough seed backups to satisfy the signing threshold in one location.
If a cosigner uses an optional seed passphrase, preserve it exactly and separately. A missing or mistyped passphrase derives a different XPUB.
Connect to a server¶
ElectrumG defaults to the public server list. To use your own:
Tools → Network → Server- Toggle "Select server automatically" off.
- Add:
electrum.example.comover SSL on port50002(or whatever your Electrum server exposes). - Right-click the new server → "Check connection" → green light.
The following official Bitcoin Gold server uses TLS port 50002; availability can change:
electrumx-us.btgofficial.org:50002
Verifying the server¶
ElectrumG shows a connection indicator and the server's server.version response. A version string alone does not establish trust. Require TLS certificate validation and verify unexpected certificate changes through an independent community channel. Treat every server-provided message and link as untrusted.
3. Hardware wallets¶
Hardware-wallet support can change by model, firmware, and companion application. Check the manufacturer's current compatibility list before transferring funds, then verify the receive address on the hardware device itself.
For better compartmentalization, consider using a dedicated seed rather than sharing one across unrelated assets. Never enter a hardware-wallet recovery seed into a website or ordinary computer.
A new wallet must generate its seed during trusted device setup
When creating a new wallet, never use a device that arrives with a pre-printed or seller-provided seed. Initialize the device yourself. Verify every receiving address and, before signing a transaction, verify the destination address, amount, and fee on the hardware device's trusted display. Always follow the device manufacturer's current official instructions; they take precedence over this general guidance.
Before a firmware update or device reset, confirm that the recovery backup is complete and that you know the correct Bitcoin Gold derivation path. Restore the seed only by following the manufacturer's official recovery procedure on trusted hardware; never enter it into a website or support tool.
If you enable an optional passphrase, treat it as a separate secret required in addition to the wallet backup. It is not stored on the device. Preserve it exactly and separately from the wallet backup. Every distinct passphrase, including a mistyped one, derives a different wallet. Without the exact original passphrase, the associated wallet cannot be recovered.
| 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 so the seed does not need to leave the device. Security still depends on authentic hardware, trusted firmware, correct address verification, and safe seed storage.
4. Moving funds between wallets¶
Do not assume that Core, ElectrumG, and hardware-wallet seed formats are interchangeable. The safest migration is an on-chain transfer:
- Back up the existing wallet and confirm that the backup can be opened.
- Create a new receiving address in the destination wallet and verify it on the destination device.
- Send a small test amount and wait for confirmation.
- Send the remaining balance only after the test appears correctly.
- Keep the old wallet backup until every expected output is accounted for.
Repeat every check for the final transfer
A successful test payment does not prove that the final clipboard contents, amount, or fee are correct. Verify the complete destination address and amount again before approving the final transaction. Keep the old wallet and its backup until the migration is confirmed and every expected output is visible in the destination wallet.
Importing individual private keys is an advanced recovery technique that exposes those keys to both applications and may omit change addresses. Use it only when an on-chain migration is impossible. Prefer sweeping into a newly generated destination wallet when supported; after a private key has been exposed to another application, do not continue treating it as cold storage.
5. Common pitfalls¶
Sending to a Bitcoin address by mistake¶
Bitcoin and Bitcoin Gold use different address prefixes. A conforming Bitcoin Gold wallet must reject BTC addresses as invalid; always verify the prefix and the destination before signing.
Transactions cannot be cancelled
Clipboard malware or a manipulated QR code can replace the destination or amount. Verify the complete address, network, amount, and fee on the final signing screen. A valid G..., A..., or btg1... prefix proves only the network format; it does not prove that the address belongs to the intended recipient.
Always check the prefix:
G...orA...(P2PKH/P2SH) orbtg1...(bech32) → Bitcoin Gold.1...,3...,bc1...→ BTC. Do not send.
Replay protection¶
Bitcoin Gold uses SIGHASH_FORKID replay protection with ForkID 79. Transactions signed under Bitcoin Gold's rules are not valid Bitcoin transactions, and Bitcoin signatures are not valid for post-fork Bitcoin Gold transactions.
Practical rule: never copy-paste a rawtx from one chain to another.
Confirmations¶
Bitcoin Gold v0.17.3 introduced rolling checkpoint finalization to constrain deep reorganizations. Choose a confirmation policy based on transaction value, current network conditions, and the requirements of the receiving service.
Verification checklist¶
Before you consider your wallet setup complete:
- Binary SHA-256 matches the signed checksum file from the official release.
- The checksum signature was verified against a trusted BTCGPU signing key.
- Wallet is encrypted with a long, unique passphrase that has an independent recovery copy.
- A fresh Core backup was created after encryption, passphrase changes, or private-key imports.
- Seed (for ElectrumG / hardware) is recorded on a durable offline medium with an independent recovery copy.
-
wallet.dat(for Core) is backed up to a device that is not connected to a network. - The actual backup was restored offline and reproduced the expected wallet addresses.
- First receive → send round-trip works (send a small amount, confirm it lands in the destination wallet).
- The complete destination address, amount, network, and fee were verified on the final signing screen.
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=1from the config). - Set up a multi-sig wallet with two hardware devices + a third recovery method for high-value storage.