What it is
Runegate is a payment gateway for businesses that want to accept crypto without running wallets, nodes or treasury operations themselves. Merchants integrate once and can take payments on Bitcoin, Ethereum, BSC, Polygon, Solana, Tron and Cardano.
Beyond simple payments, it covers the everyday money flows a business needs: invoices with line items, reusable payment links, withdrawals to external wallets, and conversion between crypto and fiat.
Who it’s for
- Merchants and online businesses that want to accept crypto at checkout
- Partners and platforms that integrate payments through the API
- Operations staff who review, approve and monitor transactions
What the product does
- Checkout and payment pages with a unique deposit address and QR code for each payment
- Invoices and reusable payment links that can be shared with customers
- Real-time payment status, including partial payments, overpayments and expiry
- Fiat on-ramp and off-ramp, so merchants can move between crypto and local currency
- Withdrawals and internal transfers with approval steps
- Webhook notifications so merchants’ own systems stay in sync
- A merchant dashboard, a staff admin console and a public API with documentation
What I work on
- Backend services and APIs behind payments, invoicing, payouts and withdrawals
- Integrations with custody, banking and payment partners, including signed webhooks
- Moving the platform from a legacy stack to modern .NET while it kept running
- Security hardening: separating public-facing services from the ones that handle money and secrets
- Automated test suites, from unit tests to end-to-end checks, and safer deployments
How it’s built
The backend is a set of .NET services with a clear split: thin public-facing APIs for each audience, and private services that own payment state, fees and partner integrations. The dashboards are React apps on top of those APIs, and the whole platform runs on Azure.
Database changes go through versioned migrations, and every service is covered by automated tests, so the system can keep changing while merchants keep getting paid.
The hard part
Changing a live payment system without stopping it. Merchants take payments around the clock, so every improvement had to ship in small, reversible steps, with money flows double-checked before and after each change.
