# 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](https://docs.cspr.cloud/1.0.x/rest-api/deploy) 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` | `JSON` | Account info of proposer public key |

## Relations

| Entity                                                          | Mapping property      | Description                       |
| --------------------------------------------------------------- | --------------------- | --------------------------------- |
| [`Deploy`](https://docs.cspr.cloud/1.0.x/rest-api/deploy)       | `block_hash`          | Blocks can have deploys           |
| [`Validator`](https://docs.cspr.cloud/1.0.x/rest-api/validator) | `proposer_public_key` | Blocks are proposed by validators |

## Endpoints

The `Block` entity has the following endpoints:

* [Get block](https://docs.cspr.cloud/1.0.x/rest-api/block/get-block)
* [Get blocks](https://docs.cspr.cloud/1.0.x/rest-api/block/get-blocks)
* [Get validator blocks](https://docs.cspr.cloud/1.0.x/rest-api/block/get-validator-blocks)

## Relation endpoints

The `Block` entity has the following relation endpoints:

* [Get block deploys](https://docs.cspr.cloud/1.0.x/rest-api/deploy/get-block-deploys)
