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).
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
import { MultisigConfig } from 'ox/tempo'Examples
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:
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
function getSignPayload(
value: getSignPayload.Value,
): Hex.HexSource: src/tempo/MultisigConfig.ts
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

