guide9 min read

Chiliz Mainnet RPC for Wallet Builders

Chiliz RPC checks for wallets: chain ID 88888 / 0x15b38, CHZ gas at 2,500 gwei, Spicy testnet mix-ups, and 4 public endpoints that passed 8 probes.

By RPC Directory•
#Chiliz#CHZ#RPC#Wallet#Chain ID#MetaMask#Rabby#EVM
$chiliz-mainnet-rpc.md

Chiliz Chain is an EVM Layer 1 for sports and entertainment tokens, with CHZ as the gas token. Blocks arrive every 3 seconds. The JSON-RPC surface is standard Ethereum, so wallet code written for Ethereum mostly works, but three things trip up wallet builders: the testnet uses the same CHZ symbol, the base fee is thousands of gwei, and the safe and finalized tags do not mean what they mean on Ethereum.

This is not a ranking of providers. Use the Chiliz Mainnet hub to compare endpoints, then run the checks below on the URL you configure. The Chiliz Mainnet providers page lists the options side by side.

Chain ID 88888 is mainnet, 88882 is Spicy testnet

  • Chiliz Chain mainnet: chain ID 88888, hex 0x15b38. eth_chainId returned 0x15b38 on every public URL in every round of our probe, and net_version on rpc.chiliz.com returned "88888". The Chiliz RPC connection docs list the same chain ID.
  • Spicy testnet: chain ID 88882, per the same docs page. Spicy also uses the CHZ symbol, so a wallet that shows CHZ without the network name can make a testnet balance look like real funds.
  • Scoville was the earlier testnet. Chiliz replaced it with Spicy in May 2023, so treat any Scoville config as stale.

Wallet-add fields for mainnet, matching the Chiliz docs:

  • Network name: Chiliz Chain
  • Chain ID: 88888 (or 0x15b38 if the form wants hex)
  • Currency symbol: CHZ
  • RPC URL: a JSON-RPC HTTPS endpoint you have already probed, such as https://rpc.ankr.com/chiliz
  • Block explorer: https://scan.chiliz.com (the docs list https://chiliscan.com first)

Native gas is CHZ with 18 decimals. Call eth_chainId on the exact RPC URL you will ship and expect 0x15b38. A timeout, an HTML page, an API-key error, or a rate-limit body is not Chiliz mainnet for that transport.

Public endpoints that passed 8 of 8 rounds

We probed every Chiliz mainnet URL on the hub 8 times, about 55 seconds apart, on 2026-10-14 between 02:12 and 02:19 UTC. Each round called eth_chainId, eth_getBalance on the zero address and eth_getBlockByNumber("latest"), with a curl User-Agent on every request. Hosts ran in parallel, with one connection per host. All four keyless public URLs passed all three calls in 8 of 8 rounds. On every one, the latest block's timestamp was within 3 seconds of our clock, and no URL was more than 1 block behind the newest block any URL returned in the same round:

EndpointTransportNotes
https://rpc.ankr.com/chilizHTTPSThe recommended endpoint in the Chiliz docs. Head 0 to 3 s old
https://rpc.chiliz.comHTTPSRun under the Chiliz name on the hub. Head 0 to 3 s old
https://chiliz.publicnode.comHTTPSHead 0 to 2 s old, 1 block behind in one round. The Chiliz docs list a different PublicNode hostname, chiliz-rpc.publicnode.com, which we did not probe
https://chiliz-mainnet.gateway.tatum.ioHTTPSHead 0 to 2 s old

The hub also lists a Dwellir archive endpoint over HTTPS and WSS. It needs an API key appended to the URL, so without one it answered every call with "API key does not exist". That is the expected response for a keyed row, not an outage, and it stays listed. Use it with a key from the Dwellir dashboard if you need archive state.

The hub has no keyless WebSocket row for Chiliz mainnet. The Chiliz docs list wss://chiliz-rpc.publicnode.com, which we did not probe.

A row on a directory page is a starting point, not proof it serves Chiliz mainnet today.

Fees: a 2,500 gwei base fee, priced in CHZ

On rpc.chiliz.com at about 02:20 UTC:

  • The latest block's baseFeePerGas was 0x246139ca800 (2,500 gwei), and eth_feeHistory over 5 blocks showed the same value in every block.
  • eth_gasPrice returned 0x2464f377200 (2,501 gwei).
  • eth_maxPriorityFeePerGas returned 0x3b9aca00 (1 gwei). In eth_feeHistory, the 50th percentile tip was 0 in 4 of 5 blocks and 1 gwei in the other.
  • eth_estimateGas for a plain CHZ transfer between two ordinary addresses returned 0x5208 (21,000).
  • The block gas limit was 0x34597bb (54,892,475), and the 5 blocks used under 0.5 percent of it.

At that gas price, a plain transfer costs 21,000 × 2,501 gwei, about 0.0525 CHZ. What that means for a wallet:

  • Do not cap the fee field at Ethereum-sized numbers. A sanity check that rejects gas prices above a few hundred gwei will block every Chiliz send.
  • Read the price, do not hardcode it. The base fee was flat across the sampled blocks, but take it from eth_feeHistory or the latest block rather than a constant.
  • Show the fee in CHZ. Users compare it with their CHZ balance, not with ETH.

Finality: safe and finalized return block 0

