GhostBill vs BTCPay Server
Two self-hosted, non-custodial payment processors with different design philosophies. Here's how they compare for Monero merchants.
Last updated: 2026-04-28
Overview
Both GhostBill and BTCPay Server are self-hosted, non-custodial payment processors. GhostBill follows an Open Core model (backend AGPL-3.0, dashboard licensed), while BTCPay Server is fully MIT-licensed. They share the same fundamental principle: your keys, your coins. However, they serve different use cases and make different architectural choices.
BTCPay Server is a mature, Bitcoin-first platform that supports Monero as an additional plugin. It offers a broad feature set including point-of-sale, e-commerce integrations, crowdfunding, and multi-currency support.
GhostBill is purpose-built for Monero. It focuses exclusively on XMR payments with native Tor integration, a deterministic state machine for invoice lifecycle, and a full recurring billing engine — features that BTCPay Server does not offer for Monero.
Feature Comparison
| Feature | GhostBill | BTCPay Server |
|---|---|---|
| Self-hosted | ||
| Non-custodial | ||
| License model | Open Core (AGPL-3.0) | MIT |
| Monero support | Native | Plugin |
| Bitcoin support | ||
| Multi-currency | XMR only | 10+ coins |
| Tor-native | ||
| Recurring billing | ||
| Subscription management | ||
| Customer management | ||
| Invoice states | 7 states | 3 states |
| Webhook events | 20 events | ~10 events |
| Dead Letter Queue | ||
| HMAC webhook signing | SHA-256 | SHA-256 |
| REST API | ||
| Dashboard | ||
| WooCommerce plugin | ||
| Point of Sale | ||
| E-commerce integrations | API only | 10+ plugins |
| Docker deployment | 5 containers | 10+ containers |
| Minimum disk space | ~20 GB | ~100 GB (with XMR) |
| Setup time | ~15 min | ~60 min |
Monero Support
This is the fundamental architectural difference. BTCPay Server was designed for Bitcoin and added Monero support through a community plugin. The Monero integration works, but it is secondary to the Bitcoin experience.
GhostBill was built from the ground up for Monero. Every design decision — from the wallet RPC integration to the invoice state machine to the webhook payload format — is optimized for how Monero transactions work. Subaddress generation, mempool monitoring, and confirmation tracking are core features, not afterthoughts.
In BTCPay Server, Monero invoices have 3 states. In GhostBill, they have 7: pending,paid, expired, partially_paid, overpaid,late_paid, and cancelled. Every state transition fires a webhook event with the full invoice payload.
Privacy & Tor
GhostBill runs as a Tor hidden service by default. The API, dashboard, and outgoing webhook deliveries all route through Tor. There is no clearnet exposure unless the merchant explicitly configures it on their own infrastructure.
BTCPay Server supports Tor through its Docker deployment, but it is not the default configuration. The primary access method is clearnet with HTTPS. Tor is available as an additional option.
For merchants who prioritize operational security and want zero IP metadata leakage, GhostBill's Tor-native architecture provides a stronger privacy baseline.
Recurring Billing
This is GhostBill's standout feature. The recurring billing engine supports:
- Customer management with unique identifiers
- Subscription lifecycle with 5 states: active, paused, past_due, cancelled, expired
- Configurable billing intervals (daily, weekly, monthly, yearly)
- Grace periods for late payments
- Deterministic billing anchors to prevent date drift
- Pre-payment support for advance billing
- Automatic renewal with webhook notifications
- Pause and resume without losing billing history
BTCPay Server does not have a recurring billing feature for any cryptocurrency. Merchants who need subscription payments must build their own logic on top of the BTCPay API.
Deployment Complexity
GhostBill deploys with 5 Docker containers: PostgreSQL, Redis, monero-wallet-rpc, the API backend, and the dashboard. Total disk footprint is approximately 20 GB (excluding the Monero blockchain if running your own node).
BTCPay Server's full deployment includes 10+ containers: the BTCPay application, PostgreSQL, NBXplorer, Bitcoin node, and — for Monero support — a full Monero node with wallet RPC. The combined disk requirement is 100+ GB.
For merchants who only need Monero payments, GhostBill provides a significantly simpler and lighter deployment.
When to Use BTCPay Server
BTCPay Server is the better choice when you need:
- Multi-currency support (Bitcoin + Monero + Litecoin)
- E-commerce platform integrations (WooCommerce, Shopify, PrestaShop)
- Point-of-sale functionality for physical stores
- Crowdfunding or donation pages with multiple payment options
- A mature ecosystem with extensive community support
When to Use GhostBill
GhostBill is the better choice when you need:
- Monero-only payments with deep XMR integration
- Recurring billing and subscription management
- Tor-native operation with zero clearnet exposure
- A lightweight deployment (5 containers, 20 GB)
- A deterministic invoice state machine with 7 states
- 20 webhook events with dead letter queue and automatic retries
- Maximum operational privacy for merchant and customer
Both projects are non-custodial and self-hosted. The choice depends on your specific requirements. If you accept multiple cryptocurrencies and need e-commerce integrations, BTCPay Server is the established solution. If Monero is your sole payment method and you need recurring billing with maximum privacy, GhostBill is purpose-built for that use case.
Related Pages
- GhostBill Pricing — Open Core tiers from $0 to $199/month
- Getting Started — deploy GhostBill in 15 minutes
- Recurring Billing — subscription management for Monero
- VPN Provider Guide — accept XMR for VPN services
Ready to deploy?
Open Core — backend API is free and open source. Dashboard licenses start at $49/month. Zero transaction fees.