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

# SDK patterns

> Common operations with the Squads V4 TypeScript SDK

Reference snippets for common Squads V4 SDK operations. Each pattern is self-contained and can be dropped into your application.

For full working examples, see the [Squads V4 Examples](https://github.com/Squads-Protocol/v4-examples) repository.

## Initialize the SDK

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

const { Permission, Permissions } = multisig.types;

const connection = new Connection("<your rpc url>", "confirmed");
```

## Derive PDAs

```typescript theme={null}
// Multisig PDA
const createKey = new PublicKey("<your createkey>");
const [multisigPda] = multisig.getMultisigPda({ createKey });

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

// Proposal PDA
const [proposalPda] = multisig.getProposalPda({
  multisigPda,
  transactionIndex: BigInt(1),
});

// Transaction PDA
const [transactionPda] = multisig.getTransactionPda({
  multisigPda,
  index: BigInt(1),
});
```

## Fetch account data

```typescript theme={null}
// Fetch multisig account
const multisigAccount = await multisig.accounts.Multisig.fromAccountAddress(
  connection,
  multisigPda
);

// Fetch proposal account
const proposalAccount = await multisig.accounts.Proposal.fromAccountAddress(
  connection,
  proposalPda
);

// Fetch vault transaction
const vaultTransaction = await multisig.accounts.VaultTransaction.fromAccountAddress(
  connection,
  transactionPda
);
```


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