> ## 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.

# Vault Account

## Overview

Vaults are accounts that store assets and handle execution of Vault Transactions. They function differently from other accounts associated with Squads, as they hold no data directly.

## Understanding Vaults

Vaults are derived via a `vaultIndex`, which allows you to select a specific vault by chronological number. This index is used by the SDK and instructions to target the correct vault.

When you look up a newly derived vault address on an explorer, it will show as an uninitialized account. This is because Solana requires any initialized account to have a non-zero SOL balance. The account is never "created" by any instruction - it becomes initialized when you deposit funds.

<Info>
  When you create a new wallet with Phantom, that key initially shows as "uninitialized" on an explorer until you deposit funds. Same principle with Vaults.
</Info>

## Quick Example

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

const [multisigPda] = multisig.getMultisigPda({
  createKey: new PublicKey("<your createkey>"),
});

const [vaultPda] = multisig.getVaultPda({
  multisigPda,
  index: 0,
});

console.log(vaultPda);
```

## PDA Derivation

A vault account is derived with these seeds:

```
["multisig", multisig_key (as buffer), "vault", vault_index]
```

## 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 [vaultPda] = multisig.getVaultPda({
        multisigPda,
        index: 0
    });

    console.log(vaultPda);
}
```

## Multiple Vaults

Each multisig can have multiple vaults, each with its own index:

```typescript theme={null}
// Default vault (index 0)
const [defaultVault] = multisig.getVaultPda({
  multisigPda,
  index: 0,
});

// Additional vault (index 1)
const [secondVault] = multisig.getVaultPda({
  multisigPda,
  index: 1,
});
```

<Warning>
  Send assets to the Vault PDA, not the Multisig PDA. Funds sent to the Multisig account will be lost.
</Warning>

## See Also

* [Create Vault Transaction](/developers/typescript-sdk/instructions/create-vault-transaction)
* [Execute Vault Transaction](/developers/typescript-sdk/instructions/execute-vault-transaction)
* [Multisig Account](/developers/typescript-sdk/accounts/multisig)


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