Cross-chain · Base → Avalanche C-Chain

Swap ETH from Base to USDC on Avalanche C-Chain

Swap ETH from Base to USDC on Avalanche C-Chain. Native ETH leaves Base, and Circle USDC arrives on the C-Chain.

Sell the Base gas coin, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, chain 8453. Basescan shows the account. Leave a fee remainder. There is no approval on native ETH. Receive Circle USDC at 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E on chain 43114. Snowtrace is the explorer. That is native USDC, not the old USDC.e at 0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664, and not Tether at 0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7. The C-Chain is not the X-Chain. You will need AVAX to move the USDC.

Diagram for Swap ETH from Base to USDC on Avalanche C-Chain
ETH leaves Base. USDC is what can arrive on Avalanche C-Chain.

Native USDC, not USDC.e

Some C-Chain pools still point at 0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664. This quote credits 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E. Both have been called USDC. A deposit into the old contract will not see the new balance. Check Snowtrace before you tell a counterparty you paid them in Circle dollars. Six decimals will not distinguish the two.

You are spending Base gas

ETH pays the send and is the asset sold. A max click can fail. WETH at 0x4200000000000000000000000000000000000006 is invisible here. Unwrap or change routes. You do not arrive holding ETH, and you do not arrive holding AVAX. You arrive holding a dollar that cannot pay C-Chain fees.

AVAX is mandatory afterward

Chain 43114 uses AVAX for gas. Base ETH does not convert into it. The placeholder 0xEeee means AVAX only on the C-Chain. If that balance is zero, Snowtrace can show USDC and the wallet can refuse to send it. Trade on Avalanche is the C-Chain, not the X-Chain.

Wrong dollar, wrong chain

Wrong if you need Tether. Wrong if a pool still wants USDC.e. Wrong if you need AVAX itself. Wrong if the USDC was supposed to stay on Base. Wrong if you send to an X-Chain address and wait. The C-Chain account is the only place this USDC can land. No bridge time is promised. Do not sign a minimum you dislike.

Legal

Risk disclosure

XAUConnect is a non-custodial swap aggregator. Digital assets are volatile and may lose value rapidly. Content on this page is educational and not investment advice. Verify every contract address on the official block explorer before approving a transaction.

Frequently asked questions

What is the best way to swap ETH from Base to USDC on Avalanche C-Chain?

Sell the Base gas coin, 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, chain 8453. Basescan shows the account.

Is this the old Avalanche USDC.e?

No. USDC.e is 0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664. This route delivers Circle's native USDC at 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E on the C-Chain, chain 43114. Check Snowtrace. If the app still displays the older address, this credit will not match it. Compare the deposit address with the native Circle contract before you sign.

Do I approve the ETH I sell?

No. Native ETH on Base is the gas coin, marked 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, and it is sent rather than approved. Leave enough on chain 8453 for the fee. If the wallet asks you to approve WETH, you selected the wrapper, which is a different route. This page sells the gas coin only.

What do I need on the C-Chain besides USDC?

AVAX, the native coin, to pay fees. USDC cannot pay them. The ETH you sold lived on Base and does not become AVAX. The X-Chain will not show this ERC-20. Stay on chain 43114 and fund AVAX before you move the Circle balance. Without it, Snowtrace can show USDC that the wallet will not send.

Live execution

Trade on XAUConnect

Open the swap page with this cross-chain route pre-selected, then connect your wallet on the source chain to quote and execute. You keep the keys.

Continue exploring

Related markets, guides & networks

Next pages on this subject. Read them before you trade.

Build programmatically

Swap via API for bots and AI agents: quotes, builds, and cross-chain routes.

Developer quickstart