Swap guide
How to swap USDC from Base to Solana
USDC on Base and USDC on Solana are separate tokens on separate networks. Here is how to move between them with a cross-chain swap, what it costs, and the mistakes to avoid.
Base is an Ethereum layer-2 network, and Solana is a separate blockchain. USDC exists on both, but the USDC on Base and the USDC on Solana are different tokens that live on different networks, so you cannot send one straight to an address on the other. Moving value between them takes a cross-chain swap.
With HorseRouter you send USDC on Base to a deposit address and receive USDC on Solana at the address you give. HorseRouter compares partner exchanges and shows an estimated quote. A partner executes and settles the swap. There is no account and no wallet connection, and we never hold your funds.
Before you start
- USDC on the Base network in a wallet or exchange account. Check that your wallet shows the Base network, not Ethereum mainnet, before you send.
- A small amount of ETH on Base to pay the network fee. Fees on Base are usually much lower than on Ethereum mainnet, but you still need some ETH on Base.
- USDC, not the older bridged USDbC. They are different tokens on Base.
- A Solana address to receive the USDC: a long string of letters and numbers, typically 32 to 44 characters, with no 0x prefix.
- A Solana wallet that supports USDC, so you can see the funds when they arrive.
Step by step: swap USDC (Base) to USDC (Solana)
- Open the USDC Base to Solana swap page. The pair is already selected: USDC on Base as the asset you send, USDC on Solana as the asset you receive.
- Enter the amount. HorseRouter compares partner quotes and shows the estimated amount you would receive, the rate, the fee and the estimated time.
- Paste your Solana receiving address and check it carefully. It must be a Solana address, not a 0x address.
- Start the swap to get a deposit address from a partner.
- From your wallet or exchange, send exactly the stated amount of USDC on the Base network to that deposit address.
- Track the swap on the status page. Once the partner has executed and settled it, the USDC arrives at your Solana address.
Fees and timing
You pay a network fee on Base when you send the USDC, in ETH on Base. It goes to the network, not to HorseRouter. The quote shows the swap fee before you commit. The amount you receive is an estimate and can move within your slippage setting before the swap settles.
Timing depends on how quickly your Base transfer confirms and how quickly the partner processes the swap. Treat the time shown as an estimate, not a promise.
Common mistakes to avoid
- Sending from the wrong network. Many wallets show USDC on several networks. If you send USDC on Ethereum mainnet or another network instead of Base, it will not match the swap.
- Sending USDbC instead of USDC. They are different tokens; the deposit must be the asset you selected.
- Pasting an Ethereum or Base (0x) address as the receiving address. You need a Solana address.
- Sending after the quote deadline, or a different amount. Send exactly what the swap shows.
- Assuming a transfer can be undone. Blockchain transfers are irreversible, so check every address and network before you send.
Frequently asked questions
Is USDC on Base the same as USDC on Solana?
They represent the same dollar-pegged asset, but they are separate tokens on separate blockchains. You cannot send one directly to the other network, which is why a cross-chain swap is needed.
Do I need ETH on Base to send the USDC?
Yes, a small amount in the sending wallet, to pay the Base network fee.
Do I need to connect my wallet to HorseRouter?
No. You choose the assets, enter an amount, paste a receiving address and send funds to the deposit address a partner provides. No account, no wallet connection.
Will I receive exactly the quoted amount?
Not necessarily. The quote is an estimate, and the final amount can move within your slippage setting.
Does HorseRouter hold my USDC?
No. HorseRouter is non-custodial and never holds, receives or transmits your funds. A partner executes and settles each swap.