Eh, it's a bit of a mess as of right now, so whether to use USDC or USDC.e depends on your objective.
Current USDC.e is the original bridged version on Optimism that used to be called just USDC.
Current USDC is the newer contract deployed much later by Circle (the company behind USDC). After the deployment, Circle asked the explorer and other DApps & infrastructure providers to rename USDC to USDC.e and is working (not sure if successfully though) on moving all liquidity from USDC.e to USDC.
Circle itself only accepts the current USDC and does not accept USDC.e.
But then if you go to Uniswap on Optimism, the default USDC contract version that it shows to you is the current USDC.e (the one that Circle doesn't accept). And if you paste in the current USDC contract address in Uniswap
0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85, it'll warn you this may not be a token recognized by exchanges etc.
On top of that there's also a liquidity pool on Uniswap for USDC<>USDC.e.
- Circle wants everyone to use USDC
- Mainstream DApps like Uniswap are lagging and push the default user for USDC.e
- A sophisticated user will find their way to get whatever version necessary eg by swapping USDC<>USDC.e on Uniswap on OP