Create Config Transaction

Config Transactions are a little more complicated than the other ones, as there are multiple configuration arguments that you can supply to such a transaction. Let's take a look at how this would look like.

Let's set the requirements up

import * as multisig from "@sqds/multisig";

// Cluster Connection
const connection = new Connection( < your rpc url > );

// Fee payer is the a signer that pays the transaction fees
const feePayer = Keypair.generate();

// Derive the multisig PDA
const multisigPda = multisig.getMultisigPda({
    // The createKey has to be a Public Key, see accounts reference for more info
    createKey,
})[0];

// Derive the PDA of the Squads Vault
const [vaultPda] = multisig.getVaultPda({
    multisigPda,
    index: 0,
});

const transactionIndex = 1n;

Change the Threshold of the Multisig

await multisig.rpc.configTransactionCreate({
    connection,
    feePayer: members.proposer,
    multisigPda: controlledMultisigPda,
    transactionIndex: 1n,
    creator: members.proposer.publicKey,
    actions: [{
        __kind: "ChangeThreshold",
        newThreshold: 3
    }],
}),

This flow applies to all other actions, see more here.