# MultisigConfig

Native multisig account utilities (TIP-1061).

Derives stable multisig account addresses from a weighted owner
configuration, and computes the owner approval digest that owners sign.

[TIP-1061](https://tips.sh/1061)

## Examples

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

const genesisConfig = MultisigConfig.from({
  threshold: 2,
  owners: [
    {
      owner: '0x1111111111111111111111111111111111111111',
      weight: 1
    },
    {
      owner: '0x2222222222222222222222222222222222222222',
      weight: 1
    }
  ]
})

const account = MultisigConfig.getAddress(genesisConfig)
```

## Functions

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`MultisigConfig.assert`](/tempo/reference/MultisigConfig/assert) | Asserts that a native multisig [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config) is valid. |
| [`MultisigConfig.from`](/tempo/reference/MultisigConfig/from) | Normalizes a native multisig [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config). |
| [`MultisigConfig.fromTuple`](/tempo/reference/MultisigConfig/fromTuple) | Converts an RLP [`MultisigConfig.Tuple`](/tempo/reference/MultisigConfig/types#tuple) back to a [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config). |
| [`MultisigConfig.getAddress`](/tempo/reference/MultisigConfig/getAddress) | Derives the stable native multisig account address. |
| [`MultisigConfig.getSignPayload`](/tempo/reference/MultisigConfig/getSignPayload) | Computes the digest a native multisig owner approves (signs). |
| [`MultisigConfig.toTuple`](/tempo/reference/MultisigConfig/toTuple) | Converts a [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config) to its RLP tuple form (carried by the multisig signature `init`). |
| [`MultisigConfig.validate`](/tempo/reference/MultisigConfig/validate) | Validates a native multisig [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config). Returns `true` if valid, `false` otherwise. |

## Errors

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`MultisigConfig.InvalidConfigError`](/tempo/reference/MultisigConfig/errors#multisigconfiginvalidconfigerror) | Thrown when a native multisig config is invalid. |

## Types

| Name                | Description                         |
| ------------------- | ----------------------------------- |
| [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#multisigconfigconfig) | Native multisig configuration. Determines the stable multisig account address. |
| [`MultisigConfig.Owner`](/tempo/reference/MultisigConfig/types#multisigconfigowner) | Native multisig owner entry. |
| [`MultisigConfig.Tuple`](/tempo/reference/MultisigConfig/types#multisigconfigtuple) | RLP tuple representation of a [`MultisigConfig.Config`](/tempo/reference/MultisigConfig/types#config). |
