How it works
A Sui multisig is fully defined by its members (each a public key +weight) and a threshold. Deriving its address is a pure, offline operation. Signing is a three-step flow:
- Each participating member signs the same transaction or message bytes independently, producing a partial signature.
- The partials are combined into a single multisig signature.
- The combined signature is submitted alongside the transaction bytes (or verified off-chain).
Multisigs are k-of-n with up to 10 members, per-member
weight (1–255), and a threshold (the summed weight required). The multisig has its own address, distinct from any member’s.With the hook
useParaSuiMultiSigSigner returns a signer that bundles the whole flow. Pass the co-signers as otherMembers; the Para member is added automatically.
multiSigSigner.signTransaction(bytes) / verifyTransaction, and set the transaction’s sender to multiSigSigner.address.
With the helper functions
The same flow is available as framework-agnostic functions from@getpara/sui-sdk-integration, for non-React code or when you only have some members locally:
Only signatures from members whose combined weight meets the
threshold are required, and the order does not matter. createParaSuiMultiSigSigner (used by the hook) accepts either a paraSigner from useParaSuiSigner or a para instance directly.