Arbitrum
Overview
Arbitrum is a Layer 2 scaling solution built on top of the Ethereum blockchain, designed to address its scalability and high transaction fees. It utilizes a technology called Optimistic Rollup, which allows for faster and cheaper transactions by processing most operations off-chain while periodically settling them on the Ethereum mainnet.
Explorerhttps://arbiscan.io/
Wallets Types
BitGo enables holding arbeth in the following wallet types:
Multisig Cold | Multisig Hot | MPC Cold | MPC Hot | |
---|---|---|---|---|
Custody | ✅ | ❌ | ❌ | ❌ |
Self-Custody | ✅ | ✅ | ❌ | ❌ |
Ticker Symbols
Mainnet | Testnet |
---|---|
ARBETH | TARBETH |
Faucet
You can use a faucet to obtain free testnet tarbeth for development and testing purposes.
Faucet: https://arbitrum-faucet.com/
Units
Each Arbeth is comprised of 1,000,000,000,000,000,000
(1018
) wei, so not even a single Arbeth can be stored numerically without exceeding the range of Javascript numbers. Gas fees are denoted in gwei.
- 1 arbeth =
1018
wei - 1 wei =
10-18
arbeth - 1 gwei =
10-9
arbeth
For that reason, only string balance properties are available, which are balanceString
, confirmedBalanceString
, and
spendableBalanceString
.
Tokens
To view all BitGo supported tokens on the Arbitrum Mainnet, see the Arbitrum - ERC20 Tokens.
Fees
Arbitrum supports EIP-1599
gas estimation. Arbitrum accounts for L2 and L1 components of fees. eth_estimateGas
RPC endpoint will give you a value which already considers both L1 and L2 gas. You can't set a 21K upper limit to a transaction since it changes over time with L1 prices changing over time.
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. Arbitrum users always just pay the base fee regardless of the tip they choose.
Create Wallet
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="tarbeth" 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:3080/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
export WALLET="585c51a5df8380e0e3082e46" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X POST \ -H "Authorization: Bearer $ACCESS_TOKEN" \ https://app.bitgo-test.com/api/v2/tarbeth/wallet/$WALLET/address
Consolidate Balance
Arbeth supports Multisignature smart-contract wallets which utilize forwarder smart contracts to enable multiple receive addresses. The forwarder smart contract automatically consolidates native tokens received in your receive addresses to your base address. However, if you receive non-native tokens, such as ERC20 tokens, a different consolidation transaction will be initiated to the base address. Additionally, forwarders can only send funds to the base address of the wallet.
Estimate Fee
1 2 3 4 5 6 7
export COIN="tarbeth" 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
BitGo's Arbitrum multisig contract currently only supports one sender and one recipient. That means that the sendMany
call will only accept one recipient.
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="tarbeth" 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:3080/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
Arbeth isn't a stakeable asset.