Fast blocks, more blocks
At ten blocks per second, Robinhood Chain produces about 864,000 blocks a day. Two things follow:- Ranges are long. A day is about 864,000 blocks, so a one-day query spans about 18 responses at the 50,000-block page limit, even if it matches few rows. Your pagination loop handles this; just don’t be surprised by the page count.
- Blocks are small. A block holds a few dozen transactions at most, and there are no empty blocks: each one has the ArbOS system transaction (below) and at least one user transaction.
The ArbOS system transaction
Every Robinhood Chain block starts with an ArbOS “start block” transaction: type0x6a, sent
from 0x00000000000000000000000000000000000a4b05. A query for every transaction in a range
returns one of these per block (except block 0, the genesis block, which has no transactions).
A few blocks carry more than one, for example the batch-posting reports. To leave them out,
filter on type: "type": [0, 1, 2, 4] keeps ordinary signed transactions and leaves out
ArbOS’s type 106 (and Arbitrum’s other system and retryable types). Or filter on
to/from/sighash so they never match.
Arbitrum fields
On top of the base fields, Robinhood Chain fills these:
The retryable fields are
null on transaction types that don’t carry them. The six amounts
(maxRefund, submissionFeeRefund, depositValue, retryValue, maxSubmissionFee,
l1BaseFee) are full 256-bit values: 32 bytes big-endian in Arrow, decimal strings in JSON. A
maxRefund of 2²⁵⁶ − 1 (“unlimited”) is 32 bytes of 0xff. See
Data types.
timeboosted is 1 when the transaction went through the Timeboost express lane. It is null
when the chain’s nodes don’t report it, which is the case today.
Fields Robinhood Chain doesn’t have
Arbitrum chains don’t produce withdrawals, blobs or the Prague block fields. These are alwaysnull and listed in unavailable_fields:
- blocks:
totalDifficulty,withdrawalsRoot,withdrawals,blobGasUsed,excessBlobGas,parentBeaconBlockRoot,requestsHash - transactions:
maxFeePerBlobGas,blobVersionedHashes,blobGasUsed,blobGasPrice
null.
Finality
A block is final once 64 newer blocks exist, about 6–7 seconds. Rows abovefinalized_block can
be replaced by a reorg. See Finality and reorgs.