MegaETH
Overview
MegaETH is an Ethereum Layer 2 blockchain designed for real-time performance, targeting 100,000 transactions per second with 10-millisecond block times. It uses a single high-performance sequencer that holds the entire blockchain state in memory, enabling transaction execution without storage I/O. MegaETH is fully EVM-compatible, allowing existing Ethereum dApps to deploy without code modifications. The network uses ETH as its native gas token.
Network Information
| Configuration | Mainnet | Testnet |
|---|---|---|
| Block Explorer | https://megaeth.blockscout.com | https://www.megaexplorer.xyz |
| Chain ID | 4326 | 6343 |
| Currency Symbol | ETH | ETH |
| Layer 1 | Ethereum Mainnet | Ethereum Testnet |
| RPC URL | — | https://carrot.megaeth.com/rpc |
Explorer
- Mainnet: https://megaeth.blockscout.com
- Testnet: https://www.megaexplorer.xyz
Wallets Types
BitGo enables holding MegaETH in the following wallet types:
| Multisig Cold | Multisig Hot | MPC Cold | MPC Hot | |
|---|---|---|---|---|
| Custody | ❌ | ❌ | ✅ | ❌ |
| Self-Custody | ❌ | ❌ | ✅ | ✅ |
Ticker Symbols
| Mainnet | Testnet |
|---|---|
| megaeth | tmegaeth |
Faucet
You can use a faucet to obtain free testnet MegaETH for development and testing.
Faucet: https://testnet.megaeth.com/
Units
Each MegaETH unit is comprised of 1,000,000,000,000,000,000 (1018) wei, so not even a single ETH can be stored numerically without exceeding the range of JavaScript numbers. Gas fees are denoted in gwei.
- 1 ETH =
1018wei - 1 wei =
10-18ETH - 1 gwei =
10-9ETH
For that reason, only string balance properties are available, which are balanceString, confirmedBalanceString, and
spendableBalanceString.
Tokens
MegaETH natively supports tokens. BitGo-supported MegaETH tokens can be accessed on the Mainnet (e.g. BitGo coins and tokens).
Fees
MegaETH supports EIP-1559 gas estimation. The network uses ETH as its native gas token for transaction fees. Fees consist of a base fee that is burned and an optional priority tip paid to the sequencer. The base fee adjusts dynamically based on block utilization.
Create Wallet
1 2 3 4 5 6 7 8 9 10 11 12 13bitgo .coin('tmegaeth') .wallets() .generateWallet({ label: 'My Test Wallet', passphrase: 'secretpassphrase1a5df8380e0e30', enterprise: '5612c2beeecf83610b621b90964448cd', walletVersion: 4, }) .then(function (wallet) { // print the new wallet console.dir(wallet); });
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tmegaeth" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export LABEL="<DESIRED_WALLET_NAME>" export PASSPHRASE="<YOUR_BITGO_LOGIN_PASSPHRASE>" export ENTERPRISE_ID="<YOUR_ENTERPRISE_ID>" curl -X POST \ http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/generate \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "label": "'"$LABEL"'", "passphrase": "'"$PASSPHRASE"'", "enterprise": "'"$ENTERPRISE_ID"'", "walletVersion": 4 }'
Create Address
1 2 3 4 5 6 7 8 9 10 11bitgo .coin('tmegaeth') .wallets() .getWallet({ id: '585c51a5df8380e0e3082e46' }) .then(function (wallet) { return wallet.createAddress(); }) .then(function (newAddress) { // print new address details console.dir(newAddress); });
1 2 3 4 5 6export WALLET="585c51a5df8380e0e3082e46" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X POST \ -H "Authorization: Bearer $ACCESS_TOKEN" \ https://app.bitgo-test.com/api/v2/tmegaeth/wallet/$WALLET/address
Consolidate Balance
Consolidation Fee Source: MegaETH Gas Tank
MegaETH uses forwarders, so it does not support manual consolidation.
Estimate Fee
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16const BitGoJS = require('../../../src/index.js'); const bitgo = new BitGoJS.BitGo({ env: 'test' }); const accessToken = '<YOUR_ACCESS_TOKEN>'; const coin = 'tmegaeth'; async function getFeeEstimate() { try { await bitgo.authenticateWithAccessToken({ accessToken }); const res = await bitgo.coin(coin).feeEstimate({ numBlocks: 2 }); console.dir(res); } catch (err) { console.error('Error fetching fee estimate:', err); } } getFeeEstimate();
1 2 3 4 5 6 7export COIN="tmegaeth" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X GET \ https://app.bitgo-test.com/api/v2/$COIN/tx/fee \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN"
Transact
Withdrawal Fee Source: Wallet Base Address
1 2 3 4 5const tx = await fundedWallet.send({ address: '<DESTINATION_ADDRESS>', amount: '<AMOUNT>', walletPassphrase: process.env.PASSWORD, });
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tmegaeth" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export ADDRESS="<DESTINATION_ADDRESS>" export AMOUNT="<AMOUNT_IN_BASE_UNITS>" export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>" curl -X POST \ http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/$WALLET_ID/sendcoins \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "address": "'"$ADDRESS"'", "amount": "'"$AMOUNT"'", "walletPassphrase": "'"$WALLET_PASSPHRASE"'" }'
Stake
MegaETH isn't a stakeable asset.