Introduction
This guide shows how to perform a cross-chain swap from Solana to any EVM-compatible chain (Ethereum, Arbitrum, Base, BNB Chain, Polygon, Optimism, etc.) using 1inch Fusion+. Unlike the EVM-to-EVM and EVM-to-Solana flows, the source side here requires an on-chain Solana transaction: you build and sign a SvmSrcEscrowFactory instruction with @solana/web3.js / @coral-xyz/anchor to lock tokens in escrow on Solana, then announce the order to the relayer with sdk.announceOrder(). The destination EVM chain is filled by a resolver, and you reveal the secret hashes back to the relayer to finalize the swap.
Before You Start
- You must have a valid 1inch API Key. You can get one from the 1inch Business.
- Your wallet must have at least $5 worth of USDT on Solana (or the token you're swapping)
- Your wallet must have sufficient SOL for transaction fees
- You need both a Solana wallet (source) and an EVM wallet address (destination)
Key Differences from EVM-to-EVM
- Uses
SolanaAddressfor the source token andEvmAddressfor the destination token - Order is created with
quote.createSolanaOrder()and announced withsdk.announceOrder() - Requires building and submitting a Solana transaction via
SvmSrcEscrowFactoryto lock tokens in escrow - Uses
@solana/web3.jsand@coral-xyz/anchorfor Solana transaction handling
Integration Pattern
- Initialize SDK — Create an SDK instance with your API key
- Fetch Quote — Get cross-chain pricing from Solana to the destination EVM chain
- Generate Secrets — Create cryptographic secrets for escrow locking
- Create & Announce Order — Build the Solana order and announce it to the relayer
- Submit Solana Transaction — Deploy the source escrow and lock tokens on-chain
- Monitor & Submit Secrets — Poll for escrow deployment, then reveal secrets to finalize
Interactive Code Example
The EVM-to-EVM example demonstrates the core cross-chain flow. The Solana variant follows the same secret submission pattern but uses Solana-specific order creation and transaction handling: