Skip to main content
Sui has native multisig support: a k-of-n set of members, each with a weight, that together produce one combined signature once the participating members’ weights reach a threshold. Para’s Sui integration lets a Para MPC wallet be one member of a multisig.

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:
  1. Each participating member signs the same transaction or message bytes independently, producing a partial signature.
  2. The partials are combined into a single multisig signature.
  3. 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.
For a transaction, use 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.

Reference