Skip to main content
Get started with a reliable MegaETH RPC endpoint to use the tools below.
MegaETH is EVM compatible, so standard Ethereum development tools work. Note that MegaETH uses a multidimensional gas model with separate compute and storage gas components. Use the RPC endpoint for gas estimation rather than local simulation tools, as they may undercount gas.

MetaMask

On node access details, click Connect wallet.

Rabby

Rabby is a non-custodial multi-chain wallet with network auto-detection and transaction risk alerts.
  1. Install Rabby browser extension.
  2. In Rabby, navigate to Settings > Custom Network.
  3. Add your Chainstack endpoint with chain ID 4326.

Trust Wallet

Trust Wallet has native MegaETH network support. To use your Chainstack endpoint, open the wallet and navigate to Settings > Network to add a custom network with your Chainstack RPC endpoint.

Hardhat

Configure Hardhat to deploy contracts and interact through your MegaETH nodes.
  1. Install Hardhat and create a project.
  2. Create a new environment in hardhat.config.js:
    require("@nomiclabs/hardhat-waffle");
    ...
    module.exports = {
      solidity: "0.8.19",
      networks: {
        chainstack: {
            url: "YOUR_CHAINSTACK_ENDPOINT",
            accounts: ["YOUR_PRIVATE_KEY"]
        },
      }
    };
    
    where
    • YOUR_CHAINSTACK_ENDPOINT — your node HTTPS or WSS endpoint protected either with the key or password. See node access details.
    • YOUR_PRIVATE_KEY — the private key of the account that you use to deploy the contract
  3. Run npx hardhat run scripts/deploy.js --network chainstack and Hardhat will deploy using Chainstack.
See also Forking EVM-compatible mainnet with Hardhat.

Remix IDE

To make Remix IDE interact with the network through a Chainstack node:
  1. Get MetaMask and set it to interact through a Chainstack node. See Interacting through MetaMask.
  2. In Remix IDE, navigate to the Deploy tab. Select Injected Provider - MetaMask in Environment.
This will engage MetaMask and make Remix IDE interact with the network through a Chainstack node. For a detailed tutorial with Remix IDE, see Trust fund account with Remix.

web3.py

Build DApps using web3.py and MegaETH nodes deployed with Chainstack.
  1. Install web3.py.
  2. Connect over HTTP or WebSocket. See also EVM node connection: HTTP vs WebSocket.

HTTP

Use the HTTPProvider to connect to your node endpoint and get the latest block number:
from web3 import Web3

web3 = Web3(Web3.HTTPProvider('YOUR_CHAINSTACK_ENDPOINT'))
print(web3.eth.block_number)
from web3 import Web3

web3 = Web3(Web3.HTTPProvider('https://%s:%s@%s'% ("USERNAME", "PASSWORD", "HOSTNAME")))
print(web3.eth.block_number)
where
  • YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
  • HOSTNAME — your node HTTPS endpoint hostname
  • USERNAME — your node access username (for password-protected endpoints)
  • PASSWORD — your node access password (for password-protected endpoints)
See also node access details.

WebSocket

Use the WebsocketProvider object to connect to your node WSS endpoint and get the latest block number:
from web3 import Web3

web3 = Web3(Web3.WebsocketProvider('YOUR_CHAINSTACK_ENDPOINT'))
print(web3.eth.block_number)
from web3 import Web3

web3 = Web3(Web3.WebsocketProvider('wss://%s:%s@%s'% ("USERNAME", "PASSWORD", "HOSTNAME")))
print(web3.eth.block_number)
where
  • YOUR_CHAINSTACK_ENDPOINT — your node WSS endpoint protected either with the key or password
  • HOSTNAME — your node WSS endpoint hostname
  • USERNAME — your node access username (for password-protected endpoints)
  • PASSWORD — your node access password (for password-protected endpoints)
See also node access details. See also WebSocket connection to an EVM node.

ethers.js

