Overview
Discover what makes SHKeeper powerful
SHKeeper is a **self‑hosted, open‑source cryptocurrency payment processor** that functions both as a gateway and a merchant. From a technical standpoint, it exposes a RESTful API that allows developers to generate payment addresses, monitor transactions, and orchestrate payouts across a wide array of blockchains. The core engine is written in **Go**, chosen for its lightweight runtime, concurrency primitives, and native support for cross‑platform binaries—making it ideal for running inside containers or on bare metal. A PostgreSQL database stores transactional state, user accounts, and configuration; all interactions are secured via TLS and JWT‑based authentication.
Language & Runtime
Web Framework
Database
Cache & Pub/Sub
Overview
SHKeeper is a self‑hosted, open‑source cryptocurrency payment processor that functions both as a gateway and a merchant. From a technical standpoint, it exposes a RESTful API that allows developers to generate payment addresses, monitor transactions, and orchestrate payouts across a wide array of blockchains. The core engine is written in Go, chosen for its lightweight runtime, concurrency primitives, and native support for cross‑platform binaries—making it ideal for running inside containers or on bare metal. A PostgreSQL database stores transactional state, user accounts, and configuration; all interactions are secured via TLS and JWT‑based authentication.
Architecture
- Language & Runtime: Go (1.22+), compiled to static binaries for minimal dependencies.
- Web Framework:
net/httpwith a lightweight router (chi) to keep the service lean and highly testable. - Database: PostgreSQL 15+, accessed through
pgxfor high‑throughput, connection pooling, and support for advanced features like JSONB columns. - Cache & Pub/Sub: Redis is optional; it can cache exchange rates and push transaction events to downstream services.
- Blockchain Interaction: The system uses dedicated RPC clients per coin (e.g.,
btcd,geth,monero-rpc) or third‑party services (e.g., BlockCypher) to poll for new transactions. Each coin has its ownwalletmodule that abstracts address generation, balance queries, and transaction signing for cold‑wallet payouts. - Containerization: A Dockerfile is supplied, and the service can be orchestrated via Kubernetes or Docker Compose. The image is small (~60 MB) due to static linking.
Core Capabilities
| Feature | Description |
|---|---|
| Non‑custodial | All private keys are generated and stored locally; no third‑party custody. |
| Multi‑currency | Supports BTC, ETH, LTC, DOGE, XMR, XRP, TRX, BNB, MATIC, AVAX, USDT/USDC on ERC20/TRC20/BEP‑20. |
| API | Endpoints for address creation, transaction retrieval, payout task orchestration, and metrics. Authentication via API key or basic auth (for payouts). |
| Webhooks | Real‑time callbacks on payment status changes; configurable per‑order or globally. |
| Payouts | Single and multi‑payout tasks, with status polling; supports cold‑wallet signing via a decryption key passed at runtime. |
| Extensibility | Ready‑made modules for WHMCS, WooCommerce, OpenCart, and PrestaShop; developers can implement custom modules by consuming the public API. |
Deployment & Infrastructure
SHKeeper is designed for self‑hosting on any Linux server, VPS, or cloud instance. Key requirements:
- CPU & Memory: 1 vCPU and 2 GB RAM are sufficient for a small shop; scale vertically or horizontally by adding replicas behind a load balancer.
- Storage: PostgreSQL requires 10 GB for moderate traffic; use SSDs for low latency.
- Network: Public HTTPS endpoint (TLS termination can be handled by the service or an external reverse proxy).
- Backup: PostgreSQL dumps and wallet key backups should be stored encrypted off‑site.
- Scaling: Stateless API workers can be replicated; stateful components (wallet RPC clients) should use a shared Redis queue to coordinate payouts.
Integration & Extensibility
The public API follows RESTful conventions and returns JSON payloads. Developers can:
- Embed payment buttons or QR codes directly into web pages using the
/invoiceendpoint. - Consume transaction events via webhooks for automated accounting or CRM updates.
- Leverage the payout API to move funds into cold wallets programmatically, using a secure decryption key that never leaves the server.
- Extend functionality by writing custom plugins that hook into lifecycle events; the open‑source codebase exposes interfaces for adding new coins or payment processors.
Developer Experience
- Documentation: Comprehensive API reference (
https://shkeeper.io/api/), a knowledge base, and tutorial videos are available. The README includes clear sections on payment flow, API usage, and ready‑made modules. - Community: The project is hosted on GitHub with an active issue tracker; contributors can submit pull requests for new coins or features.
- Configuration: Settings are driven by a YAML/JSON file and environment variables, allowing CI/CD pipelines to deploy consistent instances.
- Licensing: The source is MIT‑licensed, giving developers full freedom to modify and redistribute.
Use Cases
- E‑commerce Platforms – Integrate via the WooCommerce or PrestaShop modules to accept crypto payments without additional fees.
- SaaS Billing – Use the API to generate invoices and auto‑credit overpayments to user balances.
- Marketplace Operators – Route payments through SHKeeper and automatically split proceeds via the multipayout feature.
- Financial Services – Build a custodial‑free wallet service that aggregates multiple coins and offers instant payouts to customers.
Advantages
- Zero Transaction Fees – All payments are processed directly on the blockchain; no intermediary commissions.
- Full Control & Privacy – Self‑hosted architecture eliminates KYC/AML constraints and gives developers ownership of keys.
- High Performance – Go’s concurrency model ensures low latency even under
Open SourceReady to get started?
Join the community and start self-hosting SHKeeper today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Islandora
Open‑source digital repository for managing and sharing collections
Dagu
Lightweight YAML‑based workflow engine with a modern web UI
Gaseous Server
Self-hosted other
NextcloudPi
Self‑hosted Nextcloud on Raspberry Pi and more
sist2
Fast, incremental file search with web UI and OCR support
OctoPrint
Remote control and monitoring for 3D printers
