# MultisigConfig.assert

Asserts that a native multisig [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config) is valid.

Mirrors the Tempo `InitMultisig::validate` rules: owners non-empty and `<= maxOwners`, strictly ascending unique nonzero owner addresses, nonzero owner weights, `threshold >= 1`, total weight `<= 255` (u8 max), and `threshold <= total weight`.

## Imports

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

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

## Examples

```ts twoslash
import { MultisigConfig } from 'ox/tempo'

MultisigConfig.assert({
  threshold: 1,
  owners: [
    {
      owner: '0x1111111111111111111111111111111111111111',
      weight: 1
    }
  ]
})
```

## Definition

```ts
function assert<numberType>(
  config: Config<numberType>,
): void
```

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

## Parameters

### config

* **Type:** `Config<numberType>`

The multisig config.

#### config.owners

* **Type:** `readonly Owner[]`

Weighted owner list (strictly ascending by `owner` address).

#### config.salt

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

Caller-chosen 32-byte salt mixed into the derived account address.
Defaults to the zero salt (`MultisigConfig.zeroSalt`) when omitted.

#### config.threshold

* **Type:** `numberType`

Minimum total owner weight required to authorize a transaction.

## Return Type

`void`
