# TransactionRequest

Utilities & types for working with **Transaction Requests** as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/4aca1d7a3e5aab24c8f6437131289ad386944eaa/src/schemas/transaction.yaml#L358-L423)

## Examples

```ts twoslash
import 'ox/window'
import { Provider, TransactionRequest, Value } from 'ox'

const provider = Provider.from(window.ethereum!)

const request = TransactionRequest.toRpc({
  // [!code focus]
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]
  value: Value.fromEther('0.01') // [!code focus]
}) // [!code focus]

const hash = await provider.request({
  method: 'eth_sendTransaction',
  params: [request]
})
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`TransactionRequest.fromRpc`](/api/TransactionRequest/fromRpc) | Converts a [`TransactionRequest.Rpc`](/api/TransactionRequest/types#rpc) to a [`TransactionRequest.TransactionRequest`](/api/TransactionRequest/types#transactionrequest). |
| [`TransactionRequest.toEnvelope`](/api/TransactionRequest/toEnvelope) | Converts a [`TransactionRequest.TransactionRequest`](/api/TransactionRequest/types#transactionrequest) to a [`TransactionEnvelope.TxEnvelope`](/api/TransactionEnvelope/types#txenvelope). |
| [`TransactionRequest.toRpc`](/api/TransactionRequest/toRpc) | Converts a [`TransactionRequest.TransactionRequest`](/api/TransactionRequest/types#transactionrequest) to a [`TransactionRequest.Rpc`](/api/TransactionRequest/types#rpc). |

## Errors

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`TransactionRequest.MissingAuthorizationListError`](/api/TransactionRequest/errors#transactionrequestmissingauthorizationlisterror) | Thrown when a 7702 conversion is requested but no `authorizationList` is provided. |
| [`TransactionRequest.MissingKzgError`](/api/TransactionRequest/errors#transactionrequestmissingkzgerror) | Thrown when a 4844 conversion is requested but no `kzg` context is provided. |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`TransactionRequest.Rpc`](/api/TransactionRequest/types#transactionrequestrpc) | RPC representation of a [`TransactionRequest.TransactionRequest`](/api/TransactionRequest/types#transactionrequest). |
| [`TransactionRequest.TransactionRequest`](/api/TransactionRequest/types#transactionrequesttransactionrequest) | A Transaction Request that is generic to all transaction types, as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/4aca1d7a3e5aab24c8f6437131289ad386944eaa/src/schemas/transaction.yaml#L358-L423). |
