> ## 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.

# The JSON format

> What /query/json returns, and how each type of value is written.

`POST /query/json` takes the same body as `/query` and returns one JSON object: one array per
row type you asked for, plus the response metadata.

```json theme={null}
{
  "archive_height": 19427499,
  "finalized_block": 19427499,
  "from_block": 19426000,
  "to_block": 19426000,
  "next_block": 19426001,
  "objects": 605,
  "query_id_template": "0x22df2a6e1f32612c0db47f8e1e893ba9592a529613d0ced777513bb3d1d0dc4a",
  "to_block_hash": null,
  "unavailable_fields": ["blocks.total_difficulty"],
  "transactions": [
    {
      "hash": "0xa3958506c9bae6c6a3d5c7861b9461d01ddb33eca01b461920d59c31ed710275",
      "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13",
      "to": "0x6b75d8af000000e20b7a7ddf000ba900b4009a80",
      "value": "208",
      "gas_used": 435741,
      "effective_gas_price": "51321417043",
      "status": 1,
      "type": 2,
      "sighash": "0x2b959e09"
    }
  ],
  "logs": [
    {
      "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
      "block_number": 19426000,
      "log_index": 0,
      "topic0": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "topic1": "0x0000000000000000000000009e0905249ceefffb9605e034b534544684a58be6",
      "topic2": "0x0000000000000000000000006b75d8af000000e20b7a7ddf000ba900b4009a80",
      "topic3": null,
      "data": "0x000000000000000000000000000000000000000000000000081bbb9200000001"
    }
  ],
  "blocks": [
    {
      "number": 19426000,
      "hash": "0xccabd8d387536006b0d08eae80c10cfce6eaeefefa43f5f02d35727ff84e19f8",
      "timestamp": 1710331067,
      "base_fee_per_gas": "51321417043",
      "total_difficulty": null,
      "withdrawals": [
        {"index": 38256630, "validator_index": 1258775, "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f", "amount": 18045827}
      ]
    }
  ]
}
```

(A real response, shortened to one row per row type.)

## How values are written

| Kind of field | Arrow type | JSON | Example |
| - | - | - | - |
| Block numbers, indexes, gas, nonces, timestamps | `UInt64` / `UInt32` / `UInt8` | number | `19426000` |
| Amounts: `value`, gas prices, fees, `difficulty` | `FixedSizeBinary(16)` | **decimal string** | `"51321417043"` |
| 256-bit amounts (Arbitrum retryables) | `FixedSizeBinary(32)` | **decimal string** | `"115792089…"` |
| Hashes, topics, roots | `FixedSizeBinary(32)` | `0x` hex, lowercase | `"0xccab…19f8"` |
| Addresses | `FixedSizeBinary(20)` | `0x` hex, lowercase | `"0xc02a…6cc2"` |
| Variable bytes: `input`, `data`, `extraData` | `Binary` | `0x` hex (`"0x"` when empty) | `"0x2b959e09…"` |
| Block `nonce`, `sighash`, `logsBloom` | `FixedSizeBinary(8/4/256)` | `0x` hex | `"0x0000000000000000"` |
| Lists | `List<…>` | array | `["0x…", "0x…"]` |
| Structs (`withdrawals`, `accessList` entries) | `Struct` | object with snake\_case keys | `{"index": 1, …}` |
| Booleans (`status`, `timeboosted`, `isSystemTx`) | `UInt8` | `1` / `0` | `1` |
| Missing | null | `null` | `null` |

Amounts are strings because they can exceed what a JSON number (a 64-bit float) holds exactly:
`value` is in wei and routinely above 2⁵³. Parse them as big integers (`BigInt(s)`, Python
`int(s)`). The integer fields that are JSON numbers stay below 2⁵³ in practice.

## Limits

* **Up to 100,000 rows per response.** `maxObjects` is lowered to that, and `next_block` resumes
  after the last block returned. Like Arrow pages, a page can overshoot by one block.
* **Built in full before it's sent.** Nothing arrives until the whole response is ready, and it
  takes more memory on both sides. Prefer `/query` for anything large.
* **Billed on the JSON size**, which is about 2–2.5× the Arrow size of the same rows. See
  [Arrow vs JSON](https://docs.bloklake.com/responses/arrow-vs-json.md).

## Errors

An error is a non-200 status with a JSON body:

```json theme={null}
{"error": {"code": "invalid_query", "message": "unknown field \"adress\" in fields.log"}}
```

See [Errors](https://docs.bloklake.com/api-reference/errors.md).


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