# Robinhood Chain

Source: https://developers.bitgo.com/docs/robinhood-chain

## Overview

Robinhood Chain is an Arbitrum Orbit Layer 2 blockchain built on Ethereum, using Ethereum blobs for data availability and ETH as the native gas token. The network is fully EVM-compatible, allowing existing Ethereum dApps to deploy without code modifications. Robinhood Chain settles to Ethereum and inherits Ethereum security through Arbitrum's fraud proof system.

## Explorer

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

## Wallets Types

BitGo enables holding Robinhood Chain in the following wallet types:

|                  | Multisig Cold | Multisig Hot | MPC Cold | MPC Hot |
| ---------------- | ------------- | ------------ | -------- | ------- |
| **Custody**      | ❌            | ❌            | ✅       | ❌      |
| **Self-Custody** | ❌            | ❌            | ✅       | ✅      |

## Ticker Symbols

|            | Mainnet | Testnet  |
| ---------- | ------- | -------- |
| Ticker     | hoodeth | thoodeth |
| Chain ID   | 4663    | 46630    |

## Faucet

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

**Faucet:** <a href="https://faucet.testnet.chain.robinhood.com" target="_blank" rel="noreferrer">https://faucet.testnet.chain.robinhood.com</a>

## Units

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

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

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

## Tokens

Robinhood Chain natively supports ERC20 tokens. BitGo-supported Robinhood Chain tokens can be accessed on the Mainnet (e.g. <a href="https://assets.bitgo.com/coins" target="_blank" rel="noreferrer">BitGo coins and tokens</a>).

## Fees

Robinhood Chain supports EIP-1559 gas estimation. Fees consist of a base fee that adjusts dynamically based on block utilization plus an optional priority tip. As an Arbitrum Orbit chain, fees also include an L2 component for posting data to the parent chain. The network denominates and pays gas in ETH.

## Create Wallet

```javascript
bitgo
  .coin('thoodeth')
  .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="thoodeth"
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('thoodeth')
  .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/thoodeth/wallet/$WALLET/address
```

## Consolidate Balance

Consolidation Fee Source: Robinhood Chain Gas Tank

Robinhood Chain 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 = 'thoodeth';

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

Robinhood Chain isn't a stakeable asset.

## See Also

- [Create MPC Wallets](/docs/wallets-create-mpc-keys)
- [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)
- [Robinhood Chain documentation](https://docs.robinhood.com/chain/) (official docs)
