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

> View portfolio balances, manage vaults and wallets, create deposit addresses, and withdraw assets.

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

## Portfolio view

Click **Portfolio** to see a breakdown of holdings by asset across all vaults.

## Vault details

From the dashboard, click on any vault to view:

* Portfolio and asset balances
* Wallets and addresses
* Holds
* Policies

You can edit the vault name by clicking on it directly from the vault page.

### Managing vault settings

On the vault page, select the settings icon to edit the vault name, description, and manage users and policies.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/0Ay5l5a1-AHLFRG8/knowledge-base/images/screenshots/anchorage-vault-overview.png?fit=max&auto=format&n=0Ay5l5a1-AHLFRG8&q=85&s=a40db2b1a10d69ac9e26f4723ffe2df4" alt="Vault overview screen showing balances and main actions" width="568" height="1226" data-path="knowledge-base/images/screenshots/anchorage-vault-overview.png" />

  <img src="https://mintcdn.com/deployment-4/0Ay5l5a1-AHLFRG8/knowledge-base/images/screenshots/anchorage-vault-settings-icon.png?fit=max&auto=format&n=0Ay5l5a1-AHLFRG8&q=85&s=5b54e7d66c444c79c1e24bdffc2cb41e" alt="Vault detail screen with settings icon highlighted" width="828" height="1792" data-path="knowledge-base/images/screenshots/anchorage-vault-settings-icon.png" />

  <img src="https://mintcdn.com/deployment-4/0Ay5l5a1-AHLFRG8/knowledge-base/images/screenshots/anchorage-vault-edit-1.png?fit=max&auto=format&n=0Ay5l5a1-AHLFRG8&q=85&s=08dc8148ab9b27b7f50fb997d0708697" alt="Edit vault details screen with name and description fields" width="828" height="1792" data-path="knowledge-base/images/screenshots/anchorage-vault-edit-1.png" />

  <img src="https://mintcdn.com/deployment-4/0Ay5l5a1-AHLFRG8/knowledge-base/images/screenshots/anchorage-vault-edit-2.png?fit=max&auto=format&n=0Ay5l5a1-AHLFRG8&q=85&s=58b99fc92c7af9bb84a3d1c805fb3f5a" alt="Vault settings showing Users and Policies sections" width="828" height="1792" data-path="knowledge-base/images/screenshots/anchorage-vault-edit-2.png" />
</ImageCarousel>

## Reviewing vault policies

On the vault page, navigate to the **Policies** tab to review the vault policies in place. Click on any policy to see its details. Changes to policies can be made in the web dashboard or the Anchorage Digital iOS app.

## Creating a deposit address

<Steps>
  <Step title="Open the vault">
    Navigate to the vault details page and click **Deposit**.
  </Step>

  <Step title="Select an asset">
    Search the list of assets and select the one you want to deposit.
  </Step>

  <Step title="Copy the address">
    Once you have selected the asset and wallet, copy and share the address with the counterparty.
  </Step>
</Steps>

<Note>
  Deposit addresses can also be created in the iOS app.
</Note>

## Wallets

All addresses associated with a vault are listed under **Wallets**. You can search by asset, network, address, or wallet name.

### Create a single wallet

<Steps>
  <Step title="Start wallet creation">
    Click **Create wallet** on the Wallets page.
  </Step>

  <Step title="Select a network">
    Select the network and click **Continue**.
  </Step>

  <Step title="Name and create">
    Give your wallet a name or use the default name provided, then click **Create wallet**.
  </Step>
</Steps>

Your new wallet will appear in the table sorted by creation date and can immediately be used for deposits and withdrawals.

### Create wallets in bulk

<Steps>
  <Step title="Start bulk creation">
    Click **Create wallet**, then select the bulk option.
  </Step>

  <Step title="Set the quantity">
    Use the **+** control to enter the number of wallets to create (up to 25 at once), then click **Continue**.
  </Step>

  <Step title="Assign names">
    Assign names to your wallets individually or in bulk. When naming in bulk, Anchorage Digital uses the base name and appends a numerical counter. Click **Create wallets**.
  </Step>
</Steps>

### Wallet archive

For certain networks, creating a wallet also generates wallets for all compatible networks. Anchorage Digital automatically archives these system-generated wallets to keep your dashboard organized. You can unarchive them at any time.

### Generate a new wallet address

Click the address icon on a wallet row to generate a new wallet address.

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

## Withdrawing assets

<Steps>
  <Step title="Initiate withdrawal">
    Navigate to the vault details page and click **Withdraw**.
  </Step>

  <Step title="Select withdrawal details">
    Choose the asset, wallet to withdraw from, amount, and destination type. If using a trusted destination, select the appropriate one, then click **Continue**.
  </Step>

  <Step title="Complete the questionnaire">
    Provide the address description, beneficiary, purpose of withdrawal, and originator. Click **Continue**.
  </Step>

  <Step title="Add a comment and preview">
    Optionally add a comment, then click **Preview withdrawal**.
  </Step>

  <Step title="Confirm and approve">
    Review the operation details and click **Confirm and submit for approval**. You will then be prompted to complete endorsement in the Anchorage Digital iOS app.
  </Step>
</Steps>
