> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bloklake.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ethereum

> Ethereum mainnet: URLs, finality and fields.

| | |
| - | - |
| Name in URLs | `eth` |
| Base URL | `https://api.bloklake.com/v1/chains/eth` (or `https://eth.api.bloklake.com`) |
| Chain id | `1` |
| Block time | 12 seconds |
| Served from | block 0 (genesis) |
| Finality | the beacon chain's finalized checkpoint, about two epochs (\~13 minutes) behind the head |
| Field families | base |

## Finality

Ethereum blocks become final when the beacon chain finalizes their epoch, usually about 13
minutes (64–95 blocks) after they are produced. `finalized_block` in every response is that
block. Rows at or below it never change. Rows above it are almost always stable too, but a
reorg of the last block or two happens occasionally; see
[Finality and reorgs](https://docs.bloklake.com/querying/finality-and-reorgs.md).

## Fields

Every base field is available except `totalDifficulty`. No client has sent it since the Merge,
so it is always `null` and listed in `unavailable_fields`.

Fields that only exist from a certain fork onward are `null` before it:

| Field | From |
| - | - |
| `baseFeePerGas` (block), `maxFeePerGas`, `maxPriorityFeePerGas` | London (block 12,965,000) |
| `withdrawals`, `withdrawalsRoot` | Shanghai (block 17,034,870) |
| `blobGasUsed`, `excessBlobGas`, `parentBeaconBlockRoot`, blob transaction fields | Cancun (block 19,426,587) |
| `requestsHash`, `authorizationList` | Prague (block 22,431,084) |
| `status` (transaction) | Byzantium (block 4,370,000); `null` before it |

A `null` from a field that exists but doesn't apply (a `to` on a contract creation, a
`baseFeePerGas` before London) is a real null. Only fields in `unavailable_fields` are null
because the chain never has them.

Arbitrum and OP-Stack fields are `null` on Ethereum.

## Example: USDC transfers

```bash theme={null}
curl https://api.bloklake.com/v1/chains/eth/query/json \
  -H "Authorization: Bearer $BLOKLAKE_API_KEY" -H 'content-type: application/json' \
  -d '{"fromBlock": 19426000, "toBlock": 19426099,
       "logs": [{"address": ["0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"],
                 "topic0": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]}],
       "fields": {"log": {"blockNumber": true, "transactionHash": true, "topic1": true, "topic2": true, "data": true}}}'
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.