> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://v3.viem.sh/api/mcp` to find what you need.

# TransactionRequest

:::info
`TransactionRequest` is a re-export of ox's [`TransactionRequest`](https://oxlib.sh/api/TransactionRequest). Refer to the ox documentation for the full reference.
:::

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
// @noErrors
import 'ox/window'
import { Provider, TransactionRequest, Value } from 'viem/utils'

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`](/docs/utilities/transactionrequest/fromRpc) | Converts a [`TransactionRequest.Rpc`](/docs/utilities/transactionrequest/types#rpc) to a [`TransactionRequest.TransactionRequest`](/docs/utilities/transactionrequest/types#transactionrequest). |
| [`TransactionRequest.toEnvelope`](/docs/utilities/transactionrequest/toEnvelope) | Converts a [`TransactionRequest.TransactionRequest`](/docs/utilities/transactionrequest/types#transactionrequest) to a [`TransactionEnvelope.TxEnvelope`](/docs/utilities/txenvelope/types#txenvelope). |
| [`TransactionRequest.toRpc`](/docs/utilities/transactionrequest/toRpc) | Converts a [`TransactionRequest.TransactionRequest`](/docs/utilities/transactionrequest/types#transactionrequest) to a [`TransactionRequest.Rpc`](/docs/utilities/transactionrequest/types#rpc). |

## Errors

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

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`TransactionRequest.Rpc`](/docs/utilities/transactionrequest/types#transactionrequestrpc) | RPC representation of a [`TransactionRequest.TransactionRequest`](/docs/utilities/transactionrequest/types#transactionrequest). |
| [`TransactionRequest.TransactionRequest`](/docs/utilities/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). |
