Learn the differences between bridged USDC and native USDC, and the best practices for migrating from bridged USDC to native USDC.
This guide explains the differences between bridged USDC and native USDC, and shares the best practices for migrating from bridged USDC to native USDC.
What is bridged USDC?
Bridged USDC is created when USDC is locked in a smart contract on one blockchain (i.e. the origin blockchain) and a “synthetic” or “bridged” form of USDC is minted on another blockchain (i.e. the destination blockchain) by a third-party bridge application. Bridged forms of USDC are not issued by Circle.
In the case of zkSync Mainnet, there exists a bridged form of USDC known as USDC.e, which is USDC that has been bridged from Ethereum. Developers and users are encouraged to migrate to “native” USDC, which is the official form of USDC on zkSync Mainnet issued by Circle, backed 100% by highly liquid cash and cash-equivalent assets and always redeemable 1:1 for US dollars.
Best practices
If you intend to support both bridged USDC and native USDC, the following best practices are recommended for your UI/UX.
Bridged USDC
- Ensure bridged USDC is clearly named as "Bridged USDC" and the token symbol shows as "USDC.e" (i.e. USDC bridged from Ethereum)
- Ensure reference to the bridged USDC token contract points to the correct token address: 0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4
Native USDC
- Ensure native USDC is clearly named as "USDC" and the token symbol shows as "USDC" (Note: USDC has been rebranded from USD Coin, now the official name is simply "USDC")
- Ensure reference to the native USDC token contract points to the correct token address: 0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4
Additional updates
- Make native USDC the default option for deposits, withdrawals, swapping, and bridging mechanisms
- Update Top Tokens page, or similar pages on your app
- Update Analytics page, or similar pages on your app
- Highlight native USDC as Commonly Used Tokens (or similar UX modules) instead of bridged USDC
Frequently asked questions
What’s the difference between bridged USDC and native USDC?
What are the benefits of using native USDC over bridged USDC?
Benefits of native USDC include:
- Fully reserved and always redeemable 1:1 for US dollars
- Supported by Circle Mint and its APIs
- Enables institutional on/off-ramps
How can my users swap from bridged USDC to native USDC on zkSync Mainnet?
Developers can swap from bridged USDC to native USDC through the following methods:
- Create a swapping mechanism or liquidity pool within their app on ZKsync Mainnet to help their users migrate from bridged USDC to native USDC
- Tell their users to conduct these swaps on a DeFi protocol on ZKsync Mainnet. Warning: If USDC is not clearly distinguished between native and bridged, please ensure the contract addresses match the intended swap.
- Protocols with bridged USDC to native USDC swapping mechanisms include SyncSwap, ZeroLend, Koi Finance, and Maverick Protocol.
- Protocols with bridged USDC to native USDC swapping mechanisms include SyncSwap, ZeroLend, Koi Finance, and Maverick Protocol.
- Talk to Matter Labs about possible incentive programs and opportunities to connect with market makers to facilitate a liquidity migration
How can I access native USDC on ZKsync Mainnet?
Developers can access native USDC through the following methods:
- Use a DeFi protocol on ZKsync Mainnet to swap for native USDC. Warning: If USDC is not clearly distinguished between native and bridged, please ensure the contract addresses match the intended swap.
- Protocols with bridged USDC to native USDC swapping mechanisms include SyncSwap, ZeroLend, Koi Finance, and Maverick Protocol.
- Protocols with bridged USDC to native USDC swapping mechanisms include SyncSwap, ZeroLend, Koi Finance, and Maverick Protocol.
- Use a centralized exchanged like Ripio to on-ramp to native USDC on ZKsync Mainnet
- Apply for a Circle Mint account and on-ramp to native USDC
Where can I find USDC brand guidelines?
Brand guidelines may be found here.