# Multisig

#### Multisig Addresses & Accounts

Each multisig created is referenced by an address that is a PDA. The PDA is derived from a `createKey` which is also saved in the multisig account for later derivation. The `createKey` can be random, or even a wallet's public key, but it is important to note this `createKey` so one can easily reference or fetch multisigs for later use.

The Multisig address is derived via the Solana Web3 function `findProgramAddress`, using the following seeds and format:

```
anchor.web3.PublicKey.findProgramAddress([
    anchor.utils.bytes.utf8.encode("squad"),
    createKey.toBuffer(),
    anchor.utils.bytes.utf8.encode("multisig")
], programId)
```

The format for multisig PDAs is:

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

For a more in-depth look at what data is being store on-chain for a multisig, you can inspect the [Ms struct in the Squads MPL repo](https://github.com/Squads-Protocol/squads-mpl/blob/main/programs/squads-mpl/src/state/ms.rs#L7).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.squads.so/squads-v3-docs/development/pdas/multisig.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
