> ## Documentation Index
> Fetch the complete documentation index at: https://new-docs.squads.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Multisig Account

## Overview

The Multisig account serves as the global configuration for your Squad. It stores membership, permissions, thresholds, and time lock settings. Required for every instruction method and account derivation with the SDK.

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

## Quick Example

```typescript theme={null}
import * as multisig from "@sqds/multisig";
import { Keypair } from "@solana/web3.js";

const { Multisig } = multisig.accounts;

const createKey = Keypair.generate();

const [multisigPda] = multisig.getMultisigPda({
  createKey: createKey.publicKey,
});

const multisigAccount = await Multisig.fromAccountAddress(
  connection,
  multisigPda
);
```

## PDA Derivation

The multisig PDA is derived with these seeds:

```
["multisig", "multisig", createKey]
```

## Full Example

```typescript theme={null}
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: createKey.publicKey,
    });

    const multisigAccount = await Multisig.fromAccountAddress(
        connection,
        multisigPda
    );

    console.log(multisigAccount);
}
```

## Account Fields

| Field | Type | Description |
| - | - | - |
| `createKey` | `Pubkey` | Key used to seed the multisig PDA |
| `configAuthority` | `Pubkey` | Authority that can change config (default = autonomous) |
| `threshold` | `u16` | Number of signatures required |
| `timeLock` | `u32` | Seconds between voting settlement and execution |
| `transactionIndex` | `u64` | Last transaction index (0 = no transactions) |
| `staleTransactionIndex` | `u64` | All transactions up to this index are stale |
| `rentCollector` | `Option<Pubkey>` | Address that receives rent reclaimed from closed transaction accounts (`None` = rent reclamation off) |
| `bump` | `u8` | PDA bump |
| `members` | `Vec<Member>` | List of multisig members |

<Warning>
  **DO NOT** send funds to the Multisig account. They will be lost. Send funds to the [Vault](/developers/typescript-sdk/accounts/vault) instead.
</Warning>

## Error Handling

| Error | Cause | Solution |
| - | - | - |
| Account not found | Multisig not created or wrong PDA | Verify createKey and derivation |
| Deserialization failed | Invalid account data | Ensure account is a valid Multisig |

## See Also

* [Create Multisig](/developers/typescript-sdk/instructions/create-multisig)
* [Reference: Multisig](/developers/reference/accounts#multisig)
* [Vault Account](/developers/typescript-sdk/accounts/vault)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.