Serum
  • Welcome
  • Introduction
    • Overview
    • Serum Ecosystem
    • Solana
    • SRM Token
  • Serum Ecosystem
    • 🛠️Build on Serum
      • Project Ideas
      • EcoSerum Grants
      • Tutorials and Concepts
      • Listing and Adding Markets
      • Host a GUI
      • Node List
    • 📈Trade on Serum
      • Ecosystem
      • Trading GUIs
    • ❓Get Help / FAQ
      • Changes to Staking
  • Guides
    • Wallet Support
      • Wallets
      • Exchanges
      • Using Sollet (sollet.io)
        • Creating SOL Wallet
        • Depositing Funds
        • Managing your Wallet
        • Using Sollet with Ledger Nano S
        • Converting ERC20 to SPL tokens
    • Trade on Serum DEX
      • Connect your Wallet
        • Connect with Sollet
        • Connect Ledger Nano S with Sollet
      • Trade
        • Trade on Bonfida
      • Avoiding Scams
    • Wormhole Token Bridge
    • Using Symmetry Swap
    • Providing Liquidity to Pools
    • Staking
    • Multisig
    • Governance
      • How to Vote
      • How to Create a Proposal
  • Appendix
    • Philosophy
    • Serum Core
    • Fees
    • Media
  • More
    • Github
    • Website
    • Discord
    • Telegram
    • Twitter
    • Youtube
    • Weibo
Powered by GitBook
On this page
  • Multisig
  • Purpose
  • Brief Tutorial

Was this helpful?

  1. Guides

Multisig

This guide offers an overview of the multisig program.

PreviousStakingNextGovernance

Last updated 4 years ago

Was this helpful?

Multisig

The multisig will be used to govern program and IDL upgrades for Serum Programs, including the multisig itself.

You can access multisig at:

For now, the multisig being used on the mainnet is this address:

3uztpEgUmvirDBYRXgDamUDZiU5EcgTwArQ2pULtHJPC

The program-derived-address (i.e. the "authority" representing this multisig) is:

2bXuJdSb4AeAZTBY8NDtYnSbxXGjgjkMHw9dPS9gjK9r

Purpose

The primary motivation for the multisig is to manage program upgrades, but in order to use a multisig, the proper tooling must be in place:

  • (1) A multisig program

  • (2) Deterministic, verifiable builds

  • (3) A way for multisig holders to use the program (i.e. verify an upgrade against source, compiled bytecode, and then execute the upgrade)

With this tooling in place, future upgrades by any program can take advantage of them.

Brief Tutorial

Multisig is unaudited software. Use at your own risk.

2 - Read and accept the pop-up Agreement:

No statement or warranty is provided in relation to the utility of this program, the safety of its code or its suitability for your use, and by using it, you agree to bear any risk associated with such potential vulnerabilities, including, but not limited to the potential loss of tokens.

2A - If you have not done so already, press "CONNECT WALLET" on the upper-right of the page.

3 - To create a new multisig account, press on the large plus-sign circle ("+") on the bottom-right of the page.

4 - The New Multisig pop-up menu will appear. Input your desired Threshold and Participant (SPL wallet) address:

If the New Multisig menu does not show the right number of Participant fields, try refreshing the page. Be sure to re-connect your wallet.

If you are successful in creating a multisig account, you will see a blue box on the bottom-left saying "Multisig created: [address]".

4A - You can learn more about the Signer by pressing on the info circle to the right of the address. You will see the following box:

5 - To create a new transaction to be signed by the multisig, press the plus ("+") sign to the right of the address. You will see the following menu:

6 - Upon selecting a new transaction and inputting the relevant fields (e.g. inputting the "Participant" addresses under the "Set owners" option), you will see in the main menu under your multisig address the "APPROVE" and "EXECUTE" buttons.

"APPROVE" signs the transaction on behalf of the participant. "Threshold" participants must first "APPROVE" in order to "EXECUTE" a transaction.

Once the threshold is reached, anyone can "EXECUTE". When you submit a transaction, you automatically "APPROVE".

Smart Contract Source:

UI Source:

Brief snippet on how the program works:

Addressing (1): You can find the multisig repo here:

Addressing (2) is done with by building inside the docker image here. Programs written in the can easily leverage this with the anchor build --verifiable and anchor verify <program-id> commands. Addressing (3) is done with the UI at https://multisig.projectserum.com.

1 - Go to

If you are using wallet, be sure to approve every action in the pop-up window or tab!

https://github.com/project-serum/multisig
https://github.com/project-serum/multisig-ui
https://github.com/project-serum/multisig#multisig
https://github.com/project-serum/multisig
https://hub.docker.com/repository/docker/projectserum/build
Anchor
http://multisig.projectserum.com/
sollet.io
http://multisig.projectserum.com/
Welcome screen
New Multisig menu
Multisig Info (Signer) pop-up box
New Transaction menu when you click the "+" arrow