Build

EVM-equivalent for almost all purposes

Solidity and Vyper contracts, Foundry, Hardhat, ethers and viem work as on Ethereum. This page covers configuration and the few differences that matter.

RPC
https://rpc.mayachain.io
Chain ID
6292
Native currency
M3G, 18 decimals
Verification API
https://scan.mayachain.io/api/

Foundry

[rpc_endpoints]
maya = "https://rpc.mayachain.io"

[etherscan]
maya = { key = "any", chain = 6292, url = "https://scan.mayachain.io/api/" }

Deploy and verify with --verifier blockscout. MayaScan does not need an API key; any placeholder value works.

Hardhat

networks: {
  maya: { url: "https://rpc.mayachain.io", chainId: 6292, accounts: [/* … */] },
},
etherscan: {
  apiKey: { maya: "any" },
  customChains: [{
    network: "maya",
    chainId: 6292,
    urls: {
      apiURL: "https://scan.mayachain.io/api",
      browserURL: "https://scan.mayachain.io",
    },
  }],
}

viem

import { defineChain } from 'viem';

export const mayaChain = defineChain({
  id: 6292,
  name: 'MAYA CHAIN',
  nativeCurrency: { name: 'Maya 3G', symbol: 'M3G', decimals: 18 },
  rpcUrls: { default: { http: ['https://rpc.mayachain.io'] } },
  blockExplorers: { default: { name: 'MayaScan', url: 'https://scan.mayachain.io' } },
});

Differences from Ethereum

  1. 01

    Native currency

    M3G. msg.value, address.balance and withdrawEth are all in M3G.

  2. 02

    block.number

    Estimate of the Ethereum block number. Use ArbSys(0x64).arbBlockNumber() for MAYA CHAIN.

  3. 03

    block.timestamp

    Set by the sequencer, within 24 hours before to 1 hour after real time. No fixed block time.

  4. 04

    Priority fees

    Not collected; ordering is first come, first served.

  5. 05

    Gas

    Includes the Ethereum data charge. Always estimate; never hard-code limits from Ethereum.

  6. 06

    Contract size

    Max contract size 48 KB; max init code 96 KB (twice Ethereum's long-standing limits).

Selected precompiles

Arbitrum system contracts live at fixed addresses on every Arbitrum chain, including MAYA CHAIN.

ContractAddressUse
ArbSys0x64Block number/hash, sendTxToL1, withdrawEth
ArbGasInfo0x6cGas prices, minimum base fee, L1 pricing
ArbOwnerPublic0x6bRead chain owners and public settings
ArbRetryableTx0x6eInspect and redeem retryable tickets
NodeInterface0xC8RPC-only: gas estimates, batch lookups, withdrawal proofs

Arbitrum SDK

The Arbitrum TypeScript SDK handles deposits, retryable tickets, withdrawals and proofs. MAYA CHAIN is not built in — register it with registerCustomArbitrumNetwork using the published ethBridge and tokenBridge addresses from mayachain.io (Contract addresses / Developer guide).

Full field lists and contract addresses for SDK registration live in the official developer documentation and on the Security page. Prefer the machine-readable config at maya-chain.json.

Cross-chain (CCIP)

Two routes exist conceptually: the canonical bridge to Ethereum, and Chainlink CCIP to other chains.

Availability on MAYA CHAIN

CCIP works only between chains Chainlink has added to CCIP. MAYA CHAIN is not yet listed in the CCIP Directory. Until it is, assets move between Ethereum and MAYA CHAIN through the canonical bridge only. M3G on Ethereum is a Chainlink CCIP-compatible (burn-and-mint) token; its CCIP administration is held by UK Financial Ltd.