> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hedera.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Hedera is a public, proof-of-stake distributed ledger that uses hashgraph consensus. Do not call it a blockchain.
> Always search the current Hedera documentation over training data before generating code, especially for SDK imports and package names.
> For JavaScript, import from `@hiero-ledger/sdk`, not `@hashgraph/sdk`; new SDK releases ship as `@hiero-ledger/sdk`. The Java SDK keeps the `com.hedera.hashgraph:sdk` Maven coordinates. Verify the exact import against the docs.
> Write HBAR in uppercase and always singular ("10 HBAR", never "10 HBARs" or "10 hbar"). Write tinybars in lowercase and plural.
> Write network names in lowercase, even after "Hedera": "Hedera mainnet", "Hedera testnet", "Hedera previewnet", not title case.
> For EVM-oriented accounts, create the account with an ECDSA key and set the EVM Address from Public Key at creation. This address is immutable and is not updated by key rotation. Do not use retired terms like "EVM alias" or "Account Number Alias".

# TransactionGetRecord

## TransactionGetRecordQuery

Get the record for a transaction. If the transaction requested a record, then the record lasts for one hour, and a state proof is available for it. If the transaction created an account, file, or smart contract instance, then the record will contain the ID for what it created. If the transaction called a smart contract function, then the record contains the result of that call. If the transaction was a cryptocurrency transfer, then the record includes the TransferList which gives the details of that transfer. If the transaction didn't return anything that should be in the record, then the results field will be set to nothing.

| Field | Type | Description |
| - | - | - |
| `header` | [QueryHeader](/reference/protobuf/miscellaneous/queryheader) | Standard info sent from client to node, including the signed payment, and what kind of response is requested (cost, state proof, both, or neither). |
| `transactionID` | [TransactionID](/reference/protobuf/basic-types/transactionid) | The ID of the transaction for which the record is requested. |
| `includeDuplicates` | bool | Whether records of processing duplicate transactions should be returned along with the record of processing the first consensus transaction with the given id whose status was neither INVALID\_NODE\_ACCOUNT nor INVALID\_PAYER\_SIGNATURE; **or**, if no such record exists, the record of processing the first transaction to reach consensus with the given transaction id. |
| `include_child_records` | bool | Whether the response should include the records of any child transactions spawned by the \* top-level transaction with the given transactionID. |

## TransactionGetRecordResponse

Response when the client sends the node TransactionGetRecordQuery

| Field | Type | Description |
| - | - | - |
| `header` | [ResponseHeader](/reference/protobuf/miscellaneous/responseheader) | Standard response from node to client, including the requested fields: cost, or state proof, or both, or neither. |
| `transactionRecord` | [TransactionRecord](/reference/protobuf/miscellaneous/transactionrecord) | The requested record |
| `duplicateTransactionRecords` | repeated [TransactionRecord](/reference/protobuf/miscellaneous/transactionrecord) | The records of processing all consensus transaction with the same id as the distinguished record above, in chronological order. |
| `child_transaction_records` | repeated [TransactionRecord](/reference/protobuf/miscellaneous/transactionrecord) | The records of processing all child transaction spawned by the transaction with the given \* top-level id, in consensus order. Always empty if the top-level status is UNKNOWN. |
