Option 1: Use a Crypto Conversion Plugin (e.g., CryptoConvert)
1. Set Up BTCPay Server
- Deploy BTCPay Server or Follow official docs.
- Create a store and configure Bitcoin (BTC) as the primary currency.
2. Install the CryptoConvert Plugin
- In BTCPay Server’s Plugins section, install CryptoConvert (supports altcoin conversions).
3. Configure Exchange Integration
- Sign up for an exchange that supports XMR/BTC pairs (e.g., Kraken, Binance).
- Generate API keys with trade and withdraw permissions.
- Enter API keys in CryptoConvert’s settings.
4. Enable Monero Payments
- In your store’s Checkout Settings, add Monero (XMR) as a payment method.
- Set a conversion rate (e.g., XMR → BTC via exchange rates).
5. Test Transactions
- Create a test invoice. Customers pay in XMR, which converts to BTC via the exchange.
Option 2: Self-Hosted Monero Wallet + Custom Script
1. Set Up BTCPay Server
- Deploy BTCPay and configure your store.
2. Deploy a Monero Wallet/Node
- Run a Monero node using
monerod
(Monero Node Guide). - Use
monero-wallet-rpc
to create a wallet for receiving payments.
3. Build a Payment Gateway Script
- Write a script (Python/Node.js) to:
- Generate unique XMR subaddresses for each BTCPay invoice.
- Monitor the wallet for incoming XMR payments.
- Use BTCPay’s API to mark invoices as paid when XMR is received.
Example API Call (Mark Invoice Paid):bash curl -X POST "https://your-btcpayserver.com/invoices/INVOICE_ID/status" \ -H "Authorization: Basic YOUR_API_KEY" \ -d '{"status": "paid"}'
4. Host the Script
- Deploy the script on a server (e.g., AWS, DigitalOcean) and set up cron jobs for payment checks.
Option 3: Use a Third-Party Gateway (e.g., NOWPayments)
1. Sign Up for NOWPayments
- Create an account at NOWPayments.io.
- Enable Monero (XMR) as a payment option.
2. Generate API Key
- In NOWPayments’ dashboard, create an API key for BTCPay integration.
3. Configure BTCPay Server
- Install NOWPayments’ plugin (if available) or use their API to sync invoices.
- Set up webhooks to notify BTCPay when XMR payments are received.
Key Considerations
- Privacy: Option 2 (self-hosted) is best for privacy; third-party tools (Options 1/3) expose transaction data.
- Fees: Exchanges and gateways charge conversion fees (~1–5%).
- Technical Skill: Option 2 requires coding; Options 1/3 are plug-and-play.
Final Step: Update Your Website
Embed BTCPay’s payment button or API into your site. For XMR-specific instructions, add a note:
“Pay with Monero (XMR): Send XMR to [address] and email receipt to [email] for confirmation.”
Note: Always test transactions before going live!