Build DApps using ethers.js and MegaETH nodes deployed with Chainstack.
  1. Install ethers.js.
  2. Connect over HTTP or WebSocket. See also EVM node connection: HTTP vs WebSocket.

HTTP

Use the JsonRpcProvider object to connect to your node endpoint and get the latest block number:
const { ethers } = require("ethers");

var urlInfo = {
  url: "YOUR_CHAINSTACK_ENDPOINT",
};
var provider = new ethers.providers.JsonRpcProvider(urlInfo, NETWORK_ID);

provider.getBlockNumber().then(console.log);
const { ethers } = require("ethers");

var urlInfo = {
  url: "YOUR_CHAINSTACK_ENDPOINT",
  user: "USERNAME",
  password: "PASSWORD",
};
var provider = new ethers.providers.JsonRpcProvider(urlInfo, NETWORK_ID);

provider.getBlockNumber().then(console.log);
where
  • YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password
  • USERNAME — your node access username (for password-protected endpoints)
  • PASSWORD — your node access password (for password-protected endpoints)
  • NETWORK_ID — MegaETH network ID:
    • Mainnet: 4326
    • Testnet: 6342
See also node access details.

WebSocket

Use the WebSocketProvider object to connect to your node WSS endpoint and get the latest block number:
const { ethers } = require("ethers");

const provider = new ethers.providers.WebSocketProvider(
  "YOUR_CHAINSTACK_ENDPOINT",
  NETWORK_ID
);

provider.getBlockNumber().then(console.log);
where
  • YOUR_CHAINSTACK_ENDPOINT — your node WSS endpoint endpoint protected either with the key or password
  • NETWORK_ID — MegaETH network ID:
    • Mainnet: 4326
    • Testnet: 6342
See also node access details.

viem

Build DApps using viem and MegaETH nodes deployed with Chainstack.
  1. Install viem.
  2. Connect over HTTP or WebSocket.

HTTP

Use the createPublicClient function to connect to your node endpoint and get the latest block number:
import { createPublicClient, http } from 'viem'

const client = createPublicClient({
  transport: http('YOUR_CHAINSTACK_ENDPOINT')
})

const blockNumber = await client.getBlockNumber()
console.log(blockNumber)
where YOUR_CHAINSTACK_ENDPOINT is your node HTTPS endpoint protected either with the key or password

WebSocket

Use the createPublicClient function with WebSocket transport:
import { createPublicClient, webSocket } from 'viem'

const client = createPublicClient({
  transport: webSocket('YOUR_CHAINSTACK_ENDPOINT')
})

const blockNumber = await client.getBlockNumber()
console.log(blockNumber)
where YOUR_CHAINSTACK_ENDPOINT is your node WSS endpoint protected either with the key or password

Foundry

  1. Install Foundry.
  2. Use --rpc-url to run the operation through your Chainstack node.
MegaETH’s multidimensional gas model means local gas estimation in Forge may undercount. Use --skip-simulation with forge script and manually specify a gas limit, or rely on the RPC endpoint for estimation.

Forge

Use forge to develop, test, and deploy your smart contracts. To deploy a contract:
forge create CONTRACT_NAME --contracts CONTRACT_PATH --private-key YOUR_PRIVATE_KEY --rpc-url YOUR_CHAINSTACK_ENDPOINT
where
  • CONTRACT_NAME — name of the contract in the Solidity source code
  • CONTRACT_PATH — path to your smart contract
  • YOUR_PRIVATE_KEY — the private key to your funded account that you will use to deploy the contract.
  • YOUR_CHAINSTACK_ENDPOINT — your node HTTPS endpoint protected either with the key or password

Cast

Use cast to interact with the network and the deployed contracts. To get the latest block number:
cast block-number --rpc-url YOUR_CHAINSTACK_ENDPOINT
where YOUR_CHAINSTACK_ENDPOINT is your node HTTPS endpoint protected either with the key or password
Last modified on March 6, 2026