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:
