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

# Vaults & wallets overview

> Manage vaults, create wallets, and generate deposit addresses.

export const ImageCarousel = ({images, perView = 3, children}) => {
  const [page, setPage] = useState(0);
  const [imgH, setImgH] = useState(0);
  const stripRef = useRef(null);
  const THUMB_MAX_WIDTH = 220;
  const PEEK_WIDTH = 34;
  useEffect(() => {
    const strip = stripRef.current;
    if (!strip) return;
    const measure = () => {
      const box = strip.querySelector("[data-carousel-imgbox]");
      if (box && box.clientHeight) setImgH(box.clientHeight);
    };
    measure();
    const ro = new ResizeObserver(measure);
    ro.observe(strip);
    return () => ro.disconnect();
  }, []);
  const fromChildren = React.Children.toArray(children).map(c => c && c.props && c.props.src ? {
    src: c.props.src,
    alt: c.props.alt
  } : null).filter(Boolean);
  const items = fromChildren.length ? fromChildren : images || [];
  if (!items.length) return null;
  const count = items.length;
  const columns = Math.min(perView, count);
  const totalPages = Math.ceil(count / columns);
  const showControls = totalPages > 1;
  const goTo = p => setPage((p % totalPages + totalPages) % totalPages);
  const prev = () => goTo(page - 1);
  const next = () => goTo(page + 1);
  const start = page * columns;
  const visible = items.slice(start, start + columns);
  const prevPeek = start > 0 ? items[start - 1] : null;
  const nextPeek = start + columns < count ? items[start + columns] : null;
  const renderPeek = (img, side) => {
    if (!img) return null;
    const isLeft = side === "left";
    return <button type="button" onClick={isLeft ? prev : next} aria-hidden="true" tabIndex={-1} style={{
      flex: `0 0 ${PEEK_WIDTH}px`,
      width: PEEK_WIDTH + "px",
      alignSelf: imgH ? "flex-start" : "stretch",
      height: imgH ? imgH + "px" : undefined,
      border: 0,
      padding: 0,
      cursor: "pointer",
      opacity: 0.5,
      borderRadius: isLeft ? "10px 0 0 10px" : "0 10px 10px 0",
      backgroundImage: `url("${img.src}")`,
      backgroundRepeat: "no-repeat",
      backgroundSize: "auto 100%",
      backgroundPosition: isLeft ? "right center" : "left center",
      WebkitMaskImage: `linear-gradient(to ${isLeft ? "left" : "right"}, #000 15%, transparent 100%)`,
      maskImage: `linear-gradient(to ${isLeft ? "left" : "right"}, #000 15%, transparent 100%)`
    }} />;
  };
  const arrowStyle = {
    flex: "0 0 auto",
    width: "30px",
    height: "30px",
    borderRadius: "50%",
    border: "1px solid var(--ad-border, #e4e5e7)",
    background: "var(--background, #fff)",
    fontSize: "16px",
    lineHeight: "28px",
    textAlign: "center",
    cursor: "pointer",
    padding: 0
  };
  return <div style={{
    outline: "none",
    margin: "1.5rem 0"
  }} role={showControls ? "group" : undefined} aria-label={showControls ? "Screenshot carousel" : undefined} aria-roledescription={showControls ? "carousel" : undefined}>
      <div style={{
    display: "flex",
    alignItems: "center",
    gap: "10px"
  }}>
        {showControls && <button type="button" onClick={prev} aria-label="Previous screenshots" style={arrowStyle}>
            ‹
          </button>}

        <div ref={stripRef} style={{
    display: "flex",
    flexWrap: "nowrap",
    alignItems: "flex-start",
    gap: "14px",
    justifyContent: "center",
    flex: 1
  }}>
          {renderPeek(prevPeek, "left")}
          {}
          {Array.from({
    length: columns
  }).map((_, i) => {
    const img = visible[i];
    const slotStyle = {
      margin: 0,
      flex: "1 1 0",
      maxWidth: THUMB_MAX_WIDTH + "px",
      minWidth: 0
    };
    if (!img) {
      return <div key={start + i} aria-hidden="true" style={{
        ...slotStyle,
        visibility: "hidden"
      }} />;
    }
    return <div key={start + i} style={slotStyle}>
                <span data-carousel-imgbox style={{
      display: "block"
    }}>
                  <img src={img.src} alt={img.alt ?? ""} style={{
      display: "block",
      width: "100%",
      height: "auto",
      margin: 0,
      borderRadius: "10px",
      border: "1px solid var(--ad-border, #e4e5e7)"
    }} />
                </span>
                {img.alt && <div style={{
      marginTop: "6px",
      fontSize: "12px",
      lineHeight: 1.4,
      color: "var(--ad-muted, #6b7280)",
      textAlign: "center"
    }}>
                    {img.alt}
                  </div>}
              </div>;
  })}
          {renderPeek(nextPeek, "right")}
        </div>

        {showControls && <button type="button" onClick={next} aria-label="Next screenshots" style={arrowStyle}>
            ›
          </button>}
      </div>

      {showControls && <div style={{
    textAlign: "center",
    marginTop: "8px",
    fontSize: "12px",
    color: "var(--ad-muted, #6b7280)"
  }}>
          {start + 1}
          {visible.length > 1 ? "–" + (start + visible.length) : ""} of {count}
        </div>}
    </div>;
};

