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

# ETH staking

> Stake Ethereum (ETH) and manage validators.

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

export const Check = () => <Icon icon="check" color="#049159" />;
export const Cross = () => <Icon icon="x" color="#dd0000" />;

Ethereum is a layer-1 blockchain designed to enable decentralized applications on its network. The network is secured using a proof-of-stake consensus mechanism, and its native token, ETH, allows token holders to collect rewards for helping secure the network by validating transactions.

Anchorage Digital offers custody and staking services for Ethereum:

* Custody your ETH (deposit and withdraw)
* Stake ETH to a dedicated validator and collect rewards

Staking operations can be initiated both in the iOS app and on the web dashboard.

## Pectra upgrade

In 2025, Ethereum introduced the Pectra upgrade, which made several changes to the protocol's staking system. Anchorage Digital supports the new post-Pectra standard for ETH staking.

<Info>
  Any ETH staked prior to support of the new post-Pectra standard will remain on 0x01 validators (pre-Pectra). Upon request, Anchorage Digital will consolidate your ETH staked to 0x01 validators (pre-Pectra) into 0x02 validators (post-Pectra). Consolidation is irreversible.
</Info>

The enhanced post-Pectra staking path is available to Ethereum wallets with no ETH staking activity prior to April 2026.

### Summary of changes

| Dimension                           | 0x01 validators (pre-Pectra)                                      | 0x02 validators (post-Pectra)                       |
| ----------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------- |
| **Rewards**                         | Do not compound. Swept to available custody balance periodically. | Auto-compounded to the validator's staking balance. |
| **Supported staking amounts**       | Increments of 32 ETH only                                         | Between 32–2,048 ETH per validator                  |
| **Partial withdrawals / unstaking** | <Cross />                                                         | <Check />                                           |
| **Validator top-ups / add stake**   | <Cross />                                                         | <Check />                                           |
| **Consolidation target**            | <Cross />                                                         | <Check />                                           |
| **Anchorage Digital API support**   | <Cross />                                                         | <Check />                                           |

## 0x02 validator staking (post-Pectra)

This staking path is available to Ethereum wallets with no ETH staking activity prior to April 2026.

### Fund a new validator

<Steps>
  <Step title="Navigate to your wallet">
    Navigate to the wallet from which you would like to stake. Select the **Stake** button to review and accept the staking terms and disclosures.
  </Step>

  <Step title="Enter stake amount">
    Enter the amount you would like to stake, between 32 ETH and 2,048 ETH.
  </Step>

  <Step title="Review and submit">
    Review the operation details, add a comment (optional), then submit the operation. Once the operation's quorum policy is met, the staking operation will be signed and broadcast on-chain.
  </Step>
</Steps>

<Note>
  The length of the activation queue is determined by network activity. A newly funded validator may take a few days or several weeks to become active and begin accruing rewards.
</Note>

### Add or remove stake from an active validator

<Steps>
  <Step title="View staking details">
    Navigate to the wallet with an active staking position. Select the **Actions** drop-down, then choose **Staking details** to view your position. Each staking position is identified by its validator public key.
  </Step>

  <Step title="Add or remove stake">
    Select **Add stake** or **Unstake** within the desired staking position card to initiate the corresponding action.
  </Step>

  <Step title="Review and submit">
    Review the operation details, add a comment (optional), then submit the operation. Once the operation's quorum policy is met, the staking operation will be signed and broadcast on-chain.
  </Step>
</Steps>

<Note>
  Unstaking a validator's total balance exits the validator from the active set. It will no longer be available for staking actions.
</Note>

### Unstake a validator's total position

<Steps>
  <Step title="Navigate to staking details">
    Navigate to your ETH wallet's staking details screen.
  </Step>

  <Step title="Set max and unstake">
    Select **Unstake**, then select **Set max** for the amount.
  </Step>

  <Step title="Review and submit">
    Review the operation details, add a comment (optional), then submit the operation. Once the operation's quorum policy is met, the unstaking operation will be signed and broadcast on-chain.
  </Step>
</Steps>

<Note>
  The length of the unstaking queue is determined by network activity. Partial and full unstakes may take a few days or several weeks to return funds to your available balance.
</Note>

## 0x01 validator staking (pre-Pectra)

This staking path is only available to Ethereum wallets with ETH staking activity prior to April 2026. New staking positions and stake increases are not supported for 0x01 validators.

### How to stake

