A crypto purchase inside a game is deliberately boring from the player's side: they pick what they want, pick a coin, and send. Everything that makes it work — rate quoting, address generation, confirmation tracking — happens behind the checkout. Here is the whole thing, from both ends.

The three steps a player actually sees

1

Sign up

The player signs in to your game, launcher or web store with the account they already have, and picks what they are buying — a gem pack, a battle pass, a skin, a tournament entry, or a straight account top-up.

They never create an account with VirtexPay. There is no separate wallet app to install and no KYC step for a normal purchase — the identity that matters is the one they already have in your game.

2

Select coin

At checkout the player chooses which cryptocurrency to pay with — Bitcoin, Ethereum or USDT — and, where an asset runs on more than one chain, which network to send over. That network choice is what decides their fee, so it is worth surfacing clearly: see coins and networks.

The fiat price of the item is converted to a crypto amount at the live rate and held for the length of the payment window, so the player knows exactly how much to send and is not exposed to a mid-payment price move.

3

Pay

The payment page shows a one-time address, the exact amount, and a QR code. The player either scans it with a mobile wallet or copies the address into an exchange withdrawal — both work, no integration on their side.

Once the network confirms the transaction, your server gets a webhook and the player is returned to your store through the return URL you set. In practice the item is in their inventory before they have switched back to the game.

Why this beats a card for the player. No 3-D Secure redirect, no issuer decline on a cross-border gaming merchant, no card details handed to a game store, and it works identically whether they are in Germany, Nigeria or the Philippines. That last point matters more than it sounds — see the country coverage pages.

What happens on your servers

The same three player steps, seen from your backend. This is the loop you implement once and then leave alone.

1

Create the invoice

When the player confirms the purchase, your server calls the Virtex Gateway REST API to create a payment invoice for the fiat amount, tagged with your own order reference — the player ID and the SKU they are buying. You get back a payment URL to send the player to.

2

Hand off and hold the order

Mark the order pending and redirect the player to the payment page with your return URL attached. Do not grant the item here — the return URL only tells you the player came back, not that the money arrived.

3

Grant on webhook, not on redirect

The webhook is the source of truth. When it fires with a confirmed status, look up your order reference, verify the amount, grant the item, and mark the order paid. Make that handler idempotent so a repeated delivery cannot double-credit an account — the details are on the integration page.

4

Settle and withdraw

The payment lands in your Virtex Gateway balance. Hold it in crypto, or off-ramp to a bank account or debit card — card payouts typically clear in minutes, bank transfers within hours. Read how to withdraw crypto to a bank account for the full walkthrough.

Put this flow in your game

Create a free Virtex Gateway account and have a working crypto checkout the same day.