# Overview
A multisignature account functions differently from a single signature one and can be categorised into two types:
Multisignature Standard Account
- prefix:'gt2'
- example:'gt21p8qmx5q8h7h3es3wl4x0y4efgme552hk7x5g6ppeelel2v2vvsthxk0ce65gw9mfls9ugp'
Multisignature Vault Account
- prefix:'vault2'
- example:'vault21fg056uaatk9s3k6l34eqkc7qchjup8e39afauf9naz4jmpklsze3uwx6405vll88l5lvww'
# Creating a Multisignature Account
Greate a Multisignature Vault Account
Use the multisig Standard Account created at the first step to create a multisig Vault Account.
Change a multisignature Vault Account's address (vault1->vault2):
Add
pubkey
when creating the multisig Vault AccountExecute Publish multisig account
Use the newly created Vault account to transfer out some tokens
# Managing a Multisignature Account
# Multisig Standard Account
- Transactions
Note
When sending a normal transaction, a multisignature Normal Account works the same way as a single signature Normal Account. As multisignature accounts need multiple signatures to send a transaction, compound commands are used to finish transaction signing. Use--generate-only
to generate transaction information pending and let the remaining owners sign,then collect all the signatures and broadcast.
- Generate transaction info
gatecli tx send [recipient account] [transfer amount] --from [multisig account] --generate-only --chain-id [chain ID] > [transaction file]
- Use private keys to sign the transaction
gatecli tx sign [transaction file] --from [signer account] --multisig [multisig account] --chain-id [chain ID] --output-document=[signature file]
- Collect signatures
gatecli tx multisign [transaction file] [multisig account] [signature file1] [signature file2] ... --chain-id [chain ID] > [transaction signature file]
- Broadcast transaction
gatecli tx broadcast [transaction signature file] --chain-id [chain ID]
# Multisignature Vault Account
Note
When sending transactions (delayed transaction, revocable transaction, change clearing height transaction, and clearing transaction), multisignature Vault Accounts work the same way as single signature Vault Accounts. As a multisignature Vault Account needs multiple signatures to send a transaction, compound commands are used to finish transaction's signing. Use--generate-only
to generate the transaction information pending and let owners sign, then collect all the signatures and broadcast.
Take a clearing transaction as an example. Other transactions (delay, revoke, and clearing height change) follow the same procedure:
- Generate transaction info
gatecli vault-account clear [Vault Account 1]([Vault Account 2] [Vault Account 3]...) --from [sender] --generate-only --chain-id [chain ID] > [transaction file]
- Use private keys to sign the transaction
gatecli tx sign [transaction file] --from [signer account] --multisig [multisig account] --chain-id [chain ID] --output-document=[signature file]
- Collect signatures
gatecli tx multisign [transaction file] [multisig account] [signature file1] [signature file2] ... --chain-id [chain ID] > [transaction signature file]
- Broadcast transaction
gatecli tx broadcast [transaction signature file] --chain-id [chain ID]