Cross-chain Fusion+ swap from Ethereum ↔ Starknet with hashlock, timelock, and native token support.
Fusion+ Starknet Bridge is a novel extension to the 1inch Fusion+ protocol that enables trustless, cross-chain token swaps between Ethereum and Starknet using a hashlock-timelock-based escrow design.
The system preserves Fusion’s key principles — no slippage, no MEV, and decentralized order settlement — while extending functionality to non-EVM environments like Starknet. Swaps are bidirectional: users can start from Ethereum or Starknet. The core mechanism uses:
A hashlock to ensure the taker reveals a secret on both chains,
A timelock to allow the maker to refund if the swap is not fulfilled in time,
An escrow contract on both Ethereum and Starknet that locks the assets until the preimage is revealed.
To ensure compatibility with 1inch's Fusion+ resolver logic, the Ethereum side fills a Fusion order using fillOrderArgs, where the arguments include the deployed escrow contract address.
During the swap, a secret is revealed on either chain, triggering the withdrawal from the respective escrow.
This system is built using a modular architecture, with the following technical stack:
✅ Ethereum (EVM) Side Solidity smart contracts extending the 1inch Limit Order Protocol (LOP).
A Source Escrow deployed using CREATE2 to derive the address from order parameters and timelock.
fillOrderArgs() includes the escrow address and enables the Fusion resolver to atomically transfer tokens to the escrow contract.
The secret preimage can be revealed by the taker on Ethereum to unlock the swap.
Deployed and tested on Ethereum Sepolia testnet.
✅ Starknet Side Cairo 1.0 smart contracts for Target Escrow functionality.
Implements hashlock (via Pedersen hashing) and timelock logic compatible with Ethereum timestamps.
The taker reveals the same preimage on Starknet to unlock funds.
Uses Starknet messaging bridge for potential fallback and trustless preimage transmission (optional for future extensions).
Deployed and tested on Starknet Sepolia (Goerli Alpha testnet).
✅ Core Components Hashlock/Timelock Logic: Ensures conditional access to escrowed funds.
Immutables Struct: Contains all metadata used to deterministically compute escrow addresses using CREATE2.
Proxy Factory + Proxy Bytecode Hash: Used to precompute and deploy escrows without redundant contract creation.
1inch Resolver Arguments Encoding: Custom calldata with taker-traits bits and encoded escrow address for the fillOrderArgs call.