# Block

The `Block` entity provides a normalized representation of the Casper Network block. It doesn't contain the executed deploy hashes as the network block object. However, they could be queried separately using the [Deploy](/1.3.x/rest-api/deploy.md) API.

## Properties

The `Block` entity has the following properties:

| Property                  | Type         | Description                                                                                               |
| ------------------------- | ------------ | --------------------------------------------------------------------------------------------------------- |
| `block_height`            | `uint64`     | Block height. Primary block identifier                                                                    |
| `block_hash`              | `string(64)` | Block hash represented as a hexadecimal string. Secondary block identifier                                |
| `parent_block_hash`       | `string(64)` | Parent block hash represented as a hexadecimal string                                                     |
| `state_root_hash`         | `string(64)` | Identifier of the network's state after executing the block's deploys represented as a hexadecimal string |
| `era_id`                  | `uint32`     | Era ID in which the block was created                                                                     |
| `proposer_public_key`     | `string(68)` | Public key of the validator who proposed the block represented as a hexadecimal string                    |
| `native_transfers_number` | `uint16`     | Number of native transfer deploys included in the block                                                   |
| `contract_calls_number`   | `uint16`     | Number of contract calls included in the block                                                            |
| `is_switch_block`         | `bool`       | `true` if the block is the last one in the era                                                            |
| `timestamp`               | `datetime`   | The timestamp from when the block was proposed                                                            |

**Example**

```json
{
  "block_height": 500442,
  "block_hash": "9fccaf372ec5f61ac851fcec593d159f928a26df8f2af5aa3522ed9e0b7cbb36",
  "parent_block_hash": "898f0caafafdd67d7693b17c01b885941dd0f7bb000ffb4faf26d16f37681a38",
  "state_root_hash": "656b3f410c68bb2e5dd16089295376193130b9470e5158decc9c4d5c22674087",
  "era_id": 3561,
  "proposer_public_key": "0109b48a169e6163078a07b6248f330133236c6e390fe915813c187c3f268c213e",
  "native_transfers_number": 0,
  "contract_calls_number": 0,
  "is_switch_block": false,
  "timestamp": "2022-01-31T10:36:55Z"
}
```

## Optional properties

Depending on the endpoint some of the following optional properties may be included in the `Block` entity:

| Property                            | Type                                                                    | Description                                                                                                    |
| ----------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `proposer_account_info`             | [`AccountInfo`](/1.3.x/rest-api/account-info.md)                        | [Account info](https://github.com/make-software/casper-account-info-contract) provided by the proposer account |
| `proposer_centralized_account_info` | [`CentralizedAccountInfo`](/1.3.x/rest-api/centralized-account-info.md) | Account information available for known accounts provided by CSPR.cloud team                                   |

## Relations

| Entity                                      | Mapping property      | Description                       |
| ------------------------------------------- | --------------------- | --------------------------------- |
| [`Deploy`](/1.3.x/rest-api/deploy.md)       | `block_hash`          | Blocks can have deploys           |
| [`Validator`](/1.3.x/rest-api/validator.md) | `proposer_public_key` | Blocks are proposed by validators |

## Endpoints

The `Block` entity has the following endpoints:

* [Get block](/1.3.x/rest-api/block/get-block.md)
* [Get blocks](/1.3.x/rest-api/block/get-blocks.md)
* [Get validator blocks](/1.3.x/rest-api/block/get-validator-blocks.md)

## Relation endpoints

The `Block` entity has the following relation endpoints:

* [Get block deploys](/1.3.x/rest-api/deploy/get-block-deploys.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cspr.cloud/1.3.x/rest-api/block.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
