Gas on this chain, measured

Oct 2, 2026
Gas on this chain, measured

Gas on Robinhood Chain is cheap, and it is stable, and the number your fee estimator shows you is probably neither.

The number to trust

eth_gasPrice — and anything built on it, including most libraries' getFeeData() — returns a suggested price, not the network's base fee. On this chain that suggestion jitters visibly when the endpoint is under load, and it can come back an order of magnitude above what a block actually requires.

The only figure that means anything is baseFeePerGas in the block header. Sampled across a wide window:

  • Median base fee: 0.0225 gwei
  • Highest seen over roughly twelve million blocks: 0.0681 gwei
  • Samples at or above 1 gwei: zero, out of forty

Budgeting at 0.07 gwei is generous — it is the fourteen-day maximum, rounded up. Budgeting at 1 gwei, which is what a lot of folk wisdom says, overestimates by more than a factor of ten.

It is a quiet chain

The median block carries eight transactions. A block we sampled while writing this carried nineteen. There is no congestion to price against, which is exactly why the fee estimator has so little to work with.

The L1 block number trap

This one catches every contract that measures elapsed time. On Arbitrum Orbit chains, block.number inside a Solidity contract returns the L1 block number, not the L2 one. At the time of writing the RPC reports L2 block 78.2M while a contract calling block.number sees about 11.8M — a factor of ten, silently.

L1 blocks are roughly twelve seconds apart. So a delay written as delayBlocks = 3, which reads like a fraction of a second, is thirty-six seconds. Use ArbSys(0x64).arbBlockNumber() when you mean L2 blocks, and note that blockhash(L2 block number) returns zero — only L1 block numbers resolve, and only for the most recent 256 of them, which is about fifty-one minutes.

That last constraint is not trivia. Any design that reveals a random number from blockhash(commitBlock) has to close its reveal window inside 256 L1 blocks, or the value degenerates to a function of the player's own seed.

One more: gas limits are not gas used

eth_estimateGas is unreliable here and has returned values small enough to guarantee an out-of-gas revert. Set an explicit limit — around 1.5M for a normal call, 4M for a deployment — and do it unconditionally rather than as a fallback, because wallets will happily accept the estimate and lose the transaction.

Stay connected.
Build what's next.

Tools for builders.
Open to all.