Skip to main content

IMultisigCommittee

Namespace: IotaSdk

A multisig committee

A MultisigCommittee is a set of members who collectively control a single Address on the IOTA blockchain. The number of required signatures to authorize the execution of a transaction is determined by (signature_0_weight + signature_1_weight ..) >= threshold.

BCS

The BCS serialized form for this type is defined by the following ABNF:

multisig-committee = (vector multisig-member)
u16 ; threshold

There is also a legacy encoding for this type defined as:

legacy-multisig-committee = (vector legacy-multisig-member)
u16 ; threshold
public interface IMultisigCommittee : System.IEquatable`1[[IotaSdk.MultisigCommittee, IotaSdk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]

Implements IEquatable<MultisigCommittee>
Attributes NullableContextAttribute

Methods

DeriveAddress()

Derive an Address from this MultisigCommittee.

A MultiSig address is defined as the 32-byte Blake2b hash of serializing the SignatureScheme flag (0x03), the threshold (in little endian), and the concatenation of all n flag, public keys and its weight.

hash(0x03 || threshold || flag_1 || pk_1 || weight_1 || ... || flag_n || pk_n || weight_n).

Address DeriveAddress()

Returns

Address

Members()

The members of the committee

MultisigMember[] Members()

Returns

MultisigMember[]

Scheme()

Return the flag for this signature scheme

SignatureScheme Scheme()

Returns

SignatureScheme

Threshold()

The total signature weight required to authorize a transaction for the address corresponding to this MultisigCommittee.

ushort Threshold()

Returns

UInt16

Validate()

Checks if the Committee is valid.

A valid committee is one that:

  • Has a nonzero threshold
  • Has at least one member
  • Has at most ten members
  • No member has weight 0
  • the sum of the weights of all members must be at least the threshold
  • contains no duplicate members
void Validate()

Exceptions

SdkFfiException