Skip to content

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

Named
import { MultisigConfig } from 'ox/tempo'

Examples

import { MultisigConfig } from 'ox/tempo'
 
const genesisConfig = MultisigConfig.from({
  threshold: 1,
  owners: [
    { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
  ],
})
 
const address = MultisigConfig.getAddress(genesisConfig)

Definition

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

Source: src/tempo/MultisigConfig.ts

Parameters

config

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