During the probe, latest advanced 128 blocks in about 6.5 minutes, and across the last 10,000 blocks timestamps spanned 30,000 seconds, exactly 3 seconds per block. web3_clientVersion on rpc.chiliz.com returned Geth/v2.9.5/linux-amd64/go1.26.4.

The finality tags are the surprise. On all four passing URLs, eth_getBlockByNumber("safe") and eth_getBlockByNumber("finalized") returned the genesis block (number 0x0), with no error. Code that waits until a deposit's block is at or below finalized will never credit anything, and code that reads the finalized block's timestamp will see a date in 2020.

For a wallet:

  • latest is fine for balances on screen.
  • Do not rely on the safe or finalized tags on Chiliz mainnet. Check that the tag returns a block number above 0 before you use it, and fall back to a confirmation count below latest that fits the amount.
  • Re-run that check after node upgrades, since the behavior comes from the node, not the wallet.

Add Chiliz to MetaMask or Rabby

These are the values we checked on 2026-10-14, not values copied from a list:

  • eth_chainId returned 0x15b38 (88888) on every passing URL in the table above.
  • The Chiliz docs list Chiliz Chain, chain ID 88888 and CHZ as the wallet fields, with https://rpc.ankr.com/chiliz as the recommended RPC.
  • https://scan.chiliz.com returned HTTP 200 to a request with a browser User-Agent. https://chiliscan.com returned HTTP 403 to the same request, which may be bot filtering rather than an outage, so open it in a browser before you ship it as the explorer link.

MetaMask: follow the MetaMask custom RPC guide. Check 'Additional networks' first. To add it by hand, open 'Networks', choose 'Add a custom network', and enter the five fields from the chain ID section with a URL from the passed table. MetaMask does not verify that a custom network is what it claims to be, so the probe is your check.

Rabby: follow the Rabby custom network guide. Check whether Chiliz already appears in Rabby's network list before you add a custom entry. If you add it by hand, enter chain ID 88888 and an RPC URL that returned 0x15b38 in your own probe.

Dapps: for wallet_addEthereumChain, send chainId: "0x15b38", chainName: "Chiliz Chain", nativeCurrency: { name: "Chiliz", symbol: "CHZ", decimals: 18 }, rpcUrls with your probed HTTPS endpoint, and blockExplorerUrls: ["https://scan.chiliz.com"]. For wallet_switchEthereumChain, send only { chainId: "0x15b38" }, and call wallet_addEthereumChain if MetaMask returns error 4902.

Wallet-add gotchas that show up in QA

  1. Spicy chain ID 88882 under a "Chiliz" label: balances look real but are testnet CHZ.
  2. CHZ symbol on two networks: show the network name next to the balance.
  3. Fee sanity caps: a 2,500 gwei base fee fails checks tuned for Ethereum.
  4. Waiting on finalized: it returns block 0 on the public URLs we tested, so a deposit never looks final.
  5. Wrong PublicNode hostname: the hub row is chiliz.publicnode.com, the docs list chiliz-rpc.publicnode.com. Probe the one you ship.
  6. Shared public URLs under load: the Chiliz docs say the free endpoints are rate-limited and recommend backoff on errors, not instant retries.

Public vs dedicated for wallet traffic

Public endpoints are fine for:

  • Local development and wallet QA
  • Low-volume eth_chainId and eth_blockNumber probes
  • One-off scripts and docs examples

They are a poor primary path when you:

  • Run production wallet RPC for many users (balance, nonce, fee estimate, send, receipt polls)
  • Need wide eth_getLogs ranges or historical state
  • Depend on WebSocket subscriptions
  • Cannot absorb shared-node rate limits during a match day, fan token sale, or market spike

Probe the candidate URL before you call it ready:

  1. eth_chainId returns 0x15b38.
  2. The latest block advances when you poll twice 3 seconds apart, and its timestamp is within a few seconds of wall-clock time.
  3. A plain transfer eth_estimateGas returns 0x5208 (21,000).
  4. eth_getBalance on an address you care about returns a value, not a rate-limit or method error.
  5. You know what finalized returns on that URL, and your confirmation logic does not depend on it if it is block 0.
  6. A burst of 20 to 50 quick requests does not return HTTP 429 or a JSON-RPC rate-limit error at the volume you expect per client.

For production wallet traffic, compare the rows on the same hub for method coverage, archive access, and quota. At the time of writing the hub lists Dwellir as the keyed archive row, next to the four public URLs above.

A cheaper URL that fails the probe above is not a savings. The public vs paid guide covers when a shared endpoint stops being enough, and the pricing calculator estimates monthly cost for a given request mix. Log-heavy indexers should also read the eth_getLogs caps guide, and the dead public endpoints guide explains why listed URLs stop answering.

Practical split for a wallet stack

  • User-facing Chiliz network row: chain ID 88888 / 0x15b38, CHZ symbol with the network name shown, an explorer you opened, an RPC you probed today.
  • Testnet row, if you need it: Spicy, chain ID 88882, a separate config key, never reused as the mainnet RPC.
  • Fee estimation: EIP-1559 fields from the RPC, no Ethereum-sized caps, shown in CHZ.
  • Confirmations: show latest right away, credit after a confirmation count, not after finalized.
  • Backend / indexer: a dedicated or keyed endpoint with the eth_getLogs range and archive depth you need. Do not share the browser wallet's public URL.

Ship the hub comparison and the probe first. A network called "Chiliz" in a dropdown does not replace eth_chainId returning 0x15b38.