# MultisigOperation.serializeTransaction

Serializes a multisig transaction operation with selected owner approvals.

## Imports

:::code-group
```ts [Named]
import { MultisigOperation } from 'ox/tempo'
```

```ts [Entrypoint]
import * as MultisigOperation from 'ox/tempo/MultisigOperation'
```
:::

## Examples

```ts twoslash
// @noErrors
import { MultisigOperation } from 'ox/tempo'

const transaction = MultisigOperation.serializeTransaction(
  operation,
  {
    approvals: selection.selectedApprovals
  }
)
```

## Definition

```ts
function serializeTransaction(
  operation: TransactionOperation,
  options: serializeTransaction.Options,
): TxEnvelopeTempo.Serialized
```

**Source:** [src/tempo/MultisigOperation.ts](https://github.com/wevm/ox/blob/main/src/tempo/MultisigOperation.ts#L271)

## Parameters

### operation

* **Type:** `TransactionOperation`

Multisig transaction operation.

#### operation.account

* **Type:** `abitype_Address`

Root multisig account.

#### operation.approvals

* **Type:** `readonly 0x${string}[]`

Every retained serialized owner approval.

#### operation.config

* **Type:** `{ owners: readonly Owner[]; salt: 0x${string}; threshold: number; version: quantity; }`

Root configuration used to verify approvals.

#### operation.configVersion

* **Type:** `quantity`

Root configuration version.

#### operation.createdAt

* **Type:** `number`

Unix creation time in milliseconds.

#### operation.expiresAt

* **Type:** `number`
* **Optional**

Time when another relay may reclaim the submission lease.

#### operation.hash

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

Deterministic multisig operation hash.

#### operation.init

* **Type:** `boolean`

Whether the operation initializes the root multisig account.

#### operation.signatureCount

* **Type:** `number`

Number of approvals selected for quorum evaluation.

#### operation.status

* **Type:** `"pending" | "submitting" | "success"`

Current operation state.

#### operation.submissionId

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

Fencing token owned by the current submitter.

#### operation.threshold

* **Type:** `number`

Required root owner weight.

#### operation.transaction

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

Canonical serialized Tempo envelope without its outer sender signature.

#### operation.transactionHash

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

Hash returned after the downstream submitter accepts the transaction.

#### operation.type

* **Type:** `"transaction"`

Operation kind.

#### operation.updatedAt

* **Type:** `number`

Unix time of the last update in milliseconds.

#### operation.weight

* **Type:** `number`

Root owner weight reached by the selected approvals.

### options

* **Type:** `serializeTransaction.Options`

Transaction serialization options.

#### options.approvals

* **Type:** `readonly 0x${string}[]`

Selected retained approvals to attach to the transaction.

## Return Type

The signed serialized Tempo transaction.

`TxEnvelopeTempo.Serialized`