## Overview

Assets on the platform are organized in a four-level hierarchy: **organization → vaults → wallets → addresses**. Your organization is at the top — it holds your users, policies, and all vaults beneath it.

<CardGroup cols={2}>
  <Card title="Organization" icon="building">
    Your institution's account. It owns all users, policies, and vaults, and defines who can do what across the platform.
  </Card>

  <Card title="Vaults" icon="vault">
    Multi-asset containers with customizable policies, quorums, and user permissions. Each vault operates independently with its own approval rules.
  </Card>

  <Card title="Wallets" icon="wallet">
    Inside a vault, each asset is stored within a wallet. Multiple wallets of the same asset can exist within a vault — useful for segregating assets by counterparty.
  </Card>

  <Card title="Addresses" icon="at">
    Each wallet can have one or more addresses. For UTXO networks like Bitcoin, multiple addresses can be created — all pooled to the same wallet. For account-based networks like Ethereum, the wallet address is unique.
  </Card>
</CardGroup>

### Crypto vs. USD wallets

Crypto and USD wallets share the same vault structure but behave differently:

* **Crypto wallets** — you can create multiple wallets for the same asset within a vault, each with its own deposit address. This is useful for segregating assets by counterparty or purpose. See [Wallet creation](/knowledge-base/platform/users/wallet-creation) for options.
* **USD wallets** — each vault holds at most one USD wallet with unique wire instructions. USD deposits arrive as wire transfers identified by sender bank information, not wallet addresses. See [USD banking](/knowledge-base/platform/users/usd-banking) for details.

### Structuring vaults by client or strategy

To keep each client or strategy separate, create a dedicated vault for it — see [Creating vaults](/knowledge-base/platform/users/creating-vaults). Wallets created in that vault get their own deposit addresses, so funds stay segregated and addresses aren't accidentally reused across clients.

When you create a wallet, you also control whether its address is shared with compatible networks. See [Wallet creation](/knowledge-base/platform/users/wallet-creation) for the address-sharing options.

## Managing vaults

Administrators with vault management permissions may change vault settings. Changes are subject to quorum approval, after which Anchorage Digital will review the operation.

### Updating vault details

To update a vault's name or description, tap the vault you want to adjust, then tap the **settings icon** in the upper right corner. Tap **Edit**, update the vault name and description as necessary, and tap **Save**.

<Note>
  Updating vault details (name and description) does not require biometric approval.
</Note>

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-edit-details-open.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=c103fedb12ab708bc431b749838fe0e6" alt="Vault settings screen with Edit highlighted" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-edit-details-open.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-edit-details-form.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=1011d220476ea2ca2c6b8baa03955847" alt="Edit vault details screen with name and description fields" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-edit-details-form.png" />
</ImageCarousel>

### Managing vault users

Administrators with vault management permissions may add, edit user privileges, or remove users from vaults.

#### Adding users to a vault

To grant a user the ability to operate within a vault, add them and assign the appropriate permissions.

<Steps>
  <Step title="Navigate to vault settings">
    In the iOS app, tap the desired vault, then tap the **settings icon** in the upper right corner and select the **Users** section.
  </Step>

  <Step title="Add the user">
    Tap **Add user** and select the user or users to add.
  </Step>

  <Step title="Set user permissions">
    To add all users, tap **Select all** and then **Continue**. Adjust user privileges by selecting a user and changing their permissions from **Initiate and approve** to **Initiate only** as needed, then select **Save changes**.
  </Step>

  <Step title="Submit for approval">
    Once all privilege changes are made, select **Done**. After reviewing the operation, submit biometric approval. Quorum approval is then required.
  </Step>
</Steps>

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-settings-users-highlighted.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=a74cc873e15ccf911bf264c3c0271e3a" alt="Vault settings screen with Users highlighted" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-settings-users-highlighted.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-users-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=3ecffc6f5c630fe73b4cbee3a612abc0" alt="Vault users list showing each user's initiate and approve permissions" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-users-list.png" />
</ImageCarousel>

#### Changing vault user privileges

To modify what actions a user is allowed to perform within a vault:

