> ## 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 & addresses

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

### 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 and management](/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.

Two approvals happen up front, each gated by quorum: **adding the trusted destination** to the allowlist, and **granting the transfer capability within the permission group** the API key belongs to. Both require quorum approval plus Anchorage Digital review. Once both are in place, the API key can transfer to its trusted destinations without collecting a separate quorum approval for each transaction. This is what makes trusted destinations practical for automated and high-frequency flows (treasury wallets, exchange accounts, settlement counterparties), while addresses outside the allowlist are not available to those API transfers.

You can also configure a policy to only allow withdrawals to trusted destinations — turning the allowlist into a hard control rather than just a convenience.

<Note>
  Today, two quorum-gated steps happen up front — adding the trusted destination, and granting the permission group's transfer capability; API transfers to trusted destinations then run without a separate per-transaction quorum. Applying a lower quorum to trusted-destination withdrawals is a planned Conditional Rules enhancement — see [Policies](/knowledge-base/platform/users/policies).
</Note>

### Adding a trusted destination

Administrators with trusted destination management permissions may add trusted destinations.

<Steps>
  <Step title="Navigate to Trusted destinations">
    Go to **Settings** and tap **Trusted destinations**, then tap **Add trusted destination**.
  </Step>

  <Step title="Provide destination details">
    Search for the asset, scan or paste the address, enter a name and description, then reply to the questionnaire.
  </Step>

  <Step title="Submit biometric approval">
    Submit biometric approval to initiate the operation. Once quorum is met, Anchorage Digital will review the operation.
  </Step>
</Steps>

To use the same trusted destination across assets on the same network, select the checkbox under **Description**.

<Info>
  It is also possible to add trusted destinations in the web dashboard. If initiated in the web dashboard, users are required to submit biometric approval in the iOS app.
</Info>

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=caa7f734dbf4e220d1adf64b1c7a0927" alt="Trusted destinations list with Add trusted destination button" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-list.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-new-asset-selection.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=f0df6e4e13f01f12dac79ae272835579" alt="Asset search screen for a new trusted destination" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-new-asset-selection.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-new-detail.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=e26a0ff5aba863b6b27fc80d08fe35f6" alt="New trusted destination form with address, name, and description fields" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-new-detail.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-new-network-level-detail.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=df737fb09def2208225ae2cdeee030ea" alt="New trusted destination form with the apply to all assets in network checkbox selected" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-new-network-level-detail.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-new-aml-questionnaire.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=76db2c3cb5ea44a2d93b6d793f396794" alt="AML questionnaire for the new trusted destination" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-new-aml-questionnaire.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-new-review.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=e471f448deaeda838c01332e6227bdc1" alt="Review screen for the new trusted destination before biometric approval" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-new-review.png" />
</ImageCarousel>

### Removing a trusted destination

Only administrators with trusted destination management permissions can remove trusted destinations. Removal requires quorum and Anchorage Digital approval.

Go to **Settings** and tap **Trusted destinations**. Tap the trusted destination to be removed. Review the details, tap **Remove**, and follow the prompts to submit biometric approval.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-list.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=caa7f734dbf4e220d1adf64b1c7a0927" alt="Trusted destinations list" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-list.png" />

  <img src="https://mintcdn.com/deployment-4/dnKKK5u4vRePxCW5/knowledge-base/images/screenshots/td-detail.png?fit=max&auto=format&n=dnKKK5u4vRePxCW5&q=85&s=3fc0fcf525beaf7257b2add5cacabc68" alt="Trusted destination detail screen with the Remove button" width="828" height="1792" data-path="knowledge-base/images/screenshots/td-detail.png" />
</ImageCarousel>
