Elysium Chain ID: 99901 Mainnet, 99801 Testnet

Last updated:

Endpoint and plans: Elysium RPC endpoint.

Terms on this page: Chain ID.

At a glance

Symptom details
PropertyValue
Elysium mainnet chain ID99901 (0x1863d)
net_version on mainnet"99901"
Elysium testnet chain ID99801 (0x185d9)
Settlement chainHyperEVM 999 (testnet 998)
Gas tokenHYPE, 18 decimals
Not this networkChain IDs 1338 and 1339 (Vulcan Forged)

What you see

A wallet refuses to add the network because the RPC reports a different chain ID than the one you typed; a transaction fails with an invalid-chain or invalid-sender error; a library preset called elysiumTestnet connects to a chain with another token; a chain list search returns several networks named Elysium, or none at all for the ID you expected.

Why this happens

Under EIP-155 the chain ID is signed into every transaction, so a client must use exactly the ID the network expects. Kinetiq's connection page lists Elysium mainnet as 99901 and testnet as 99801, both with HYPE as the currency, settling on HyperEVM (999) and HyperEVM testnet (998). The hex forms are what eth_chainId and wallet_addEthereumChain use: 0x1863d for mainnet and 0x185d9 for testnet; an Elysium mainnet endpoint returned 0x1863d and net_version "99901" on 9 November 2026, and Kinetiq's testnet endpoint returned 0x185d9. The name collision is older than the chain. The public chain registry behind chainid.network carries 1338 as "Elysium Testnet" and 1339 as "Elysium Mainnet", both belonging to Vulcan Forged's chain, and viem ships elysiumTestnet as chain 1338 with the LAVA symbol. None of them is Kinetiq's network. The parent chain has its own oddity: in that same registry 999 is listed as Wanchain Testnet, although Hyperliquid's documentation gives HyperEVM mainnet as 999 — a registry lookup by number alone can mislabel the settlement chain. Kinetiq submitted Elysium to the chain lists; until the entry for 99901 is merged and propagated, wallets and libraries that rely on those lists will not know the network, and you add it with explicit values.

Chain IDs you will meet around Elysium

Values from Kinetiq's and Hyperliquid's docs, the chainid.network registry and viem, checked 9 Nov 2026
Chain ID (hex)NetworkUse it for
99901 (0x1863d)Kinetiq Elysium mainnet, gas in HYPEProduction Elysium wallets, contracts and RPC clients
99801 (0x185d9)Kinetiq Elysium testnet, gas in HYPETesting; public RPC https://testnet-rpc.elysium.kinetiq.xyz, faucet and explorer from Kinetiq
999 (0x3e7)HyperEVM mainnet, the settlement chainBridge deposits and claiming withdrawals; not Elysium transactions
998 (0x3e6)HyperEVM testnetThe parent chain of Elysium testnet
1338 and 1339Vulcan Forged's Elysium testnet and mainnet (token PYR / LAVA)Nothing on Kinetiq Elysium; viem's elysiumTestnet preset is 1338

What to do

  1. Before you add a network or sign, call eth_chainId on the endpoint and compare the result with 0x1863d for mainnet or 0x185d9 for testnet. Reject anything else, including 0x3e7: that endpoint is HyperEVM.
  2. Define the chain explicitly in code (viem defineChain, ethers Network.from, Hardhat networks.chainId) with id 99901 and HYPE, 18 decimals. Do not import a preset named elysium or elysiumTestnet without checking its id.
  3. When adding the network to a wallet with wallet_addEthereumChain, pass chainId as the hex string 0x1863d; a decimal string is rejected, and a mismatch between that value and the RPC's answer is the usual reason a wallet refuses the network.
  4. Keep mainnet and testnet in separate configuration entries. Testnet runs the same stack, but contract addresses and endpoints differ; a testnet transaction signed for 99801 cannot be replayed on 99901.
  5. For bridging, switch the wallet to HyperEVM (999) for the deposit and back to Elysium (99901) to check the balance. Most "missing funds" reports are a wallet still pointed at the other chain.
  6. Re-check chain lists after the Elysium entries land: once 99901 is in the public registry, wallets may start offering it by name. The ID stays the same either way.

Check chain ID and network ID in one batch

curl -s "$ELYSIUM_RPC_URL" -H "Content-Type: application/json" -d '[
  {"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]},
  {"jsonrpc":"2.0","id":2,"method":"net_version","params":[]}
]'
# id 1: "0x1863d"  id 2: "99901"   (Elysium mainnet)

Add Elysium mainnet to a browser wallet (EIP-3085)

await window.ethereum.request({
  method: "wallet_addEthereumChain",
  params: [{
    chainId: "0x1863d",
    chainName: "Elysium",
    nativeCurrency: { name: "HYPE", symbol: "HYPE", decimals: 18 },
    rpcUrls: [ELYSIUM_RPC_URL],
  }],
});

Testnet, against Kinetiq's public testnet RPC

cast chain-id --rpc-url https://testnet-rpc.elysium.kinetiq.xyz   # 99801

When this is not our problem

Chain IDs are assigned by the network and checked by every client; an RPC provider only returns them. Triport serves Elysium mainnet only, not testnet: the keyed URL form is https://triport.io/r/<YOUR_KEY>/elysium, and the network config page lists the keyless public URL and wallet snippets for chain ID 99901.

FAQ

What is the Elysium chain ID?
Elysium mainnet is chain ID 99901, 0x1863d in hex. Elysium testnet is 99801 (0x185d9).
What is the Elysium testnet RPC?
Kinetiq's public testnet endpoint is https://testnet-rpc.elysium.kinetiq.xyz, chain ID 99801. Kinetiq notes that every user shares a public RPC, so it is meant for testing.
Is chain ID 999 Elysium?
No. 999 is HyperEVM, the chain Elysium settles on. You use it for bridge deposits and withdrawal claims, not for Elysium transactions.
Why does viem's elysiumTestnet connect to another chain?
That preset is Vulcan Forged's Elysium testnet, chain ID 1338 with the LAVA symbol. Define Kinetiq Elysium yourself with id 99901.
Where is the Elysium block explorer?
Kinetiq lists elysium.kinetiq.xyz/testnet-explorer for testnet, and its chain-list submission for mainnet names elysium.kinetiq.xyz/explorer. Verify you are looking at chain 99901.

Sources