Accepting gaming tokens: IMX, GALA, SAND and MANA on one checkout
Players often hold the token of the game they play more than they hold dollars or Bitcoin. If you sell to that audience — game servers, mods, art, coaching, merchandise — letting them pay in that token removes a step. easyway accepts four gaming tokens: Immutable (IMX), Gala (GALA), The Sandbox (SAND) and Decentraland (MANA), all as ERC-20 tokens on Ethereum, through the same checkout and API as ETH and USDT. This post covers which contracts count, the layer-2 copies that don't, and what changes when a token is worth a few cents.
The four tokens and their Ethereum contracts
A token is identified by its contract address, not its name, so the gateway credits exactly these contracts and nothing else called the same:
| Token | Contract (Ethereum) | Decimals | Smallest payment counted | Withdrawal fee / min. |
|---|---|---|---|---|
| Immutable (IMX) | 0xF57e…79fF | 18 | 0.1 IMX | 15 / 4 IMX |
| Gala (GALA) | 0xd1d2…7cae | 8 | 5 GALA | 1100 / 310 GALA |
| The Sandbox (SAND) | 0x3845…a5d0 | 18 | 0.1 SAND | 40 / 11 SAND |
| Decentraland (MANA) | 0x0F5D…C942 | 18 | 0.1 MANA | 25 / 7 MANA |
The full addresses are on each coin's page and in the API docs. Each one was taken from the issuer's own documentation or repository and checked against the chain before it was listed. Note GALA's 8 decimals: wallets handle that on their own, but if you read raw amounts from webhooks or the API, use the decimals of the asset rather than assuming 18.
The trap: the same name on another network
Gaming tokens move between networks more than most. Games run on cheaper chains and bridge their token there, so a player's wallet may show a "SAND" or "MANA" balance that is not the Ethereum token at all. These look alike but are not credited:
| Accepted | Not accepted |
|---|---|
| IMX on Ethereum (ERC-20) | IMX on Immutable zkEVM (its gas coin) or on Immutable X |
| GALA on Ethereum (ERC-20) | the retired GALA v1 contract; GALA on Solana or GalaChain |
| SAND on Ethereum (ERC-20) | SAND on Polygon (bridged copy, also named "SAND") |
| MANA on Ethereum (ERC-20) | "(PoS) Decentraland MANA" on Polygon |
A payment on one of those networks never reaches the invoice address on Ethereum, so the invoice stays open. The checkout labels every option "Ethereum · ERC-20", and a customer paying from an exchange must choose the Ethereum network in its withdrawal menu — the guide to paying from an exchange shows how. Players whose tokens sit on a layer 2 bridge them back to Ethereum first, or pay with USDT instead.
Small prices, large amounts
These tokens trade at cents or less, so a modest order becomes hundreds or thousands of tokens. On a USD invoice that does not matter to you: the token amount is locked from the exchange rate when the customer selects the coin, and the checkout shows the exact figure to send. Transfers below the "smallest payment" in the table are skipped as dust (usually spam), while several larger transfers to the same invoice add up. A payment is final after 12 Ethereum confirmations, usually a few minutes. Short and late payments follow the underpaid and late payments guide.
What it costs
The customer pays the Ethereum gas of their transfer. You pay a flat 0.5% of each confirmed payment: 500 SAND received leaves 497.5 SAND on your balance. Each token stays in that token — none of them is a stablecoin, so price moves after the payment are yours. The withdrawal fee and minimum are fixed token amounts sized for the gas of one ERC-20 transfer; they are on the pricing page with every other coin. If you would rather end up holding dollars, keep USDT next to the gaming tokens, as in the example below.
A gaming checkout in one call
Create a USD invoice and list the tokens to offer in allowed_assets. Here the four gaming tokens plus USDT on Ethereum, so a player without game tokens can still pay:
curl -X POST https://api.easyway.cash/v1/invoices \
-H "Authorization: Bearer $EASYWAY_API_KEY" \
-H "Idempotency-Key: order-5531" \
-H "Content-Type: application/json" \
-d '{"amount":"25","currency":"USD","order_id":"5531","allowed_assets":["IMX_ERC20","GALA_ERC20","SAND_ERC20","MANA_ERC20","USDT_ERC20"],"lifetime":30}'Redirect the customer to the payment_url in the response and deliver when the signed invoice.paid webhook arrives. The quickstart has the same call in Node.js, PHP and Python, the sandbox guide runs it without real funds, and a payment link does the same with no code. easyway is not connected to any of these games and does not move in-game items or NFTs — it only receives the token as payment for what you sell. Payments sit on your balance until you withdraw them, and live withdrawals only go to addresses you whitelisted with two-factor authentication (see security).