3.0 KiB

Bitcoin Payment Checker

Bitcoin Payment Checker is a modern Go application designed to facilitate Bitcoin payments for orders. It provides a seamless interface for clients to pay the Bitcoin equivalent of an order amount, offering a wallet address for payment and tracking the payment status in real-time.


  • Real-time Bitcoin Conversion: Automatically calculates the Bitcoin equivalent of the order amount using current market rates.
  • Order Tracking: Monitors the payment status from initiation to completion, ensuring transparency and reliability.
  • Notification System: Alerts via email when payments are processed or if there are any issues.
  • Secure and Scalable: Designed with security and scalability in mind, making it suitable for businesses of all sizes.
  • Grafana Monitoring: Supports integration with Grafana for advanced monitoring and analytics of payment transactions.

Getting Started


  • Go (1.15 or later)
  • Docker and Docker Compose (for containerization and services)
  • MongoDB (for database)
  • An SMTP server (for email notifications)
  • Grafana (for monitoring, optional)


1- Clone the Repository

git clone
cd btcpaychecker

2- Environment Configuration

Configure your application by setting the necessary environment variables. You can find a template in .env.example. Rename this to .env and fill in the details accordingly.

3- Build and Run

  • Without Docker: If you prefer to run the application directly on your machine:
go run cmd/btcpaychecker/main.go
  • With Docker: To containerize your application, use the following commands:
docker build -t btcpaychecker .
docker-compose up

Environment Variables

The application can be configured using the following environment variables:

  • DB_ADDRESS: MongoDB address.
  • DB_NAME: Database name.
  • ORDERS_COLLECTION: Collection for orders.
  • CONVERSOR_API: API for currency conversion.
  • RPC_HOST, RPC_AUTH, RPC_ZMQ, WALLET_ADDRESS: Bitcoin service configuration.
  • MAIL_USER, MAIL_PASSWORD, MAIL_HOST, MAIL_PORT, MAIL_FROM: SMTP configuration for email notifications.
  • WEBHOOK_URL: (Optional) For POST callbacks upon payment completion.


List of Go modules and external packages used:

  • gofiber/fiber/v2: For HTTP server and routing.
  • MongoDB driver.
  • net/smtp: For sending emails.


A Dockerfile is provided for easy application containerization, allowing for straightforward deployment and scalability. Refer to the Dockerfile for more details.


Contributions are welcome! Please refer to the file for guidelines on how to contribute to this project.


This project is licensed under the MIT License - see the LICENSE file for details.


You can try it here on bitcoin testnet