Skip to content

Building on Elysium: A Developer Guide to the Gotchas

Elysium is a standard EVM chain, but a few things trip developers up: 21,140-gas transfers, no public mempool, viem's wrong elysiumTestnet export, block.number semantics and no HyperCore precompiles at launch.

3 min readUpdated First published By Titan Locker

Elysium runs stock ArbOS, so Solidity and Vyper compile unchanged and Foundry, Hardhat, viem and ethers work as on any Arbitrum Orbit chain. Six things differ from what you might assume: transfers need about 21,140 gas, there's no public mempool, block.number returns HyperEVM's height, viem has no built-in Kinetiq Elysium chain, HyperEVM's HyperCore precompiles aren't there at launch, and finality follows batch posts to HyperEVM.

The gotchas

GotchaWhat happensFix
Hard-coded 21,000 gas“intrinsic gas too low”: a plain HYPE transfer needs about 21,140 gas because it includes the L1 posting costAlways estimate gas
Pending-tx subscriptionsNever deliver — there's no public mempoolWatch blocks or receipts instead
block.numberReturns an approximate HyperEVM (parent) heightUse ArbSys(100).arbBlockNumber() for Elysium's own height
Same timestampsConsecutive 100 ms blocks can share a timestampDon't assume strictly increasing block.timestamp
viem's elysiumTestnetIs VulcanForged's chain (ID 1338, LAVA)Define Kinetiq's Elysium yourself (below)
HyperCore precompilesL1Read/CoreWriter calls return empty data, so ported contracts revertWait for the post-launch upgrade, or gate the calls
eth_getProofOnly served for state under 127 blocks old (about 13–25 s)Fetch proofs promptly
FinalityReceipts are soft confirmations; safe/finalized advance when a batch posts to HyperEVM (about every 15 min on testnet)Use the finalized tag where it matters

Define Elysium in viem

ts
import { defineChain } from "viem";

export const elysium = defineChain({
  id: 99901,
  name: "Elysium",
  nativeCurrency: { name: "HYPE", symbol: "HYPE", decimals: 18 },
  rpcUrls: {
    // Use the official RPC from Kinetiq's docs, or your provider's
    // (e.g. https://elysium-mainnet.g.alchemy.com/v2/{API_KEY}).
    default: { http: ["<your Elysium RPC URL>"] },
  },
  contracts: {
    multicall3: { address: "0xcA11bde05977b3631167028862bE2a173976CA11" },
  },
});

For the testnet, use id 99801 and https://testnet-rpc.elysium.kinetiq.xyz.

Fees and ordering

  • Gas is paid in native HYPE; the estimate includes an L1 (HyperEVM) component reported as gasUsedForL1.
  • The minimum gas price read on mainnet was 0.1 gwei (5 November 2026).
  • Transactions are ordered by priority fee, with no privileged lanes; Timeboost is planned.

Verifying contracts

Kinetiq's explorer is Blockscout-based; Chainstack documents the verification API at https://elysium.kinetiq.xyz/api (no key). Mainnet explorer details are published at launch.

Tokens and liquidity

  • Avoid fee-on-transfer and rebasing designs if your token needs the official bridge.
  • To reach HyperCore spot later, mirror the token to HyperEVM and run HyperCore's spot deployment.
  • Lock your launch liquidity and team allocations so holders can verify them — Titan Locker supports Uniswap V2 LP, V3/V4 positions, tokens and vesting on Elysium.

Frequently asked questions

Why does my 21,000-gas transfer fail on Elysium?

Elysium charges for posting data to HyperEVM, so a plain HYPE transfer needs about 21,140 gas. Estimate gas instead of hard-coding it.

Does viem support Elysium?

Not built in: viem's elysiumTestnet is VulcanForged's unrelated chain. Define Kinetiq's Elysium with defineChain (chain ID 99901, HYPE).

Does Elysium support Foundry and Hardhat?

Yes. Elysium is a standard EVM chain running stock ArbOS; Foundry, Hardhat, viem and ethers work unchanged.

Is there a mempool on Elysium?

No public mempool; pending-transaction subscriptions never deliver. Watch blocks or receipts.

What does block.number return on Elysium?

An approximate HyperEVM height. Use ArbSys(100).arbBlockNumber() for Elysium's own block number.

Is Multicall3 on Elysium?

Yes, at the canonical address 0xcA11bde05977b3631167028862bE2a173976CA11.

Lock tokens on Robinhood ChainImmutable, audited, verifiable by anyone. 0.025 ETH per lock.

Something unclear or out of date? Tell us in Telegram support