Bitcoin Wallet

Create a new Bitcoin wallet

To accept payments, you need a modern Bitcoin wallet. Please note CypherpunkPay needs a new and dedicated (“CypherpunkPay only”) wallet, so addresses generated by CypherpunkPay won’t clash with your manual usage.

Any modern Bitcoin wallet will do the job (desktop, mobile, or hardware). If you are not sure where to start, these are fine choices: Sparrow Wallet, Wasabi Wallet, Electrum Wallet.

If presented with a choice pick the native segwit (also known as P2WPKH) type of wallet. Don’t worry, this should be the default for any modern wallet.

Advanced Users: CypherpunkPay only supports P2WPKH. This implies legacy wallets are not supported (P2PKH, P2SH, P2WPKH-nested-in-P2SH). This also implies multisig wallets are currently not supported.

Set wallet xpub

First, change testnet to mainnet in your config.

In your wallet software, find “xpub” or “zpub” string and copy-paste it to your CypherpunkPay config:


btc_network = mainnet

# Bitcoin mainnet xpub or zpub key
btc_mainnet_account_xpub = PASTE-HERE-YOUR-XPUB-OR-ZPUB-STRING

This will allow CypherpunkPay to generate addresses and check for incoming payments, even though CypherpunkPay does not have your private key. The xpub/zpub does not allow for sending funds, but it is sensitive privacy-wise. You should treat it like a secret despite the misleading “pub” in the name.

Restart CypherpunkPay

For changes to take effect, restart CypherpunkPay:

sudo systemctl restart cypherpunkpay

Verify CypherpunkPay generates the same addresses as your wallet

In your preferred wallet app, click [Receive] to see the first address. Do not send funds.

In the CypherpunkPay, click donate and verify displayed address is the same as you in your wallet app.

Do example payment

Do example donation to yourself via CypherpunkPay to make sure funds end up in your wallet.

Congratulations, you are ready to go!