# Vaults

A vault is a multi-signature account on Bitcoin. It holds Bitcoin and SCL assets, administers the assets you issue, and enforces an M-of-N signing threshold that Bitcoin itself checks. Every movement starts from a vault.

> Part of the SQRL documentation, section "SQRL Enterprise".
> Rendered page: https://docs.sqrl.tech/enterprise/vaults

Each vault has its own keys, its own threshold and its own on-chain history. Client assets held in separate vaults are segregated on Bitcoin, not just labelled in a database.

## How a vault is built

A vault's address is a P2WSH script generated from its signers' public keys and its threshold, for example `wsh(multi(2,xpub…,xpub…,xpub…))`. A 2-of-3 vault has three signers, and any two of them must sign before value can move. A spend with fewer valid signatures fails Bitcoin's own script check, whatever any server says.

## Funding a vault

* Select **Copy address** on the vault page and send Bitcoin to it from any wallet.
* Or select **Fund** to move Bitcoin from your [signing profile](/enterprise/signing-profile/managing-your-keys) into the vault. This needs Initiate movement (`INITIATE_PAYMENT`).

Incoming funds appear once the network confirms them. Vaults pay network fees for every movement and asset action they sign, so keep a Bitcoin balance in every vault you operate.

  A vault's balance is held on-chain at the vault's address. SQRL does not hold it, and cannot move it.

Read [Creating a vault](/enterprise/vaults/creating-a-vault), [Threshold signing](/enterprise/vaults/threshold-signing) and [Vault policies](/enterprise/vaults/vault-policies).
