# Cryptocurrencies
The generator can select up to nine cryptocurrency definitions through
BTCPAYGEN_CRYPTO1 to BTCPAYGEN_CRYPTO9. Duplicate values are ignored.
Bitcoin and Litecoin are maintained by the BTCPay Server project. Other chains depend on their communities and should be evaluated and operated at your own risk. Every additional full node increases storage, memory, bandwidth, backup, and maintenance requirements.
# Available Definitions
| Code | Chain | Lightning options |
|---|---|---|
btc | Bitcoin | CLN, LND, Phoenixd |
ltc | Litecoin | None |
grs | Groestlcoin | CLN, LND |
ftc | Feathercoin | None |
dash | Dash | None |
doge | Dogecoin | None |
mona | Monacoin | None |
xmr | Monero | None |
bdx | Beldex | None |
lbtc | Liquid | None |
zec | Zcash | None |
dcr | Decred | None |
The current source of truth is
docker-compose-generator/crypto-definitions.json (opens new window).
Unknown codes do not select a chain; use empty variables rather than a none
code for unused slots.
# Select More Than One Chain
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_CRYPTO2="ltc"
. ./btcpay-setup.sh -i
When changing an existing deployment, preserve every chain you still want in the numbered variables. Setup regenerates the stack from the complete current selection.
# Monero
Monero support uses the community-maintained Monero plugin together with the
node and wallet services provided by this deployment. Select xmr before
running setup; for example, to enable Bitcoin and Monero:
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_CRYPTO2="xmr"
. ./btcpay-setup.sh -i
After BTCPay Server starts:
- In Server Settings > Manage Plugins, install the Monero plugin and restart BTCPay Server when prompted.
- Create a dedicated Monero wallet for the store. In the store's Monero wallet settings, enter its primary address, private view key, and restore height. Never enter its seed or spend key.
- Wait for the Monero node to finish syncing and for Wallet RPC available to show True, then enable Monero and select the required confirmation policy.
The private view key lets BTCPay generate invoice subaddresses and detect payments, but not spend the wallet's funds. For screenshots, wallet-specific instructions, and troubleshooting, see Accepting Monero via BTCPay Server (opens new window).
# Chain-specific Considerations
- Monero runs a pruned daemon by default. Its wallet RPC is internal unless
opt-monero-exposebinds daemon RPC to host loopback. opt-beldex-exposeis not currently a reliable wallet-RPC exposure path due to a service-name mismatch in the fragment. Treat Beldex RPC exposure as unsupported until the fragment is corrected and tested.- Liquid recommends its default pruning fragment automatically.
- The Zcash definition uses an external lightwallet service. The bundled full-node fragment does not currently have a supported selection path.
- Decred requires a wallet passphrase through
BTCPAY_DCR_WALLET_PASSPHRASE. Setup does not persist this value; export it again before setup, updates, or service recreation.
Adding a chain not present in the definitions is a generator development task; see Development.