> For the complete documentation index, see [llms.txt](https://zerc20.gitbook.io/zerc20/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zerc20.gitbook.io/zerc20/for-users/getting-started/scan-receives.md).

# Scan Receives

This guide explains how to scan for and receive private transfers using the zERC20 web application.

## Accessing Private Receive

1. Visit the [Frontend](https://app.zerc20.io/)
2. Connect your wallet
3. Click the "Private Receive" tab

<figure><img src="https://4045326033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPzVlZxykzlnrD14epWVc%2Fuploads%2Fgit-blob-74162a428feadd278636816b8ece63ac9519d50d%2Fannouncement-list.png?alt=media" alt="Private Receive Tab" width="560"><figcaption><p>Private Receive Tab</p></figcaption></figure>

## Scanning for Incoming Transfers

To check for incoming private transfers:

1. Click the "Scan for Receive" button
2. The system will request your view key and scan for announcements

<figure><img src="https://4045326033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPzVlZxykzlnrD14epWVc%2Fuploads%2Fgit-blob-b2c41a17ecbddc749b231cc1247b114bc8887de7%2Fscanning-progress.png?alt=media" alt="Scanning Progress" width="480"><figcaption><p>Scanning Progress</p></figcaption></figure>

The scanning process:

* Requests your view key from your wallet (this key allows decryption of announcements addressed to you)
* Searches for encrypted announcements across all supported chains
* Decrypts announcements addressed to your wallet
* Does not reveal your private key or spending capability

## Viewing Received Transfers

After scanning, you'll see a list of incoming transfers grouped by timestamp:

<figure><img src="https://4045326033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPzVlZxykzlnrD14epWVc%2Fuploads%2Fgit-blob-74162a428feadd278636816b8ece63ac9519d50d%2Fannouncement-list.png?alt=media" alt="Announcement List" width="560"><figcaption><p>Announcement List</p></figcaption></figure>

Click the **+** button on an announcement to expand its details.

## Announcement Details

Each announcement goes through the following status flow:

| Status       | Meaning                                                |
| ------------ | ------------------------------------------------------ |
| **PENDING**  | Transfer detected but not yet confirmed for withdrawal |
| **READY**    | Transfer confirmed and available for withdrawal        |
| **REDEEMED** | Funds have already been withdrawn                      |

Click on an announcement to view its details:

<figure><img src="https://4045326033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPzVlZxykzlnrD14epWVc%2Fuploads%2Fgit-blob-70700aea26e13479a3288fba1aad5746770251b3%2Fannouncement-detail.png?alt=media" alt="Announcement Detail" width="480"><figcaption><p>Announcement Detail (PENDING)</p></figcaption></figure>

The detail view shows:

* **Status**: Current status of the transfer (PENDING / READY / REDEEMED)
* **Destination chain**: The chain where funds can be withdrawn
* **Amount and token**: The amount of zERC20 received
* **Fee row**: The redeem fee deducted by the destination Verifier, shown when the Verifier has a non-zero redeem fee
* **Source**: The originating chain and sender address
* **Burn address**: The burn address used for the transfer

## Withdrawing Funds

Once a transfer reaches **READY** status (shown as "ARRIVED"):

1. Expand the announcement
2. Wait for redeem resources to finish loading — the button shows **"Preparing redeem resources..."** while the zero-knowledge proof artifacts are being downloaded
3. Choose one of the available redeem paths:
   * **Direct redeem** — you submit the on-chain transaction yourself
   * **Gasless Redeem** — the relay node submits the redeem transaction on your behalf
4. If you use the gasless path, review the redeem fee, maximum relay fee, and minimum amount you will receive, then approve the confirmation dialog
5. Click the "REDEEM" button once it becomes active

<figure><img src="https://4045326033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPzVlZxykzlnrD14epWVc%2Fuploads%2Fgit-blob-be6625807099a27fd7af4b57abe2a6e6813f25d1%2Fredeem-detail.png?alt=media" alt="Redeem Detail" width="480"><figcaption><p>Transfer ready for redemption</p></figcaption></figure>

6. Wait for the proof generation and transaction to complete (this creates a zero-knowledge proof that you are entitled to withdraw the funds)
7. Once completed, the status will change to **REDEEMED** and the button will show "Already Redeemed"

<figure><img src="https://4045326033-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPzVlZxykzlnrD14epWVc%2Fuploads%2Fgit-blob-c41e3436dbe7c1dbe6b95097fc46128ceca12c9a%2Fredeem-success.png?alt=media" alt="Redeem Success" width="480"><figcaption><p>Transfer successfully redeemed</p></figcaption></figure>

The funds will be transferred to your connected wallet address.

### When to use Gasless Redeem

Use **Gasless Redeem** when the destination chain wallet does not already have enough native gas to submit the redeem transaction directly.

Notes:

* A protocol redeem fee may be deducted from the newly redeemable amount before funds reach your wallet
* The relay fee is deducted from the redeemed zERC20 amount
* The frontend asks for confirmation before signing the fee authorization
* The gasless path still prepares the same proof resources; it only changes who submits the final on-chain transaction
* If the redeem fee changes while the gasless quote is being used, the frontend asks you to get a new quote before continuing
* If the frontend cannot read the destination Verifier's redeem fee data, it should ask you to retry instead of showing a zero-fee fallback quote

## Troubleshooting

### No Announcements Found

If scanning shows no results:

* Ensure you're connected with the correct wallet
* Wait for the transfer to be confirmed on-chain (may take a few minutes)
* Check that the sender used the correct recipient address

### REDEEM Button Stays Disabled

If the REDEEM button remains disabled even though the transfer shows READY / ARRIVED:

* **"Preparing redeem resources..."** — The proof artifacts are still downloading. Wait for the download to complete.
* **"Failed to load redeem resources..."** — The artifact download failed. Use the reload button on the announcement detail to retry. This clears the stale cache and re-fetches both the aggregation state and proof artifacts.
* **Relayer fee estimate failed** — The relay node could not provide a fee quote. Retry, or switch off **Gasless Redeem** and redeem directly if you already have native gas.
* **Redeem amount is too small after the redeem fee** — The destination Verifier fee would consume the newly redeemable amount. Wait for more transfers before redeeming this announcement. See [Fees and Rewards](/zerc20/for-users/fees-and-rewards.md#private-transfer-redeem-fee) for details.
* **Redeem fee changed** — The Verifier fee changed after the relay quote was created. Get a fresh quote and try again. See [Fees and Rewards](/zerc20/for-users/fees-and-rewards.md#private-transfer-redeem-fee) for details.

> **Tip:** If a reload doesn't help, try refreshing the browser page. This resets all in-memory caches.

## Next Steps

* [Private Transfer](/zerc20/for-users/getting-started/private-transfer.md) - Learn how to send private transfers
* [Getting Started](/zerc20/for-users/getting-started.md) - Overview of the frontend
* [FAQ](/zerc20/for-users/faq.md) - Common questions and troubleshooting
