Atomic swaps between Ethereum and Starknet via Dutch auctions and HTLC-based trustless escrows.
MultiZap is a fully-functional prototype for cross-chain Dutch-auction-based atomic swaps between EVM (Ethereum Sepolia) and Starknet (Sepolia).
It extends the 1inch Fusion+ architecture by enabling trustless token swaps between L1 and L2 chains, powered by off-chain agents and HTLC smart contracts. Users can swap tokens (like USDC) across Ethereum and Starknet without relying on centralized bridges or custodians.
At the heart of the system is a Dutch auction mechanism that allows resolvers (off-chain liquidity providers) to bid competitively on user-submitted swap orders. The winning resolver deposits liquidity on both chains into time-locked, hash-locked escrows. This ensures a trust-minimized atomic swap, where either both sides are executed or none are.
🔗 Smart Contracts on both Ethereum and Starknet:
🛰 Relayer Service (Node.js backend):
🛠 Resolver Bot:
💻 Frontend DApp:
Alice wants to swap 100 USDC from Ethereum to Starknet. She places a swap order using the frontend.
The relayer runs a Dutch auction for resolvers to compete in fulfilling her swap.
The winning resolver deposits 100 USDC on Starknet and locks 100 USDC on Ethereum in an HTLC.
Alice claims her funds on Starknet by revealing a secret, which the resolver then uses to claim their funds on Ethereum.
MultiZap is built using a modular architecture with on-chain HTLC escrows and off-chain coordination for Dutch auctions and swap execution.
HTLCEscrowFactory
, HTLCEscrow
)ethers.js
and starknet.js
for dual-chain wallet support