This recipe gives a user one permanent address that auto-routes any USDC sent to it to a destination on a different chain. The sender makes a normal ERC-20 transfer — no bridge UI, no signature, no contract call.Documentation Index
Fetch the complete documentation index at: https://eco.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
When to use
- Exchanges adding Solana withdrawal support
- Wallets giving users a “deposit anywhere, land on Solana” address
- Any flow where the funder is not the user (sweeping, payroll, partner deposits)
1. Generate a deposit address
evmDepositAddress is deterministic — same inputs always return the same address. You can show it to the user before any contract is deployed.
2. Send USDC to the address
The user (or any third party) makes a vanilla ERC-20transfer() to evmDepositAddress on Base:
3. The address auto-routes
On first deposit, the contract deploys (the deposit address pays gas, not the sender). The contract callscreateIntent(), which publishes a Routes intent. Solvers compete to fulfill on Solana.
4. Confirm delivery
Poll the deposit address record to checkisDeployed and lastCheckedBalance:
Read next
- Solana deposit addresses — the underlying product
- Gasless USDC into Gateway — same idea, gasless funding into Circle Gateway
