# Understanding the Transaction Object on Ethereum

> This guide details each element in the response of the Transaction object returned by eth_getTransactionByHash

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

This guide details each element in the response of the Transaction object returned by eth\_getTransactionByHash

## Transaction Object

The transaction object on Ethereum is made up of the following components:

* `blockHash`: `DATA`, 32 Bytes - hash of the block where this transaction was in. null when it is pending.
* `blockNumber`: `QUANTITY` - block number where this transaction was in. null when it's pending.
* `from`: `DATA`, 20 Bytes - sender's address.
* `gas`: `QUANTITY` - gas provided by the sender.
* `gasPrice`: `QUANTITY` - gas price provided by the sender in Wei.
* `hash`: `DATA`, 32 Bytes - hash of the transaction.
* `input`: `DATA` - the data sent along with the transaction.
* `nonce`: `QUANTITY` - the number of transactions made by the sender prior to this one.
* `to`: `DATA`, 20 Bytes - address of the receiver. null when it's a contract creation transaction.
* `transactionIndex`: `QUANTITY` - integer of the transactions index position in the block. null when it's pending.
* `value`: `QUANTITY` - value transferred in Wei.
* `v`: `QUANTITY` - ECDSA recovery id
* `r`: `DATA`, 32 Bytes - ECDSA signature r
* `s`: `DATA`, 32 Bytes - ECDSA signature s

Below you will find more detailed explanations for each parameter on the transaction object.

### `Hash`

Every transaction that has been verified and added to the blockchain will receive an assigned `hash`. This creates a unique identifier for the transaction that can be used to locate and retrieve information about a specific transaction.

### `blockHash`

Each block has a corresponding cryptographic hash which includes all the data of that block. The`blockHash` is the hash of the block where this transaction has been included. In the case of a pending transaction that has not been added to a block, you will receive a `null` value in return.

### `blockNumber`

Once a block has been added to the blockchain, it is assigned the following available number in sequential order. Using the `blockNumber`, you can tell when the transaction has been added to a block.

### `from`

Ethereum transactions have both a sender and receiver. The `from` field is the address of the sender and can be used to find out which address started the transaction.

### `gas`

For transactions to be completed and added to a block, the sender must provide an amount of gas in addition to the value of the transaction. Gas is used to cover the computation costs required to complete the transaction. This `gas` field shows you the amount of gas that was provided by the sender.

### `gasPrice`

Another way to show the gas price is in wei. Wei is the smallest denomination of ETH and is a better way to work with smaller transactions of ETH. 1 wei is the equivalent of 10^-18 ETH. This `gasPrice` shows the amount of gas provided by the sender in WEI.

### `input`

Data can be added to the data field of a transaction whenever a user deploys or makes a call to a function in a smart contract. This data is a message to the smart contract that points to the function that will be executed.

The `input` field contains the data that is included in the transaction. If this field is empty, the transaction is a transfer between users and doesn't involve a smart contract.

### `nonce`

To prevent any double-spend from a user and to ensure transactions occur in the correct order, each transaction from a given address has an assigned `nonce`. The nonce is the number of transactions from that specific address. The nonce increases by 1 after every transaction. A transaction must but be completed before another one can begin.

### `to`

Transactions have both a sender and receiver. The `to` field is the address of the receiver and can be used to find out which address started the transaction.

### `transactionIndex`

When a transaction is added to a block, it is assigned a numbered position inside that block. The `transactionIndex` returns the value of the position of the transaction in the block to which it has been added.

### `value`

Every transaction has an attached value which is the amount that is being transferred from the sender to the receiver. The `value` returns this quantity and is shown in Wei.

### `r,s`

Ethereum uses ECDSA (Elliptic Curve Digital Signature Algorithm) to create digital signatures of a transaction. These signatures are used to verify that they are authentic and coming from the correct sender, much like a real signature.

A digital signature can be divided into two numbers - `r` and `s`. These numbers are generated by your private key. By sending `s` through an algorithm, you should get the value of `R` which is used to validate the signature.

### `v`

ECDSA uses the `v` value to recover the correct public key when performing validation on the signature of the transactions. It is a combination of:

* **recovery\_id** - the position on the curve that is used by ECDSA to generate the keys.
* **chain\_id** - the Ethereum Network ID (ex: 1 - Ethereum Mainnet).