Skip to content

Instantly share code, notes, and snippets.

@ClementWalter
Last active December 7, 2023 11:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ClementWalter/862f1a28f65101edfb9a110890189ca2 to your computer and use it in GitHub Desktop.
Save ClementWalter/862f1a28f65101edfb9a110890189ca2 to your computer and use it in GitHub Desktop.
Starknet multisig comparison

Using Multisigs on Starknet, a first benchmark

At Kakarot, we already have several multisigs on Ethereum mainnet using the usual Safe tool. Recently, we wanted to try out the new Starknet native Argent and Braavos solutions.

Here is our feedback.

Overview

Argent multisig solution has been introduced in an article from the 15th of November 2023. On the other hand, Braavos solution has been around since mid July (see this article).

Hands-on

Argent

Setup:

  • open your Argent wallet
  • on the account panel, click on "+", then "Multisig account"
  • ask you co-owners to click on "+", then "Join multisig" and share the displayed key
  • fund the given address
  • finalize

Limitations:

  • only Argent wallets can join

General feedbacks:

  • need to share a public key, which is definitely not mass adoption ready
  • no name resolution
  • no confirmation screen after inputting public keys
  • no way to fund the Multisig with another account (need to copy the address, close the wallet, open again with another account, and send to previously copied address)
  • no estimation of the ETH amount required to activate the account
  • no way to see who signed a tx
  • no "sign only" as in Safe, ie not clear from the signer if the tx be definitely sent or not
  • nice to be able to display the account in full screen mode and not only in-extension
  • facing some random "transaction failed" or "fetch error", which severly lowers the trust in the tool

Braavos

Setup:

  • open your Braavos wallet
  • on the account panel, click on "Add a multi-owner account"
  • add addresses or Starknet IDs
  • fund the account
  • finalize

Limitations:

  • only Braavos wallets can join
  • wallet needs to be deployed already, so you cannot just create a new one on the fly
  • no way to fund the Multisig with another account (need to copy the address, close the wallet, open again with another account, and send to previously copied address)

General feedbacks:

  • I tried to input a Argent account and it successfully errored with "Only Braavos wallets"
  • no redirection to next screen once you've initialized the creation of the multisig
  • not possible to expand view, which is more comfortable and usual when working with multisigs
  • after sending ETH and deploying the account, prompted to "finalize", which leads to a buggy screen with all the signers (without name resolution), stuck here
  • proposed to add a braavos subdomain, nice, but screen is buggy as well
  • not possible to remove a non deployed account from the list
  • "show private key": what is this private key if this is a multisig?
  • no way to see who is in the created multisig nor if it's a success
  • list of signers is not visible anywhere
  • I have been able to make a transaction with my signature only while the multisig is 2/3 is everything was supposed to be ok
  • no "sign only" as in Safe, ie not clear from the signer if the tx be definitely sent or not

Conclusion

Coming from Safe, one big difference is that the multisig is a feature of wallets (Argent or Braavos) and not a third party app that can be used with any wallets. For example with kakarot, we have some Safe multisigs that we use with hot wallets and some others with cold wallets. Consequently the security off the multisig is limited to the security of the underlying wallet provider. With respect to this topic, Braavos allows you to add their hardware signer feature to the multisig while Argent doesn't give any possibility to add more security.

Overall, both wallets don't seem ready to support a heavy serious usage of a treasury (at least I wouldn't put a significant amount therein). On the other hands, it's clear that native Account Abstraction will provide, once these apps are matured, a much better experience than Safe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment