With Cross-Chain Swap, you can perform a gasless cross-chain swap from a chain's native token (like ETH on Base) to an asset on another chain.
For cross-chain orders involving a native token, a dedicated escrow contract is deployed on the source chain. This escrow serves as a temporary vault where the following sequence takes place:
Deposit: the user deposits the source chain's native coin into the escrow. Inside, the token is automatically wrapped into its canonical ERC-20 form (e.g., ETH → WETH).
Cross-chain execution: when a resolver fills the order, it initiates a cross-chain message that pulls the wrapped asset from the source escrow, performs the swap via Cross-Chain Swap infrastructure, bridges the taker asset to the destination chain, and delivers it directly to the user's address on that chain.
Refund: if no resolver fills the order within the allowed timeframe, the escrow can be triggered to return the user's original native token on the source chain.
This design ensures that users interact only with their native assets, while all wrapping, bridging, escrow management, and swap execution are seamlessly handled by Cross-Chain Swap infrastructure and its resolvers.
In the section below, you'll find an interactive example of how to swap a native coin cross-chain.
Explore the complete native token cross-chain swap implementation:
| Step | ERC-20 | Native Token |
|---|---|---|
| Approval | Required (Aggregation Router) | Not needed |
| Order creation | sdk.placeOrder() |
sdk.createOrder() + sdk.submitNativeOrder() |
| Escrow deployment | Handled by resolver | Must deploy via NativeOrdersFactory |
| On-chain transaction | Not needed | Required to fund escrow |
| Secret submission | Same for both | Same for both |