<Steps>
  <Step title="Navigate to your ETH wallet">
    Tap the vault that holds the assets. Tap **ETH** to select the wallet you'd like to stake from.
  </Step>

  <Step title="iOS">
    Tap **Stake**, then tap **Continue** to review and accept the Ethereum staking disclosures. Enter the number of validators you would like to fund and tap **Continue** to review the operation and submit biometric approval.
  </Step>

  <Step title="Web dashboard">
    Click on **Stake** in the side navigation to go to your staking portfolio. Click **Stake** in the top right corner and choose **ETH**. Select the account, vault, and wallet from where you want to stake, then click **Continue**. Enter the number of validators you would like to fund and proceed to review the operation details. Enter the number of validators you would like to fund, then review and confirm the information and submit. Go to the iOS app and endorse the staking operation.
  </Step>
</Steps>

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/eth-staking-info.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=ab3b7b5f7e3d73d8edc9b48ceb3511ca" alt="Stake ETH intro screen" width="828" height="1792" data-path="knowledge-base/images/screenshots/eth-staking-info.png" />

  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/eth-staking-disclosure.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=8ff82e4003693d44443f5d3ce70622c0" alt="Ethereum staking disclosures acceptance screen" width="828" height="1792" data-path="knowledge-base/images/screenshots/eth-staking-disclosure.png" />

  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/eth-staking-validator-count.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=091e127d33a131e7423a7c9e91ae29cd" alt="Screen for entering the number of validators to fund" width="828" height="1792" data-path="knowledge-base/images/screenshots/eth-staking-validator-count.png" />

  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/eth-staking-review.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=8d6472365181042731f6b1fa3e7c5fc3" alt="Review screen for the staking operation before biometric approval" width="828" height="1792" data-path="knowledge-base/images/screenshots/eth-staking-review.png" />
</ImageCarousel>

### Ethereum staking rewards

Staking rewards are automatically deposited into your Anchorage Digital wallet (the wallet from which you staked). For any validator that has a balance greater than 32 ETH, the amount over 32 will be routinely withdrawn to your available balance. This sweep of any validator balance over 32 ETH will occur automatically approximately every ten days.

### How to unstake

Full staking withdrawals are initiated via the iOS app or the web dashboard and involve unstaking the full amount of 32 ETH that was initially staked to a validator.

<Note>Unstaking is subject to an unbonding period determined by network conditions.</Note>

**iOS:**

From the vault page, tap **ETH** and select the wallet with your staked ETH, then tap **Unstake**. Enter the number of validators you would like to unstake and tap **Continue** to review the operation and submit biometric approval.

**Web dashboard:**

Navigate to the vault on the web dashboard, select the wallet with your staked ETH, hover over the address field, and click **Unstake**. Enter the number of validators you would like to unstake and proceed to preview the operation. Review the operation details and click to submit biometric approval in the mobile app.

<ImageCarousel>
  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/eth-unstaking-validator-count.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=f41858cf4aec63affd4425ffa5e89fd5" alt="Screen for entering the number of validators to unstake" width="828" height="1792" data-path="knowledge-base/images/screenshots/eth-unstaking-validator-count.png" />

  <img src="https://mintcdn.com/deployment-4/Q6VrRBiEEXtXFQnt/knowledge-base/images/screenshots/eth-unstaking-review.png?fit=max&auto=format&n=Q6VrRBiEEXtXFQnt&q=85&s=496095c71940e6557b92849da6e7fea0" alt="Review screen for the unstaking operation before biometric approval" width="828" height="1792" data-path="knowledge-base/images/screenshots/eth-unstaking-review.png" />
</ImageCarousel>

## Frequently asked questions

<Accordion title="How do I claim my ETH rewards from Anchorage Digital?">
  No action is needed as rewards are routinely deposited to your available balance.
</Accordion>

<Accordion title="How long does it take to unstake?">
  A full staking withdrawal occurs in two parts:

  1. **Exit the active validator set** — Once a request to "exit" has been made, the validator is added to the exit queue. If there are no other validators in the exit queue, this part will take approximately 35 minutes. If there are other validators in the exit queue, this part can take several days or weeks.

  2. **Withdraw balance back to the execution layer** — Once exited, a validator must wait a minimum of 27 hours to be considered "withdrawable." At this point, the exited and withdrawable ETH will be picked up in the next recurring withdrawal sweep which has a \~ten day cycle.
</Accordion>

For further questions related to ETH staking, please contact your client experience manager.