In the vault settings menu, tap **Users**. Select a user and modify their privileges to either **Initiate and Approve** or **Initiate only**. After tapping **Finish and review**, the operation will go through quorum approval.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-settings-users-highlighted.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=a74cc873e15ccf911bf264c3c0271e3a" alt="Vault settings screen with Users highlighted" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-settings-users-highlighted.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-users-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=3ecffc6f5c630fe73b4cbee3a612abc0" alt="Vault users list showing each user's initiate and approve permissions" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-users-list.png" />
</ImageCarousel>

#### Removing users from a vault

You can remove one or more users from a vault in a single operation.

In the vault settings **Users** list, tap the **Select** option to choose the users you wish to remove. Select the users and follow the prompts to complete the removal process.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-users-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=3ecffc6f5c630fe73b4cbee3a612abc0" alt="Vault users list with the Select option in the top-right corner" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-users-list.png" />
</ImageCarousel>

### Deleting a vault

Administrators with vault management permissions can delete vaults that are no longer in use. Once quorum is met, Anchorage Digital will review the operation before proceeding with deletion.

In the vault settings menu, tap **Delete vault**. Add a comment (optional), then tap **Review** to review the operation. Once reviewed, submit it for approval.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-delete-highlighted.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=b3cc2eb34c6b3052dac97f8a5732d77a" alt="Vault settings screen with Delete vault highlighted" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-delete-highlighted.png" />
</ImageCarousel>

## Managing wallets

### Accessing wallet details

From the wallet details page, you can:

* Check wallet balances and holdings
* Generate additional wallet addresses (if applicable)
* Initiate withdrawals
* Check the deposit address and pooled wallet addresses (if applicable)
* Edit the wallet name

**On iOS**: On the vault page, select the asset to see the associated wallets in the vault. Tap the wallet to see its details.

**On web dashboard**: On the vault page, navigate to the **Wallet** tab and click on a wallet to see its details. Wallet details include balances, tokens associated with that address (e.g., ERC-20 tokens), staked balances, and other asset-specific information such as pooled addresses (BTC assets) or bank account information (USD wallets).

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-assets-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=2f76caa5f6462cb0948b092260c9abdd" alt="Vault page showing the list of assets" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-assets-list.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-wallets-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=e3f56fe1182bff6bb8486901bd281698" alt="List of wallets for the selected asset" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-wallets-list.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-wallet-detail.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=10eb26e40247af4f01cd3a2c9a3d2969" alt="Wallet detail screen with balance, deposit address, and pooled addresses" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-wallet-detail.png" />
</ImageCarousel>

### Creating a new wallet

Unlike creating a vault, creating a wallet in an existing vault doesn't require quorum approval.

**On iOS**: Navigate to the desired vault and tap the asset you want to create additional wallets for. Tap the icon to create a new wallet and follow the prompts. Give the wallet a name and tap **Save** to create it.

**On web dashboard**: Click **Create wallet** to begin. Select the network and click **Continue**. Give your wallet a name or use the default name, then select **Create wallet**. Your new wallet is ready for deposits and withdrawals and will appear in the table sorted by creation date.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/add-wallet-disclaimer.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=257bf96e6858fa2b59ec9414113d34d0" alt="Create new wallet disclaimer screen" width="828" height="1792" data-path="knowledge-base/images/screenshots/add-wallet-disclaimer.png" />
</ImageCarousel>

### Creating a new wallet address

Additional addresses are available on UTXO-based networks (e.g., Bitcoin). All addresses are pooled to the same wallet.

Tap the desired wallet, then tap **Deposit**. To view additional addresses, tap **Show all**, then **Generate new** to create a new address.

<Note>
  Additional or pooled wallet addresses are only available on UTXO-based networks.
</Note>

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/vault-wallet-detail.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=10eb26e40247af4f01cd3a2c9a3d2969" alt="Wallet detail screen with the Show all pooled addresses row" width="828" height="1792" data-path="knowledge-base/images/screenshots/vault-wallet-detail.png" />
</ImageCarousel>

### One address per wallet on account-based networks

On account-based networks like Ethereum, each wallet has a single address, and every token on that network shares it—ETH and all ERC-20 tokens in the wallet use the same deposit address. You can't add more addresses to the wallet itself; additional addresses are only available on UTXO-based networks, as described above.

To get a separate deposit address on an account-based network, create another wallet in the vault—see [Creating a new wallet](#creating-a-new-wallet).

## Trusted destinations

A **trusted destination** is an external address or bank recipient your organization has added to its allowlist of approved recipients. Adding a trusted destination requires quorum approval up front, before any funds move to it. Once approved, you can use it for withdrawals without collecting a separate quorum for each transaction when using the API.

For detailed instructions on adding, managing, and removing trusted destinations for both crypto and USD, see [Trusted destinations](/knowledge-base/platform/users/trusted-destinations).
