# getblock - TRON

## Description

The 'getblock' Web3 method in the Tron protocol provides developers with a powerful tool to retrieve comprehensive block data through a user-friendly interface. Utilizing the getblock RPC protocol, this method allows for efficient interaction with the Tron blockchain, enabling users to obtain details such as block height, timestamp, transactions, and more. By leveraging the RESTful API Interface, developers can seamlessly integrate blockchain data retrieval into their applications, ensuring real-time access to vital information. Whether you're building dApps or managing blockchain analytics, the 'getblock' method offers a streamlined approach to accessing Tron network data, enhancing your development workflow with precision and ease.

## Supported Networks

The getblock REST API method supports the following network types

* **Mainnet**
* **Testnets**

## Parameters

Here is the list of parameters getblock method needs to be executed.

* **id\_or\_num** (required)
  * **Type**: String
  * **Description**: The block identifier or block number to retrieve information for.
  * **Supported Values**: Any valid block ID or block number.
* **detail** (optional)
  * **Type**: Boolean
  * **Description**: Determines whether to return detailed information about the block.
  * **Default Value**: false

### URL

```json
https://go.getblock.io/<ACCESS-TOKEN>/
```

Here’s a sample cURL request using getblock

Request

```json
curl --request POST 
     --url https://go.getblock.io/<ACCESS-TOKEN>/ \
     --header 'accept: application/json' 
     --header 'content-type: application/json' 
     --data {
  "id_or_num": "1000000",
  "detail": false
}
```

Response

```json

{
  "blockID": "00000000000f424043f26367f461f6947fb4b8818df0aa6d6030e26a9d9add13",
  "block_header": {
    "raw_data": {
      "number": 1000000,
      "txTrieRoot": "434275024b822da93ed95839388888add6734518b482c21e7add1e6c384b866e",
      "witness_address": "41e72d833e0c46837c0802864acc5f119a0a904d05",
      "parentHash": "00000000000f423f472f24de7c9fdadb009a2cb669ba1d1cced8c5f155f5da17",
      "timestamp": 1532895918000
    },
    "witness_signature": "e4971f532601b167f4ccf3c895705ec3e136554a1d3b40b1b18a7de0e7113910425519205e0560b60abb1bfb76c2241c329be34bdec070d64d24eb529f3e37ae01"
  }
}
```

## Body Parameters

Here is the list of body parameters for the getblock method:

1. **blockID**: The unique identifier for the block, represented as a string. In this example, it is `"00000000000f424043f26367f461f6947fb4b8818df0aa6d6030e26a9d9add13"`.
2. **block\_header**: An object containing the header details of the block, which includes:
   * **raw\_data**: An object with the following details:
     * **number**: The block number, which is `1000000` in this case.
     * **txTrieRoot**: The root of the transaction trie, represented as a string. Here, it is `"434275024b822da93ed95839388888add6734518b482c21e7add1e6c384b866e"`.
     * **witness\_address**: The address of the witness who validated the block, shown as `"41e72d833e0c46837c0802864acc5f119a0a904d05"`.
     * **parentHash**: The hash of the parent block, represented as a string. In this example, it is `"00000000000f423f472f24de7c9fdadb009a2cb669ba1d1cced8c5f155f5da17"`.
     * **timestamp**: The timestamp of when the block was created, given in milliseconds since the Unix epoch. Here, it is `1532895918000`.
3. **witness\_signature**: The signature of the witness for the block, represented as a string. In this example, it is `"e4971f532601b167f4ccf3c895705ec3e136554a1d3b40b1b18a7de0e7113910425519205e0560b60abb1bfb76c2241c329be34bdec070d64d24eb529f3e37ae01"`.

## Use Case

Here are some use-cases for the `getblock` method in Web3 programming:

1. **Transaction Verification and Auditing**: The `getblock` method can be used to retrieve detailed information about a specific block on the blockchain. This is essential for developers and auditors who need to verify the authenticity and integrity of transactions. By accessing block data, they can ensure that all transactions within a block are valid and have been confirmed by the network.
2. **Blockchain Analytics and Monitoring**: Developers can utilize the `getblock` method to gather data for analytics and monitoring purposes. By analyzing block information, such as transaction counts, miner addresses, and timestamp details, developers can gain insights into network activity and performance. This can help in identifying trends, spotting anomalies, and making informed decisions about network upgrades or optimizations.
3. **Smart Contract Development and Testing**: When developing and testing smart contracts, it is crucial to understand the state of the blockchain at different points in time. The `getblock` method allows developers to retrieve historical block data, which can be used to simulate various scenarios and test how smart contracts would behave under different conditions. This aids in ensuring that contracts are robust and function as intended before they are deployed on the main network.

## Code for getblock

```python
import requests
import json

url = "https://go.getblock.io/<ACCESS-TOKEN>/"
headers = {
    'accept': 'application/json',
    'content-type': 'application/json'
}

payload = {
  "id_or_num": "1000000",
  "detail": false
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
```

## Common Errors

Common Errors\
When using the getblock HTTP REST API Tron method, the following issues may occur:

* **Invalid Block Identifier**: If the block ID or number is incorrect or does not exist, the API will return a null response. Ensure the block identifier is accurate and within the current blockchain range.
* **Network Latency**: High network latency can lead to delayed responses or timeouts. Check your network connection and consider retrying the request or increasing the timeout duration.
* **Insufficient Permissions**: Accessing certain block details may require specific permissions or API keys. Verify that your API credentials have the necessary permissions to access the requested data.
* **Malformed Request**: Incorrectly formatted JSON or missing required parameters can cause the API to reject the request. Double-check the request structure and ensure all necessary fields are included.

Using the getblock method in Web3 applications provides developers with the ability to retrieve detailed information about specific blocks on the Tron blockchain. This functionality is crucial for creating transparent and reliable decentralized applications, enabling developers to track blockchain activity and verify transactions efficiently.

### conclusion

Getblock's HTTP API provides seamless access to the Tron blockchain, enabling developers to efficiently interact with the network. By offering detailed and reliable data, Getblock simplifies blockchain integration and enhances the development experience.


---

# 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.getblock.io/api-reference/tron-trx/http_api/getblock.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.
