Skip to main content

Network: Robinhood Chain

Farmenta runs on Robinhood Chain, a layer 2 network that settles to Ethereum. A network is identified by its chain id, in the same way a country is identified by its dialing code: your wallet uses it to make sure a transaction is sent to the right chain and nowhere else.

A small example of what the network costs. A transaction that uses 200,000 gas at a gas price of 0.08 gwei costs 0.000016 ETH. With ETH at $2,400, that is about $0.04.

Network parameters​

ParameterValue
Network nameRobinhood Chain
Chain id4663 (hex 0x1237)
Testnet chain id46630
Native currencyETH (18 decimals), bridged from Ethereum
Network typeArbitrum Orbit rollup (layer 2) that settles to Ethereum
Public RPC endpointhttps://rpc.mainnet.chain.robinhood.com (rate limited)
Testnet public RPC endpointhttps://rpc.testnet.chain.robinhood.com (rate limited)
Block explorerhttps://robinhoodchain.blockscout.com
Alternative block explorerhttps://hoodscan.ai
Testnet block explorerhttps://explorer.testnet.chain.robinhood.com
Block timeAbout 100 ms
Gas priceAbout 0.02 gwei at the minimum, about 0.08 gwei on average

Block time and gas price are approximate and change with network load.

Add the network to your wallet​

Many wallets offer to add the network when you connect to an app on Robinhood Chain. To add it by hand, use these values:

FieldValue
Network nameRobinhood Chain
RPC URLhttps://rpc.mainnet.chain.robinhood.com
Chain ID4663
Currency symbolETH
Block explorer URLhttps://robinhoodchain.blockscout.com

You need a small amount of ETH on Robinhood Chain to pay for gas. ETH reaches the chain through the canonical bridge from Ethereum. A deposit takes about 10 minutes. A withdrawal back to Ethereum takes 7 days, because it waits for the rollup's challenge period.

RPC endpoints​

An RPC endpoint is the server your wallet or program talks to in order to read the chain and send transactions.

The public endpoint is rate limited. It is fine for a wallet and for occasional reads. When you send too many requests it answers with HTTP status 429, so it is not suitable for a liquidation bot, an indexer, or any program that polls the chain.

For those uses, get an endpoint from an RPC provider:

ProviderEndpoint format
Alchemyhttps://robinhood-mainnet.g.alchemy.com/v2/{KEY}
QuickNodehttps://{ENDPOINT}.robinhood-mainnet.quiknode.pro/{TOKEN}

Blockdaemon, dRPC, Validation Cloud, Chainstack and GlobalStake also serve Robinhood Chain.

Check the log range of your plan

With 100 ms blocks, one minute of history is about 600 blocks. Some free provider plans limit eth_getLogs to a range of 10 blocks, which is about one second of this chain. If you read events over long ranges, choose a plan that allows it, or read them from the indexer.

Connect with viem​

Recent versions of viem export the chain definition as robinhood, and the testnet as robinhoodTestnet.

import { createPublicClient, http } from 'viem'
import { robinhood } from 'viem/chains'

const client = createPublicClient({
chain: robinhood,
// Use your provider endpoint. Without an argument, http() uses the public endpoint.
transport: http(process.env.RPC_URL),
})

const chainId = await client.getChainId() // 4663

What developers should know​

  • block.number is not the layer 2 block. Inside a contract on this chain, block.number returns an estimate of the Ethereum block number. Farmenta measures time with block.timestamp everywhere: interest accrual, the TWAP window and the LT ramp all use seconds, never block counts.
  • Native ETH and WETH are different assets in Uniswap v4. A pool key writes native ETH as the zero address. ETH/USDG and WETH/USDG are separate pools. See contract addresses.
  • Transactions are ordered first come, first served. The sequencer does not run a priority auction, so a higher gas price does not move a transaction ahead of one that arrived earlier. For a liquidator, speed of submission matters more than the gas price.
  • The chain runs the Arbitrum Nitro EVM. Standard Solidity tooling works without changes.

Rollup stage and sequencer dependence​

Robinhood Chain is an early stage rollup. You should understand these properties before you put funds into any protocol on it:

  • One sequencer. A single sequencer, operated by the chain's operators, orders all transactions. If it stops or slows down, no transaction is processed promptly. The sequencer can also filter transactions. This filter also applies to transactions forced in through Ethereum, so forced inclusion is not a dependable way around the sequencer.
  • A small validator set. The validator set is permissioned and has two validators.
  • Upgradeable by a council. A security council of 8 signers can upgrade the chain's contracts: 6 of 8 with a 7 day delay for routine upgrades, 7 of 8 without delay in an emergency. L2BEAT rates the chain as Stage 0 with no exit window.
Liquidations depend on the sequencer

A liquidation is a transaction like any other. While the sequencer is down, nobody can liquidate, repay or add collateral in time, but prices in the outside world keep moving. When the chain resumes, loans can be deeper under water than the liquidator bonus covers, which leads to bad debt that lenders carry.

On many layer 2 networks, protocols read a Chainlink sequencer uptime feed to detect this situation on-chain. No Chainlink sequencer uptime feed exists on Robinhood Chain, so the Farmenta contracts cannot detect sequencer downtime by themselves. The only mitigation is manual: the guardian can pause the market at once, and a pause also stops liquidations.

See oracle and market risks and pause and emergency.