Mantle

Overview

Mantle is a Layer 2 scaling solution built on top of the Ethereum blockchain. It uses optimistic rollup technology combined with a modular data availability architecture to deliver faster and cheaper transactions while inheriting the security of Ethereum mainnet. Mantle uses MNT as its native gas token. The Mantle Sepolia testnet uses chain ID 5003. It utilizes:

  • Account model
  • EcDSA signature algorithm

Mantle supports both legacy and TSS (Threshold Signature Scheme) transfers.

Explorer

https://mantlescan.xyz/

Wallets Types

BitGo enables holding mantle in the following wallet types:

Multisig ColdMultisig HotMPC ColdMPC Hot
Custody
Self-Custody

Ticker Symbols

MainnetTestnet
mantletmantle

Faucet

You can use a faucet to obtain free testnet mantle for development and testing purposes.

Faucet: https://faucet.sepolia.mantle.xyz/

Units

Each Mantle is comprised of 1,000,000,000,000,000,000 (1018) wei, so not even a single Mantle can be stored numerically without exceeding the range of JavaScript numbers. Gas fees are denoted in gwei.

  • 1 Mantle = 1018 wei
  • 1 wei = 10-18 Mantle
  • 1 gwei = 10-9 Mantle

For that reason, only string balance properties are available, which are balanceString, confirmedBalanceString, and spendableBalanceString.

Tokens

The Mantle blockchain natively supports tokens. To view all BitGo supported tokens on the Mantle Mainnet, see the Mantle - ERC20 Tokens.

Fees

Mantle supports both legacy (eth_gasPrice) and EIP-1559 (eth_feeHistory) gas estimation. Mantle accounts for L2 and L1 components of fees. The eth_estimateGas RPC endpoint returns a value which already considers both L1 and L2 gas. Mantle uses MNT as the gas token for transaction fees, unlike most other Ethereum L2s that use ETH.

Mantle's gas costs are typically very low. For reference, testnet gas prices are approximately 0.02 Gwei per unit of gas.

The base fee is the minimum price per unit of gas that a transaction must pay to be included in a block. Transactions must specify a maximum base fee higher than the block base fee to be included. The actual fee charged is the block base fee, even if the transaction specifies a higher maximum base fee.

The sequencer prioritizes transactions on a first-come first-served basis. Because priority fees do not make sense in this model, they are ignored. Mantle users always just pay the base fee regardless of the tip they choose.

Create Wallet

  • cURL
  • JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tmantle" 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

  • cURL
  • JavaScript
1 2 3 4 5 6 export WALLET="585c51a5df8380e0e3082e46" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X POST \ -H "Authorization: Bearer $ACCESS_TOKEN" \ https://app.bitgo-test.com/api/v2/tmantle/wallet/$WALLET/address

Consolidate Balance

Consolidation Fee Source: Mantle Gas Tank

Mantle uses forwarders, so it does not support manual consolidation.

Estimate Fee

  • cURL
  • JavaScript
1 2 3 4 5 6 7 export COIN="tmantle" 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

  • cURL
  • cURL (send to many)
  • JavaScript
  • JavaScript (send to many)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tmantle" 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

Mantle isn't a stakeable asset.

See Also