Single-sig, multi-sig account

In Mitum, there are two types of accounts: multi-signature (multiSig) accounts and single-signature (singleSig) accounts. The primary distinction between these two types of accounts lies in their creation methods.

singleSig account is created by mitum-currency-transfer-operation operation.

While, multiSig account is created by mitum-currency-create-account-operation or mitum-currency-create-contract-account-operation operation.

Methods that generate singleSig account:

  • account.createAccount

  • account.createWallet

  • account.createBatchWallet

  • account.key + currency.transfer

Methods that generate multiSig account:

  • account.createMultiSig

  • contract.createAccount

  • contract.createWallet

Currently, Mitum allows the creation of multiSig accounts even with just one account, which differs from the typical multiSig accounts derived from multiple public keys.

While Mitum offers the multiSig accounts in the conventional sense as well, the concept of multiSig accounts in Mitum can be considered as more "extended."

You don't need to dwell too deeply on this. The differences observed at the Mitum network between singleSig and multiSig accounts created through the aforementioned methods are summarized in the table below.

Single-Sig vs Multi-Sig Account Comparison

Attribute
Single-Sig Account
Multi-Sig account

Creation Operation Type

transfer-operation

create-account-operation or create-contract-account-operation

Public Key

Not applicable.

Utilized.

Query By Public Key

Account cannot be queried via getByPublicKey (data returns null).

Account can be queried via getByPublicKey. (Not for CA)

Account Information

When queried via getAccountInfo, data.keys.keys is null.

When queried via getAccountInfo, data.keys.keys contains an array of public keys. (Empty array for CA)

Number of Signatures

One

One or more

Update Key

Impossible

Possible (Impossible for CA)

Use as contract account

Impossible

Possible

Last updated