Learn the differences between bridged USDC and native USDC, and the best practices for migrating from bridged USDC to native USDC on Starknet.

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 Starknet, 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 Starknet; native USDC is backed 100% by highly liquid cash and cash-equivalent assets and always redeemable 1:1 for U.S. 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 “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: 0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8
Native USDC
- Ensure native USDC is clearly named “USDC” and the token symbol shows as “USDC”
- Ensure reference to the native USDC token contract points to the correct token address: 0x033068F6539f8e6e6b131e6B2B814e6c34A5224bC66947c47DaB9dFeE93b35fb
Additional updates
- Make native USDC the default option for deposits, withdrawals, swapping, and bridging mechanisms
- Consider using Cross-Chain Transfer Protocol (CCTP) to enable your users to move USDC securely between blockchains
- 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?
Native USDC:
- Issued by Circle, a regulated1 fintech
- Backed 100% by highly liquid cash and cash-equivalent assets and always redeemable 1:1 for US dollars
- Official form of USDC on a given blockchain
- Interoperable with multiple supported blockchain networks via CCTP
Bridged USDC:
- Created by a third party
- Backed by USDC on another blockchain locked in a smart contract
- Many disparate forms can result in a fragmented user experience
- Not directly compatible with CCTP
Learn more here.
What are the benefits of using native USDC over bridged USDC?
Benefits of native USDC:
- Fully reserved and always redeemable 1:1 for U.S. dollars
- Supported by Circle Mint and its APIs
- Enables institutional on/off-ramps
- Support by CCTP to eliminate bridge withdrawal delays
How can my users swap from bridged USDC to native USDC on Starknet?
Developers looking to swap bridged USDC to native USDC can:
- Create a swapping mechanism or liquidity pool within their app on Starknet to help their users migrate from bridged USDC to native USDC
- Tell their users to conduct these swaps on a DeFi protocol on Starknet such as StarkGate
- Talk to the Starknet Foundation about possible programs and opportunities to connect with market makers to facilitate a liquidity migration
How can I, as a developer, access native USDC on Starknet?
Developers looking to access native USDC can:
- Use a DeFi protocol on Starknet such as StarkGate to swap for native USDC
- Apply for a Circle Mint account and if approved, on-ramp to native USDC
- Use a CCTP-enabled bridge app to transfer native USDC from a supported blockchain to Starknet



