How to Accept Crypto Payments on Magento 2

Customers pay with a QR code on your own order confirmation page, or pick any coin on the hosted page, and every payment is forwarded instantly to your wallet. For Magento Open Source, Adobe Commerce and Mage-OS.

Updated October 2026 · Free and open source · Works with the latest Magento release

SolanaMoneroZcashBitcoin

The only crypto payment gateway with instant payouts for Solana (SOL), Monero (XMR), Zcash (ZEC) and Bitcoin (BTC).

Every coin your customer sends is forwarded straight to your own wallet the moment the payment is confirmed, with no holds, no sign up and no KYC. It works the same in all our plugins and modules: WooCommerce, Easy Digital Downloads, WHMCS, FOSSBilling, Paymenter, OpenCart, PrestaShop and Magento.

Setup timeAbout 15 minutes
Works withMagento 2.4.4+
Fees1.5% + blockchain fees
PayoutsInstant, to your wallet

What you need before you start

  • Magento 2.4.4 or newer: Magento Open Source, Adobe Commerce or Mage-OS, with PHP 7.4 or 8.1 to 8.5. Works with the default Luma checkout.
  • SSH access with Composer (recommended), or FTP plus someone who can run bin/magento commands.
  • Magento cron running, and outbound HTTPS from the server (to load the live coin list).
  • A wallet address for each coin 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 0x address 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.

Install the module

Run these commands over SSH from your Magento root folder (the folder that contains bin/magento). Composer is the recommended way because it makes updates easy.

composer config repositories.paygate-crypto vcs https://github.com/paygate-to/Magento-Crypto-Payment-Gateway
composer require paygate/module-crypto-payment:dev-main
bin/magento module:enable PayGate_CryptoPayment
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush

setup:di:compile and setup:static-content:deploy are only needed in production mode (add your locales to the deploy command if your store is not in English).

No SSH or Composer? Install manually

  1. Download Magento-Crypto-Payment-Gateway-main.zip and unzip it.
  2. Upload the files from inside the Magento-Crypto-Payment-Gateway-main folder to app/code/PayGate/CryptoPayment/ in your Magento folder (create the folders if needed).
  3. Run the same bin/magento commands as above, starting with module:enable (your host can run them for you).

Open the payment settings

Go to Stores › Configuration › Sales › Payment Methods and expand PayGate.to Crypto Payments (instant payouts, no KYC). The General settings apply to both payment options:

Magento Payment Methods with the PayGate.to Crypto Payments section highlighted
The PayGate.to Crypto Payments section.
Magento crypto General settings: API Domain, Underpaid Tolerance, Customer Pays Blockchain Fees, Cancel Unpaid Orders After
General settings: API Domain, Underpaid Tolerance (1%), Customer Pays Blockchain Fees and the unpaid-order cancel time (48 hours).

Set up individual coins (QR code on your store)

Expand Individual coins (QR code on your store), set Enabled to Yes, then tick each coin you want in Accepted Coins and paste its payout wallet. The list and icons are loaded live from PayGate.to.

Magento Accepted Coins table with Bitcoin and USD Coin (ERC20) ticked and their wallets filled in
Tick a coin and enter the wallet that receives it. Coins without a wallet are not offered at checkout.

Optional: set up Multicoin

Expand Multicoin (hosted checkout, all coins), set Enabled to Yes and fill in one wallet per network:

FieldAccepts
EVM Wallet (ETH, ERC20, BEP20, Polygon, Arbitrum, Base, Optimism, Avalanche-C)ETH and EVM tokens
Bitcoin Wallet (BTC)Bitcoin
Solana Wallet (SOL and Solana tokens)SOL, USDC and USDT on Solana and more
Monero Wallet (XMR)Monero
Zcash Wallet (ZEC)Zcash
Bitcoin Cash, Litecoin, Dogecoin, Tron (TRX, TRC20 USDT), TONOne field each
Magento Multicoin settings with Enabled Yes and the Bitcoin, Solana, Monero and Zcash wallet fields highlighted
One wallet per network. Then click Save Config.

Optionally add a logo and colours for the hosted page and a Custom Domain from the custom domain guide.

Place a test order

In a private window, add a product to the cart and check out. Choose Cryptocurrency, pick a coin and click Place Order.

Magento checkout with Cryptocurrency selected and Bitcoin chosen
The customer picks the coin at checkout.

The order confirmation page then shows the payment box on your own store: QR code, exact amount, the address with a Copy button and a live status. The amount is guaranteed for 3 hours, and the order email links back to the payment page.

Magento order success page with the crypto QR code, amount, address, Copy button and Waiting for payment status
“Please complete your payment” on the order confirmation page.

Each coin has its own minimum; an order below it is not placed and the customer is asked to choose another coin. See the minimum per coin.

All settings explained

SettingWhat it doesDefault
API DomainYour dedicated API endpoint.api.paygate.to
Underpaid ToleranceAccepts payments slightly below the total (0% to 10%).1%
Customer Pays Blockchain FeesAdds the estimated network fee.No
Cancel Unpaid Orders After (hours)Cancels unpaid orders and releases stock (0 = never). Orders that received a payment are never cancelled. Needs cron.48
Individual coins: Enabled, Title, Accepted CoinsQR code payment on your store.No, Cryptocurrency
Multicoin: Enabled, Title, network walletsHosted checkout with all coins.No, Cryptocurrency (all coins)
Custom Domain, logo, colours (Multicoin)Branding and domain of the hosted page.checkout.paygate.to

How orders are updated

Order statusWhen
Awaiting crypto paymentThe order was placed and the payment address created.
ProcessingThe full amount was received (within your tolerance); the order is invoiced.
On HoldLess than the amount due. The customer can send the rest to the same address; the order then completes automatically.
CanceledNo payment at all after the Cancel Unpaid Orders After time.

Payments to the same address add up. A further payment on an already paid order is added as a note so you can refund it.

Troubleshooting and FAQ

Is 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), in Magento and every other module.

The coin table says it could not load the coin list.

Your server could not reach PayGate.to. Reload in a moment; coins you already set up are kept. If it continues, allow outbound HTTPS to api.paygate.to (or your API Domain).

The crypto method does not appear at checkout.

Set Enabled to Yes and give at least one coin both the tick and a wallet (Multicoin: at least one wallet). Orders can only be placed in currencies PayGate.to prices. Flush the cache after saving.

The customer paid but the order did not change.

The confirmation URL /paygatecrypto/callback/index must be reachable from the internet. On Adobe Commerce with Website Restrictions, allow it and /paygatecrypto/payment/* for guests. Check var/log/paygate_crypto.log.

The customer sent too little.

The order goes On Hold. The customer can send the rest to the same address (for individual coins the payment page asks for it); when it arrives, the order is completed automatically.

What are the fees?

1.5% flat rate plus blockchain fees.

How do I update the module?

Run composer update paygate/module-crypto-payment, then bin/magento setup:upgrade (plus compile and deploy in production) and flush the cache.

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