<VersionWarning version="0.1" />

# sendTransactions

Send a batch of transaction from a smart account.

## Usage

:::code-group
```ts [example.ts]
import { smartAccountClient, simpleSmartAccount } from "./smartAccountClient"
import { pimlicoBundlerClient } from "./bundlerClient"
import { parseAbiItem, encodeFunctionData } from "viem"

const hash = await smartAccountClient.sendTransactions([
    {
        to: "0x0488bEE1Ec682db0F0E74AB52faFdDdEf10Af123",
        data: encodeFunctionData({
            abi: [parseAbiItem("function mint()")],
        }),
        value: 0n,
    },
    {
        to: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
        data: "0x68656c6c6f",
        value: 0n,
    },
]);
```

```ts [smartAccountClient.ts]
import { ENTRYPOINT_ADDRESS_V07, createSmartAccountClient } from "permissionless"
import { privateKeyToSimpleSmartAccount } from "permissionless/accounts"
import { createPimlicoPaymasterClient } from "permissionless/clients/pimlico"
import { createPublicClient, http } from "viem"
import { sepolia } from "viem/chains"

export const publicClient = createPublicClient({
	transport: http("https://sepolia.rpc.thirdweb.com"),
})

// if using a paymaster
const paymasterClient = createPimlicoPaymasterClient({
	transport: http("https://api.pimlico.io/v2/sepolia/rpc?apikey=YOUR_PIMLICO_API_KEY"),
	entryPoint: ENTRYPOINT_ADDRESS_V07,
})

export const simpleSmartAccount = await privateKeyToSimpleSmartAccount(publicClient, {
	privateKey: "0xPRIVATE_KEY",
	factoryAddress: "0x91E60e0613810449d098b0b5Ec8b51A0FE8c8985", // simple version
	entryPoint: ENTRYPOINT_ADDRESS_V07,
})

export const smartAccountClient = createSmartAccountClient({
	account: simpleSmartAccount,
	entryPoint: ENTRYPOINT_ADDRESS_V07,
	chain: sepolia, // or whatever chain you are using
	bundlerTransport: http("https://api.pimlico.io/v2/sepolia/rpc?apikey=YOUR_PIMLICO_API_KEY"),
	middleware: {
		sponsorUserOperation: paymasterClient.sponsorUserOperation, // if using a paymaster
	},
})
```

```ts [bundlerClient.ts]
import { ENTRYPOINT_ADDRESS_V07, bundlerActions } from "permissionless"
import { pimlicoBundlerActions } from "permissionless/actions/pimlico"
import { createClient, http } from "viem"
import { sepolia } from "viem/chains"

export const pimlicoBundlerClient = createClient({
	chain: sepolia,
	transport: http("https://api.pimlico.io/v2/sepolia/rpc?apikey=YOUR_API_KEY_HERE"),
})
	.extend(bundlerActions(ENTRYPOINT_ADDRESS_V07))
	.extend(pimlicoBundlerActions(ENTRYPOINT_ADDRESS_V07))
```
:::

## Returns

* **Type:** `Hash`

The transaction hash of the mined userOperation

## Parameters

Takes in an array of transaction objects with the following fields

### to

* **Type:** `0x${string}`

The transaction recipient or contract address.

### data (optional)

* **Type:** `0x${string}`

A contract hashed method call with encoded args.

### value (optional)

* **Type:** `bigint`

Value in wei sent with this transaction.

### maxFeePerGas (optional)

* **Type:** `bigint`

Total fee per gas (in wei), inclusive of `maxPriorityFeePerGas`. Only applies to EIP-1559 Transactions.

### maxPriorityFeePerGas (optional)

* **Type:** `bigint`

Max priority fee per gas (in wei). Only applies to EIP-1559 Transactions.

### nonce (optional)

* **Type:** `number`

Unique number identifying this transaction.

### account (optional)

* **Type:** `SmartAccount`

The Account to send the transaction from.
