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.

Wallets Types

BitGo enables holding arbeth in the following wallet types:

Multisig ColdMultisig HotTSS ColdTSS Hot
Custodial
Self Managed

Ticker Symbols

MainnetTestnet
ARBETHTARBETH

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

  • 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="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

  • 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/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

  • cURL
  • JavaScript
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.

  • 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="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.

See Also