Buyer's guide ยท Stablecoin Checkout
Stablecoin payment gateway source code: non-custodial USDC and USDT checkout
Stablecoin Checkout is complete source code for running your own stablecoin payment gateway: a checkout, a merchant portal, an operator console and a REST API with signed webhooks. Payers pay USDC on Solana and Base, or USDT on Solana, from their own wallet or from an exchange account. The server has no private key and never builds, signs or relays a transaction. You host it yourself, and every fee rate ships at zero.
What you get
The full source code
A Node.js and TypeScript server with SQLite storage and forward-only migrations, a static checkout, a merchant portal, an operator console on the MIKODES Admin Kit, the MikodesPayRouter Solidity contract with its tests, deployment configs (systemd with Caddy, PM2, Docker Compose, static hosting) and HTML documentation.
Atomic wallet pay
On Solana, one transaction with two SPL transfers: the merchant amount to the merchant and the operator fee to you, so both land or neither does. On Base, one call to MikodesPayRouter, a contract with no owner and no storage that never holds a token.
Exchange pay
For payers without a wallet, the invoice is matched by a unique amount, and the page shows withdrawal guidance for the exchange the payer uses.
Merchant portal
Payments, payment links, customer invoices, subscriptions, a point-of-sale screen, A4 PDF invoices generated offline, and non-custodial refunds signed by the merchant's own wallet.
Webhooks and API
An invoice status machine, live status over server-sent events with a polling fallback, and HMAC-signed webhooks with retries, a dead letter queue and SSRF-guarded delivery.
Merchant accounts and security
Merchant self-signup with operator approval, sessions, CSRF protection, optional TOTP two-factor, a failed-authentication lockout, hashed API keys, a hash-chained audit log, a strict content security policy and CSV exports safe against formula injection.
Optional sanctions screening
An OFAC SDN screening hook before a payment is accepted. A converter for the list is included; you download the list yourself.
Checkout branding
Branded from operator settings, with contrast checks on your colours, English and Slovak, light and dark.
How you run it as an operator
Platform fee
You set a fee in basis points per merchant, with a default for new merchants, a minimum and maximum, and a hard cap of 1000 bps (10 %) that the console enforces. Every rate ships at 0, so a fresh install charges nobody.
Where the fee comes from
In wallet pay the fee is paid on-chain to your address in the same transaction as the merchant's amount. In exchange pay it is debited from a prepaid fee credit the merchant tops up; when credit runs low, exchange pay stops being offered to that merchant.
Volume tiers and referral shares
Up to 20 volume tiers based on trailing 30-day settled volume, and referral shares that book part of the fee to whoever introduced a merchant. These are settings, not results; what a fee comes to depends on your merchants' real volume.
Operator console
Settings, team and roles, audit, status, revenue and rollback, plus eight screens of this product's own, including merchant people management with password reset and reactivation.
What it needs to run
- Node.js 20.6 or newer (Node 22 for the Solidity tooling) and pnpm 10; production servers are Linux
- A server you control with a persistent disk for the API and the SQLite file; shared hosting is not enough. A domain and HTTPS are billed by your providers
- Your own Solana RPC endpoint and, if you enable Base, your own EVM RPC endpoint. No provider key ships with the source
- Your own wallet address to receive the operator fee, and one wallet address per merchant
- For Base wallet pay: deploy MikodesPayRouter yourself on Base, which costs one-time gas from your own wallet, before you switch Base on
- Optional: SMTP for email, a chat-bot token for notifications, and the OFAC SDN list if you turn screening on
What it does not do
- It supports USDC on Solana and Base and USDT on Solana. Tron and USDT-TRC20 are not built.
- There is no WooCommerce or Shopify plugin. Integration today is the REST API, the embeddable pay button or a payment link.
- The public demo runs on Solana devnet with test tokens only. It does not show mainnet payments, your own merchants or your own webhook endpoints.
- Settlement time differs by chain. Solana invoices are marked paid when the transaction is finalized, about 13 seconds. Base invoices are marked paid when the block is final on Ethereum, about 15 to 20 minutes, unless you set BASE_CONFIRMATIONS to settle after fewer blocks and accept that risk.
- A deployed router contract on Base, RPC plans, hosting and gas are not included. Network fees of each payment are paid by the payer.
- It is software, not a payment service. Registration, tax handling, money-transmission and sanctions obligations where you and your merchants operate are your responsibility. No legal, tax or compliance advice is included, and the legal status of prepaid fee credit depends on your jurisdiction.
- Payments are verified on-chain and cannot be reversed by the software. Refunds are signed by the merchant.
Questions
Does the server hold a customer's money or a key?
No. A wallet payment is built in the payer's browser and signed by the payer's wallet. The server watches the chain read-only and has no private key.
Which chains and tokens are supported?
USDC on Solana and Base, and USDT on Solana, with a test network for each (Solana devnet and Base Sepolia). Token addresses in the source were checked against the issuers' own documentation.
How does the operator fee work?
It is a platform fee in basis points, set per merchant, off at 0 by default and capped at 10 % by the console. It is a setting you choose, not an income figure.
What if the payer has no crypto wallet?
They can pay from an exchange account. The payment is matched by a unique amount, and the operator's fee comes from the merchant's prepaid fee credit.
Can merchants sign up on their own?
Yes, and they wait for your approval. Accounts have sessions, CSRF protection and optional two-factor, and there is a password reset flow for merchant users.
How much does Stablecoin Checkout cost, and what does the licence allow?
$169, one payment, no subscription. One licence, no tiers: any number of projects and clients, a paid SaaS, every line changed. The only limit is reselling or publishing the source code itself. The services you connect bill you directly. See the licence.
Is setup included?
Yes. We install Stablecoin Checkout for you and put in your logo, colours and texts. Bigger changes or new features get a fixed price before we start.
What if it does not work?
Write to us within 14 days. We fix it, usually the same day. If we cannot fix it within 7 days, you get your money back. See the refund policy.