# MultisigConfig.getSignPayload

Computes the digest a native multisig owner approves (signs).

`keccak256("tempo:multisig:signature" || inner_digest || account)`, where `inner_digest` is the transaction sign payload ([`TxEnvelopeTempo.getSignPayload`](/tempo/reference/TxEnvelopeTempo/getSignPayload)).

The digest is keyed on the permanent `account` derived from the genesis (bootstrap) config — config updates never change it, so the genesis config is the correct input even for post-update transactions.

For a nested multisig owner approval, the parent digest becomes the nested approval's `payload`, with the nested multisig `account`.

## Imports

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

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

## Examples

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

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

const envelope = TxEnvelopeTempo.from({
  chainId: 1,
  calls: []
})

const digest = MultisigConfig.getSignPayload({
  payload: TxEnvelopeTempo.getSignPayload(envelope),
  genesisConfig
})
```

### From `account`

If you already have the permanent `account` (for example, recovered from a stored envelope), pass it directly:

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

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

const envelope = TxEnvelopeTempo.from({
  chainId: 1,
  calls: []
})

const digest = MultisigConfig.getSignPayload({
  payload: TxEnvelopeTempo.getSignPayload(envelope),
  account
})
```

## Definition

```ts
function getSignPayload(
  value: getSignPayload.Value,
): Hex.Hex
```

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

## Parameters

### value

* **Type:** `getSignPayload.Value`

The digest derivation parameters.

#### value.account

* **Type:** `abitype_Address`

The native multisig account address.

#### value.genesisConfig

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

The initial multisig config (the bootstrap config that derived the
permanent `account`). Used to derive the account automatically.
Config updates never change `account`, so the genesis config is
also the correct input for post-update transactions.

#### value.payload

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

The inner transaction sign payload (`tx.signature_hash()`).

## Return Type

The owner approval digest.

`Hex.Hex`
