Using Frontend
This guide walks you through using the zERC20 web application.
Step 1: Access the Frontend
Visit the zERC20 Frontend.
Testing? Use the Testnet Frontend for testing with test tokens.

Step 2: Connect Your Wallet
Click "Connect Wallet" in the top right corner
Select your wallet provider (MetaMask, WalletConnect, etc.)
Approve the connection request in your wallet
Once connected, your wallet address and token balances will be displayed in the dashboard.
Step 3: Get zERC20 Tokens
zERC20 tokens are ERC-20 wrapper tokens backed 1:1 by underlying assets. These tokens enable private transfers while maintaining full compatibility with the ERC-20 standard.
You can select the token type and chain from the dropdowns at the top of the page:


Option A: Wrap Tokens
Wrapping converts your standard tokens (USDC, ETH, etc.) into zERC20 tokens at a 1:1 ratio.
Click the "Wrap / Unwrap" button
Ensure the "WRAP" tab is selected
Select the token you want to wrap (USDC, ETH, BNB, etc.)
Enter the amount to wrap

Click "Wrap USDC to zUSDC" (or the appropriate token)
Confirm the transaction in your wallet
Receive an equivalent amount of zERC20 tokens
Wrap Rewards: If the chain has low liquidity, you may receive bonus tokens as a reward for adding liquidity. See Fees and Rewards for details.
After wrapping, your balance will be updated:

Option B: Buy on a DEX
Purchase zERC20 directly on decentralized exchanges like Uniswap.
Check Contract Addresses for token addresses on each chain.
Unwrapping zERC20 Tokens
To convert zERC20 tokens back to the underlying asset:
Click the "Wrap / Unwrap" button
Select the "UNWRAP" tab
Enter the amount to unwrap
Set your preferred slippage tolerance (0.5%, 3%, 10%, or Custom)
Select the destination chain from the "UNWRAP ON" dropdown
Same Chain Unwrap:
Select your current chain (shown as "Chain (Current)") to receive the underlying tokens on the same chain.

Cross-Chain Unwrap:
Select a different chain from the "UNWRAP ON" dropdown to access liquidity on another chain. The process works as follows:
Your zERC20 tokens are bridged from your current chain (Chain A) to the destination chain (Chain B) via LayerZero
On Chain B, the tokens are unwrapped to the underlying asset (e.g., USDC)
The underlying tokens are bridged back to your current chain (Chain A)
For example, if you're on Arbitrum and select "Base" as the unwrap destination, the flow is: Arbitrum → Base → Arbitrum. You receive the underlying tokens on Arbitrum, but the unwrap happens on Base.

The fee breakdown (unwrap fee, bridge fee, LayerZero fee) is shown before confirming the transaction.
Fee Optimization: If unwrap fees are high on your current chain due to low liquidity, cross-chain unwrap lets you access liquidity from another chain with lower fees. The frontend shows fee comparisons so you can choose the best option. See Fees and Rewards for details.
Step 4: Make a Private Transfer
See Private Transfer Guide for detailed instructions on sending.
See Scan Receives Guide for instructions on receiving transfers.
Important Notes
Crosschain Capability: You can send on one chain and withdraw on another using LayerZero messaging
Processing Time: Private transfers typically take 30 minutes to 1 hour on mainnet
Testnet Limitations: On testnets, transfers may take longer due to LayerZero instability
Next Steps
Private Transfer (Frontend) — Send and receive privately
FAQ — Common questions and troubleshooting
Last updated