# MultisigConfig.getAddress

Derives the stable native multisig account address.

Preimage (fixed-width big-endian, **not** RLP): `keccak256("tempo:multisig:account" || salt || u8(threshold) || u8(owners.length) || (owner || u8(weight)) for each owner)[12:32]`.

The address is derived once from the initial (bootstrap) config and never changes — config updates do not affect it.

## 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'

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

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

## Definition

```ts
function getAddress(
  config: Config,
): Address.Address
```

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

## Parameters

### config

* **Type:** [`Config`](/tempo/reference/MultisigConfig/types#multisigconfigconfig)

The initial (bootstrap) 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

The multisig account address.

`Address.Address`
