Squads Docs
Development
Development
  • Introduction
    • What is Squads Protocol
    • Use Cases
    • Quickstart
  • Typescript
    • Overview
    • Instructions
      • Create Multisig
      • Create Config Transaction
      • Create Vault Transaction
      • Create Proposal
      • Approve Proposal
      • Reject Proposal
      • Cancel Proposal
      • Execute Config Transaction
      • Execute Vault Transaction
      • Create Batch
      • Add To Batch
      • Close Vault Transaction Account
      • Controlled Multisig Instructions
        • Add Member
        • Remove Member
        • Set Rent Collector
        • Add spending limit
        • Remove Spending Limit
    • Accounts
      • Multisig
      • Vault
      • Transactions
      • Proposal
      • Batch
  • Reference
    • Accounts
    • Permissions
    • Spending Limits
    • Time-locks
    • SDKs
    • Controlled Multisigs
  • API
    • Vault Check
  • CLI
    • Installation
    • Commands
  • Get Support
    • We're here to help
  • Other
    • Migrating from MultisigCreate v1 to v2
    • Squads Actions and Blinks
Powered by GitBook
On this page
  • Getting the Multisig account
  • Notes:
  1. Typescript
  2. Accounts

Multisig

Main configuration account for Squads multisigs

The Multisig account serves as the global config for your Squad. This stores all data related to membership, permissions, thresholds, and more. It will be required for every instruction method and account derivation with the SDK.

The account address itself is derived via a createKey, which is a public key used as a seed. It is recommended to generate a one-time keypair for the createKey to avoid collisions, and save the public key, or the resulting multisig address for later use.

Getting the Multisig account

import * as multisig from "@sqds/multisig";
import { Keypair } from "@solana/web3.js";

const { Multisig } = multisig.accounts;

async function main() {
    // One-time keypair, used for derivation 
    const createKey = Keypair.generate();

    const [multisigPda] = multisig.getMultisigPda({
        createKey.publicKey,
    });
    
    const multisigAccount = await Multisig.fromAccountAddress(
        connection,
        multisigPda
    );
   
    console.log(multisigAccount);
}

Notes:

  • DO NOT send funds to this account. They will be lost if you do.

  • The Multisig account handles global config for the entirety of the Squad

  • The account is derived via a createKey, which is one of the singers for its creation.

PreviousAccountsNextVault

Last updated 8 months ago

See the for more information on account structure and seeds.

reference