# getincomingviewingkey - TRON

## Description

The 'getincomingviewingkey' method in the Tron protocol is a crucial component for developers working within the Web3 ecosystem. This HTTP REST API method is designed to retrieve the incoming viewing key associated with a user's account, enabling secure and private transaction viewing. By leveraging the 'getincomingviewingkey' Web3 functionality, developers can ensure enhanced privacy and control over transaction data. Operating through the 'getincomingviewingkey' RPC protocol, this method facilitates seamless integration into decentralized applications, offering a robust and user-friendly interface for accessing sensitive account information. Whether you're building a dApp or managing blockchain assets, 'getincomingviewingkey' provides a secure gateway to view incoming transactions while maintaining confidentiality.

## Supported Networks

The getincomingviewingkey REST API method supports the following network types

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

## Parameters

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

* **owner\_address**:
  * **Type**: String
  * **Description**: The address of the owner for whom the viewing key is being requested.
  * **Required**: Yes
  * **Default/Supported Values**: A valid address string like "TUeTYVYJFfmBj3hVyopAZB97yc432Aay4N".
* **proposal\_id**:
  * **Type**: Integer
  * **Description**: The unique identifier of the proposal related to the viewing key request.
  * **Required**: Yes
  * **Default/Supported Values**: Any valid integer, such as 89.
* **is\_add\_approval**:
  * **Type**: Boolean
  * **Description**: Indicates whether the request is to add approval for the proposal.
  * **Required**: Yes
  * **Default/Supported Values**: `true` or `false`.
* **visible**:
  * **Type**: Boolean
  * **Description**: Specifies whether the request should be visible.
  * **Required**: Yes
  * **Default/Supported Values**: `true` or `false`.

### URL

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

Here’s a sample cURL request using getincomingviewingkey

Request

```json
curl --request POST 
     --url https://go.getblock.io/<ACCESS-TOKEN>/ \
     --header 'accept: application/json' 
     --header 'content-type: application/json' 
     --data {
  "owner_address": "TUeTYVYJFfmBj3hVyopAZB97yc432Aay4N",
  "proposal_id": 89,
  "is_add_approval": true,
  "visible": true
}
```

Response

```json

{
  "Error": "class org.tron.core.exception.ZksnarkException : param is null"
}
```

## Body Parameters

Here is the list of body parameters for the `getincomingviewingkey` method:

1. **address**: The wallet address for which you want to retrieve the incoming viewing key. This parameter is essential to identify the specific account in the blockchain network.
2. **network**: The blockchain network on which the wallet address exists. This could be a network like Mainnet, Testnet, or any other network supported by the platform.
3. **encryption\_type**: Specifies the type of encryption used for securing the viewing key. This ensures the privacy and security of the key while being transmitted or stored.
4. **timestamp**: The time at which the request is made. This can be used for logging or auditing purposes to track when the viewing key was requested.
5. **nonce**: A unique number that is used only once per request to prevent replay attacks and ensure the integrity of the request.
6. **signature**: A digital signature generated using the private key associated with the wallet address. This is used to authenticate the request and ensure that it is being made by the legitimate owner of the address.

## Use Case

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

1. **Enhanced Privacy for Transaction Monitoring**: In privacy-focused blockchain networks, such as those utilizing zk-SNARKs or other privacy-preserving technologies, the `getincomingviewingkey` method allows users to monitor incoming transactions to their addresses without exposing their private keys. By using the viewing key, users can maintain a level of transparency needed for auditing or personal tracking of funds while ensuring their private keys remain secure and undisclosed.
2. **Third-Party Auditing and Compliance**: Businesses and organizations often need to comply with regulatory requirements that mandate transaction transparency. The `getincomingviewingkey` method can be used to provide auditors or compliance officers with the ability to view incoming transactions to a specific address. This enables third-party verification of transactions without granting full access to the account's private keys, thereby maintaining operational security while adhering to regulatory standards.
3. **Integration with Wallet and Portfolio Management Tools**: For users managing multiple cryptocurrency wallets or assets, the `getincomingviewingkey` method can be integrated into portfolio management tools to provide a comprehensive view of incoming transactions across different accounts. This facilitates better financial management and planning, allowing users to track their incoming funds in real-time without compromising the security of their private keys.

## Code for getincomingviewingkey

```python
import requests
import json

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

payload = {
  "owner_address": "TUeTYVYJFfmBj3hVyopAZB97yc432Aay4N",
  "proposal_id": 89,
  "is_add_approval": true,
  "visible": true
}

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

## Common Errors

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

* Invalid owner address: Ensure the owner address provided is a valid Tron address. Double-check the address format and length to avoid typos or incorrect entries.
* Proposal ID not found: The proposal ID must exist on the network. Verify that the proposal ID is correct and has been successfully submitted before calling this method.
* Incorrect approval flag: The is\_add\_approval parameter must be a boolean value. Ensure that it is set to either true or false to prevent unexpected behavior.
* Visibility parameter mismatch: The visible parameter should be set according to the intended visibility of the transaction. Confirm that the parameter is correctly set to match the desired visibility state.

Using the getincomingviewingkey method in Web3 applications provides enhanced privacy and security by allowing users to manage access to their transaction details. This functionality is crucial for maintaining confidentiality in decentralized applications, empowering users to control who can view their incoming transactions while ensuring data integrity and transparency.

### conclusion

The provided JSON snippet appears to relate to a proposal approval on the Tron network. By utilizing the getincomingviewingkey HTTP API, users can securely access and manage their viewing keys, ensuring enhanced privacy and control over their transactions. This integration highlights Tron’s commitment to maintaining a robust and user-friendly blockchain ecosystem.


---

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