# MegaETH

Source: https://developers.bitgo.com/docs/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 | <a href="https://megaeth.blockscout.com" target="_blank" rel="noreferrer">https://megaeth.blockscout.com</a> | <a href="https://testnet.megaeth.com" target="_blank" rel="noreferrer">https://testnet.megaeth.com</a> |
| Chain ID | 4326 | 6343 |
| Currency Symbol | ETH | ETH |
| Layer 1 | Ethereum Mainnet | Ethereum Testnet |
| RPC URL | — | `https://carrot.megaeth.com/rpc` |

## Explorer

- **Mainnet:** <a href="https://megaeth.blockscout.com" target="_blank" rel="noreferrer">https://megaeth.blockscout.com</a>
- **Testnet:** <a href="https://testnet.megaeth.com" target="_blank" rel="noreferrer">https://testnet.megaeth.com</a>

## 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:** <a href="https://testnet.megaeth.com/" target="_blank" rel="noreferrer">https://testnet.megaeth.com/</a>

## Units

Each MegaETH unit consists of `1,000,000,000,000,000,000` (<code>10<sup>18</sup></code>) wei, so not even a single ETH can be stored numerically without exceeding the range of JavaScript numbers. Gas fees use gwei.

- 1 ETH = <code>10<sup>18</sup></code> wei
- 1 wei = <code>10<sup>-18</sup></code> ETH
- 1 gwei = <code>10<sup>-9</sup></code> ETH

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 (for example, <a href="https://assets.bitgo.com/coins" target="_blank" rel="noreferrer">BitGo coins and tokens</a>).

## 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 the network burns and an optional priority tip paid to the sequencer. The base fee adjusts dynamically based on block utilization.

## Create Wallet

```javascript
bitgo
  .coin('tmegaeth')
  .wallets()
  .generateWallet({
    label: 'My Test Wallet',
    passphrase: 'secretpassphrase1a5df8380e0e30',
    enterprise: '5612c2beeecf83610b621b90964448cd',
    walletVersion: 4,
  })
  .then(function (wallet) {
    // print the new wallet
    console.dir(wallet);
  });
```
```shell
export 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

```javascript
bitgo
  .coin('tmegaeth')
  .wallets()
  .getWallet({ id: '585c51a5df8380e0e3082e46' })
  .then(function (wallet) {
    return wallet.createAddress();
  })
  .then(function (newAddress) {
    // print new address details
    console.dir(newAddress);
  });
```
```shell
export 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

```javascript
const 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();
```
```shell
export 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

```javascript
const tx = await fundedWallet.send({
    address: '<DESTINATION_ADDRESS>',
    amount: '<AMOUNT>',
    walletPassphrase: process.env.PASSWORD,
  });
```
```shell
export 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.

## See Also

- [Create MPC Wallets](/docs/wallets-create-mpc-keys)
- [Trading Overview](/docs/trade-overview)
- [Withdraw from Wallet - Custody MPC](/docs/withdraw-wallet-type-custody-mpc)
- [Withdraw from Wallet - Self-Custody MPC (Manual)](/docs/withdraw-wallet-type-self-custody-mpc-manual)
- [Withdraw from Wallet - Self-Custody MPC (Simple)](/docs/withdraw-wallet-type-self-custody-mpc-simple)
- [MegaETH documentation](https://docs.megaeth.com/) (official docs)
