# MultisigOperation.selectApprovals

Validates, deduplicates, and selects owner approvals for an operation.

The function retains one canonical approval per owner. It selects the smallest deterministic quorum by owner weight, then orders the selected approvals by owner address for serialization.

## 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 selection = await MultisigOperation.selectApprovals({
  account,
  approvals,
  config,
  hash,
  resolveConfig
})
```

## Definition

```ts
function selectApprovals(
  options: selectApprovals.Options,
): Promise<selectApprovals.ReturnValue>
```

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

## Parameters

### options

* **Type:** `selectApprovals.Options`

Approval selection parameters.

#### options.account

* **Type:** `abitype_Address`

Root multisig account.

#### options.approvals

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

Serialized primitive or nested owner approvals.

#### options.config

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

Current root multisig configuration.

#### options.hash

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

Deterministic operation hash approved by root owners.

#### options.resolveConfig

* **Type:** `ResolveConfig`
* **Optional**

Resolves the current configuration of a nested multisig owner.

## Return Type

The retained approvals and deterministic quorum selection.

`Promise<selectApprovals.ReturnValue>`
