What you need before you start
- Paymenter 1.4 or newer and an admin account (tested on 1.5.9).
- Paymenter reachable at its public https address, with that address set in Settings › General › App URL. Payment confirmations are sent to it.
- A wallet address for each network you want to accept. Step 1 explains which ones.
Prepare your payout wallets
Crypto is forwarded to your own wallet addresses, one for each coin or network you want to accept. Prepare them before you start:
- Bitcoin (BTC): your Bitcoin address (usually starts with
bc1). - Solana (SOL and Solana tokens such as USDC and USDT on Solana): your Solana address.
- Monero (XMR) and Zcash (ZEC): your Monero and Zcash addresses.
- Ethereum and EVM networks (ETH, ERC20, BEP20, Polygon, Arbitrum, Base, Optimism, Avalanche-C): one
0xaddress covers all of them. - Any other coin you want, for example Litecoin, Dogecoin, Bitcoin Cash, Tron (TRC20 USDT) or TON.
Use self-custodial wallets that only you control (Trust Wallet, Exodus, Phantom for Solana, Cake Wallet for Monero, a hardware wallet and so on). Never use exchange deposit addresses, and always paste the address for the right network: a Bitcoin address in the Bitcoin field, a Solana address in the Solana field.
Download the extension
Download the latest version from our GitHub repository: Paymenter-Crypto-Payment-Gateway-main.zip. Keep it zipped. It is free and open source; the code is on GitHub.
Upload the extension to Paymenter
Paymenter installs extensions straight from the admin area, so you do not need FTP.
- In the Paymenter admin area, open Extensions › Available Extensions.
- Open the Ready to Install / Upload tab and click Upload Extension.
- Choose the
Paymenter-Crypto-Payment-Gateway-main.zipfile you downloaded (do not unzip it) and click Submit. - Paymenter shows Extension uploaded successfully and installs it as the PayGateCrypto gateway.

Uploads blocked on your server? Unzip the file and copy its contents to extensions/Gateways/PayGateCrypto/ with FTP/SFTP or your hosting File Manager:
Paymenter-Crypto-Payment-Gateway-main/ ├─ PayGateCrypto.php ├─ keys/ (PayGate.to public key) ├─ LICENSE └─ README.md
<paymenter>/extensions/Gateways/
├─ PayPal/
├─ Stripe/
└─ PayGateCrypto/
├─ PayGateCrypto.php
└─ keys/Add the gateway and enter your wallets
- Open Gateways and click New gateway.
- Name: the payment method name your clients see, for example “Crypto (Bitcoin, USDT, Solana…)”.
- Gateway: choose PayGateCrypto. Its settings appear below.
Fill in a wallet for each network you want to accept and leave the others empty: an empty network is not offered. Clients pay on the secure hosted multi-coin page, where they pick any coin of your networks and see the exact amount, the address and a QR code.

| Setting | What it does |
|---|---|
| Network wallets | EVM (one 0x address for ETH, USDT and USDC on Ethereum, BNB Chain, Polygon, Arbitrum, Base, Optimism, Avalanche), Bitcoin, Litecoin, Solana, Tron, Bitcoin Cash, Dogecoin, Monero, Zcash and TON. |
| The customer pays the network fee | Tick to add the estimated blockchain fee for forwarding the payment to the amount the client sends. |
| Underpayment tolerance | Payments this much below the amount due still pay the invoice (crypto prices move, some wallets round). Default 2%. |
| Dedicated API endpoint, Checkout domain, colour | Optional. See the custom domain guide. |
Click Create. The gateway is active straight away.
Test with an invoice
Open a small test invoice in the client area, click Pay, choose the crypto method and click Pay Now. The client picks a coin on the hosted page and sends the amount shown.

Each coin has its own minimum. If the invoice is below it, the hosted page asks the client to choose another coin. See the minimum per coin.
The invoice is paid and you are paid out
When the payment is confirmed on the blockchain, the crypto is forwarded instantly to your wallet and the invoice is marked Paid. The invoice is priced in the coin the client chose when the confirmation arrives; if a coin moves a lot while the payment confirms, raise the Underpayment tolerance. Each confirmed payment is a transaction with the blockchain transaction id:
| Transaction | Meaning |
|---|---|
| Status Succeeded | The invoice was paid. |
| Status Failed, amount 0 | A payment arrived but did not pay the invoice: underpaid beyond your tolerance, an unknown coin, a payout that did not go to your wallets, or an extra payment on an invoice that was already paid or cancelled. The reason is in the Paymenter log (storage/logs). Settle with the client. |

All settings explained
| Setting | What it does | Default |
|---|---|---|
| Network wallets | EVM, Bitcoin, Litecoin, Solana, Tron, Bitcoin Cash, Dogecoin, Monero, Zcash, TON. Empty = not accepted. | Empty |
| The customer pays the network fee | Adds the forwarding fee to the amount the client sends. | Off |
| Underpayment tolerance | 0%, 1%, 2%, 3%, 5% or 10%. | 2% |
| Dedicated API endpoint | Your free DDoS-protected API endpoint. | api.paygate.to |
| Checkout domain, colour | Branding for the hosted page. | checkout.paygate.to |
Building your own Laravel app instead? The Laravel package gives you coin lists, addresses, QR codes and signed callback checks in a few lines.
Troubleshooting and FAQ
Are Monero, Zcash and Solana really supported with instant payouts?
Yes. PayGate.to is the only crypto payment gateway with instant payouts for Solana (SOL), Monero (XMR), Zcash (ZEC) and Bitcoin (BTC). Fill in those wallets and the coins appear on the hosted page.
PayGateCrypto is not in the Gateway list.
The file must be at extensions/Gateways/PayGateCrypto/PayGateCrypto.php inside your Paymenter folder. Paymenter 1.4 or newer is required.
Clients see "This payment method is not available right now".
No network has a wallet yet. Fill in the wallet of at least one network and save the gateway.
The client paid but the invoice is still unpaid.
The payment may still be confirming on the blockchain. Otherwise look for the invoice under Invoice › Invoice Transactions: no transaction means the confirmation could not reach your site (check Settings › General › App URL, maintenance mode, firewalls); a Failed transaction means it did not pay the invoice, and storage/logs says why.
The client sent too little.
The transaction is recorded as Failed and the invoice stays unpaid. The funds received are already in your wallet; settle the difference with the client, or allow a larger Underpayment tolerance.
What are the fees?
1.5% flat rate plus blockchain fees. Tick The customer pays the network fee to let clients cover the blockchain fee.
Do I need an account, API key or KYC?
No registration and no KYC for you or your clients. Your wallet addresses are all you need.
How do I update the extension?
Upload the latest zip the same way. Paymenter replaces the files and keeps your gateway settings.
Other platforms and next steps
The same crypto gateway is available for every major platform:
Stuck? Our team replies fast.Send us your platform, a screenshot and the order number if you have one.
Chat with support