OZMultiSignerManager

public class OZMultiSignerManager : OZManagerHelpers, @unchecked Sendable

Manager for multi-signature smart-account operations.

Collects signatures from a caller-supplied list of signers (passkeys, external wallet addresses, and Ed25519 external signers) and submits the assembled transaction through the kit’s transaction operations.

Signatures are collected sequentially in selectedSigners order. Each passkey signer triggers one OS WebAuthn prompt; each wallet signer triggers one external-wallet signing request. The connected passkey is NOT added implicitly — include it explicitly when it should sign.

Each delegated wallet signer produces its own signed auth entry (root invocation __check_auth(authDigest)) plus an empty-bytes placeholder in the smart account’s signature map. Direct wallet entries are signed via the external wallet adapter and written into the classical Vec([Map({public_key, signature})]) shape; the smart account signature map is not modified for those entries.

Example:

let result = try await kit.multiSignerManager.multiSignerTransfer(
    tokenContract: xlmSac,
    recipient: recipientAddress,
    amount: "10",
    selectedSigners: [.passkey(credentialId: id, credentialIdBytes: idBytes, keyData: key)]
)

Multi-Signer Transfer

Multi-Signer Direct Contract Call

Multi-Signer Execute (Smart-Account Mediated Call)

Shared Multi-Signer Submission Pipeline