WEMIX RPC: Building on a Gaming-First EVM Chain
WEMIX3.0 is the Layer 1 built by Wemade — a Korean game company, not a crypto-native team — and that origin shows in the design. It's tuned for games: fast blocks, high throughput, and a validator model that gives you immediate confirmation, which matters a lot when a player just minted an item or completed a trade. For a developer the good news is that it's standard EVM — chain ID 1111, ordinary eth_*, Solidity and viem/ethers unchanged. What's worth understanding is why it behaves the way it does, because two design choices shape how you build and index on it. Here's the map.
The essentials
WEMIX3.0 mainnet is chain ID 1111, an EVM Layer 1 with:
- WEMIX as the gas token (18 decimals) — also used for staking.
- ~1-second blocks — short block times suited to game transaction volume.
- Stake-based Proof-of-Authority — blocks are produced and the network governed by a council of up to 40 Node Council Partners, with a path toward a fuller staked-PoS model.
- EVM-compatible — Solidity contracts and standard Ethereum tooling apply directly.
Connecting is boringly standard:
import { createPublicClient, http, defineChain } from "viem";
const wemix = defineChain({
id: 1111,
name: "WEMIX3.0",
nativeCurrency: { name: "WEMIX", symbol: "WEMIX", decimals: 18 },
rpcUrls: { default: { http: ["https://rpc.swiftnodes.io/rpc/wemix?key=YOUR_API_KEY"] } },
});
const client = createPublicClient({ chain: wemix, transport: http() });
await client.getBlockNumber(); // just works
WEMIX shares its heritage with another Korean EVM chain we've covered: Wemade originally ran its tokens and games on Ethereum and Klaytn before migrating to its own chain in 2022. If you've built on Kaia (the Klaytn–Finschia merger), the ecosystem and tooling conventions will feel familiar.
Design choice #1: PoA council → instant finality, no reorgs
WEMIX doesn't use permissionless proof-of-stake or proof-of-work — it uses a stake-based Proof-of-Authority council of known validators. That's a genuine trade-off to be honest about (a curated validator set is more centralized than a permissionless one), but it buys a property developers care about: fast, deterministic finality.
The practical payoff for you:
- No reorgs to defend against. With a known council producing blocks under BFT-style finality, a confirmed block stays confirmed. The whole class of reorg-handling defenses — waiting N confirmations, keying on
(txHash, logIndex), tolerating tip rollbacks — mostly collapses to "confirm once." You can index at the head and trust it. - Immediate UX confirmation. For a game, "did my item mint land?" resolves in about a second and won't reverse. You don't have to build the "pending → maybe-reorged" state machine that probabilistic chains force on you.
Code written for Ethereum that waits 12 confirmations before treating a transaction as final is just adding a dozen seconds of pointless latency here.
Design choice #2: it's a gaming chain, so plan for game-shaped traffic
WEMIX's reason to exist is its game ecosystem — WEMIX PLAY (the game platform), NILE (DeFi and NFTs), WEMIX Pay (payments), and a stablecoin product. The consequence for an RPC consumer is a traffic profile dominated by high-frequency, asset-centric transactions: item mints, in-game economy transfers, NFT activity — often in bursts around game events or drops.
That shapes your indexing more than your write path (much like the mint-heavy pattern we covered on Zora):
- Filter for asset events. Game items and rewards are ERC-721/1155 mints and transfers. Filter
eth_getLogson the event signature (topics[0]) plusfrom = 0x0to isolate mints from ordinary transfers. - Page dense blocks. At ~1s blocks with burst traffic, a wide block range can return a lot of logs — page by block range and respect the endpoint's log/range limits.
- Stream over WebSocket. For live game state, subscribe to
logs/newHeadsoverwss://rather than tight polling; at one-second blocks, polling lags fast.
// Stream ERC-721 item mints (Transfer from the zero address) live
const ws = new WebSocket("wss://rpc.swiftnodes.io/ws/wemix?key=YOUR_API_KEY");
ws.onopen = () => ws.send(JSON.stringify({
jsonrpc: "2.0", id: 1, method: "eth_subscribe",
params: ["logs", {
topics: [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", // Transfer
"0x0000000000000000000000000000000000000000000000000000000000000000", // from 0x0 = mint
],
}],
}));
What carries over unchanged
Past those two considerations, WEMIX is standard EVM:
eth_call,eth_getBalance,eth_getLogs,eth_getTransactionReceipt,eth_estimateGas,eth_sendRawTransaction,eth_subscribeall behave normally — see reading receipts and gas estimation.- Solidity contracts, ABIs, and the viem/ethers/hardhat/foundry toolchain deploy and run as-is.
- WEMIX is the gas token with 18 decimals — no exotic fee handling.
The short version
WEMIX3.0 (chain ID 1111) is a gaming-first EVM L1 from Wemade: WEMIX gas, ~1-second blocks, and a stake-based PoA council of up to 40 validators. viem/ethers/foundry work unchanged. The two things that shape building on it: the PoA council gives deterministic finality with no reorgs (drop the confirmation-counting and reorg defenses — confirm once), and the game-heavy traffic means your indexing should be tuned for bursty ERC-721/1155 mint and transfer activity, streamed over WebSocket.
Building a game, a marketplace, or a WEMIX PLAY integration? A flat-rate WEMIX RPC endpoint gives you chain 1111 with WebSocket support alongside 75+ other chains under one key. Grab a free key and point your stack at:
https://rpc.swiftnodes.io/rpc/wemix?key=YOUR_API_KEY
John Sullivan covers RPC infrastructure, node operations, and multi-chain development at SwiftNodes — what it actually takes to keep endpoints fast, fresh, and reliable across EVM and non-EVM networks.
Related posts
- Plasma RPC: The Chain Where Sending USDT Costs Nothing
Plasma is a stablecoin-focused EVM L1 (chain ID 9745) with a protocol paymaster that makes basic USDT transfers zero-fee — users don't even need the native token. It's standard EVM (viem/ethers work), with sub-second PlasmaBFT finality and Bitcoin anchoring. Here's the developer map, including how the gasless-stablecoin model changes payment flows.
- Astar RPC: One Chain, Two VMs, Polkadot Security
Astar is a Polkadot parachain that runs both EVM and WebAssembly contracts. Chain ID 592 is its EVM endpoint — standard eth_*, so viem/ethers/foundry just work — but underneath it's Substrate with Polkadot's deterministic GRANDPA finality. Here's the developer map: what the EVM RPC gives you, and what the parachain model changes.
- Flare RPC: The L1 With Oracles Built Into the Protocol
Flare is an EVM L1 (chain ID 14) where decentralized data feeds aren't a third-party add-on — they're enshrined in the protocol. FTSO gives you price feeds and FDC verifies cross-chain and Web2 data, both read via ordinary eth_call. viem/ethers just work; here's the developer map, including how the native data layers change what you build.