# Robinhood Chain

> What Robinhood Chain is (chain id 4663), its block times, gas, L1 settlement, native assets (ETH, WETH, USDG), tokenized stocks, and how Crius indexes it.

Source: https://crius.sh/docs/concepts/robinhood-chain/

**Robinhood Chain** is an Ethereum layer-2 network (an Arbitrum Orbit chain) with chain id **4663** (`0x1237`). Transactions are ordered by a sequencer and settled on Ethereum.

| | |
|---|---|
| Chain id | `4663` |
| Native gas token | ETH |
| Block time | about 100 ms |
| Official RPC | `https://rpc.mainnet.chain.robinhood.com` |
| Explorers | [Blockscout](https://robinhoodchain.blockscout.com), [Hoodscan](https://hoodscan.co) |

## Assets you'll see everywhere

| Symbol | Address | Role |
|---|---|---|
| ETH | `0x0000000000000000000000000000000000000000` | Native gas token; quote asset of many pools and launch curves |
| WETH | `0x0bd7d308f8e1639fab988df18a8011f41eacad73` | Wrapped ETH (ERC-20) |
| USDG | `0x5fc5360d0400a0fd4f2af552add042d716f1d168` | Dollar stablecoin (6 decimals) |

USD prices on Crius are derived from these on-chain pools: a token is priced against its deepest pool's quote asset, and the quote asset is converted to USD through the deepest ETH/USDG pool.

## Two block numbers

Robinhood Chain blocks arrive every ~100 ms, but inside a smart contract `block.number` returns the **Ethereum L1 block** (about every 12 seconds). Contract rules written "per block" (anti-snipe windows, sell limits) therefore act on L1 blocks. Crius reports the L2 `block` everywhere and adds `l1_block` where it matters.

## Finality

A transaction is visible as soon as the sequencer includes it (`latest`), becomes `safe` when its batch is posted to Ethereum, and `finalized` when Ethereum finalizes that batch. See [Finality & reorgs](https://crius.sh/docs/concepts/finality/).

## How Crius indexes it

Crius runs its own Robinhood Chain archive nodes and decodes every block as it arrives: transfers, swaps on every Uniswap version, launchpad events, LP locks, contract calls. State (prices, holders, pools) is kept in memory for fast answers; history is stored back to block one. Every response tells you the block it reflects (`meta.block`) and how far behind the head it is (`meta.lag_ms`, usually well under a second).
