How multisig works
Creating/Joining a multisig
Users can now create or join “multisig accounts” in addition to “Standard accounts” and "Smart Accounts". When a user creates or joins a new multisig account, Argent X generates a private and public keypair for the user (like for individual accounts).
We refer to the private key as “signer key” and to the public key as “signer pubkey”. On the Argent X UI, whenever a user interacts with the other owners, represented by their “signer pubkeys”, they will be shown encoded as “Base58” to avoid any confusion with account addresses or private keys.
Setting the owners and the threshold
The creator can define a multisig with 1 to 32 owners (i.e. signer pubkeys) depending on the needs of the team. And, the creator needs to define a threshold like “3 out of 5”, i.e. the required signatures out of all owners to execute a transaction.
Funding and activation
Once the multisig is defined, the creator needs to fund it with a bit of ETH to be able to activate it. That’s a simple deployment of the smart contract with the defined parameters like signer pubkeys and threshold on Starknet. After completion, the multisig is active and any change to it will require a transaction that needs the required confirmation of the owners.
Creating a transaction request
Every owner can initiate a transaction request (eg. send Eth) at any time by “confirming a transaction” like they are used to with individual accounts. The transaction request and the signatures will be shared off-chain through Argent’s backend with the other owners of the multisig.
An owner can always check the status of an “transaction request” on the activities. The transaction will be executed on-chain as soon as the required number of owners have provided their signatures for it.
Signing a transaction request
When an owner opens their multisig account they will see a notification on the activities if there is a pending transaction request. They can review the full transaction details and existing signatures (of the other owners) and then decide to confirm or reject it.
Transaction execution
When the number of confirmations reaches the threshold, the transaction is sent to the sequencer (or RPC node) and will be executed on-chain
Last updated