Search projects, hackathons, sponsors and tech

    ← All projects

    MultiZap

    Atomic swaps between Ethereum and Starknet via Dutch auctions and HTLC-based trustless escrows.

    Demo

    About

    **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+](https://1inch.io/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. --- ### 🧩 System Components - 🔗 **Smart Contracts** on both Ethereum and Starknet: - HTLC escrow contracts - Escrow factory contracts for deterministic deployments - 🛰 **Relayer Service** (Node.js backend): - Manages order book - Runs Dutch auctions - Exposes APIs for frontend and resolvers - 🛠 **Resolver Bot**: - Computes bids for Dutch auctions - Deploys escrows on both chains - Coordinates settlement and secret revelation - 💻 **Frontend DApp**: - Allows users to create cross-chain swap orders - Tracks order and escrow status - Interacts with relayer and wallet providers (Metamask, ArgentX) --- ### 🔐 Why It Matters - ✅ **No Bridges**: Swaps are native and require no centralized bridge. - 🔒 **Fully Trustless**: Uses hash-locked and time-locked escrows to ensure atomicity. - 🔧 **Composable**: Resolver and relayer logic are modular and extendable to any token or chain. - ⚙️ **1inch Fusion+ Upgrade**: Makes existing L1 DEX infrastructure usable for Starknet ↔ Ethereum flows. --- ### 📈 Example Use Case > 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.

    How it's made

    **MultiZap** is built using a modular architecture with on-chain HTLC escrows and off-chain coordination for Dutch auctions and swap execution. ### Technologies Used - **Solidity + Foundry** for EVM smart contracts (`HTLCEscrowFactory`, `HTLCEscrow`) - **Cairo 1.0 + Starkli** for Starknet contracts with equivalent escrow logic - **React + TypeScript** frontend with `ethers.js` and `starknet.js` for dual-chain wallet support - **Node.js (Express)** backend as the **Relayer**, which: - Manages swap orders and Dutch auctions - Exposes REST APIs to frontend and resolvers - **Resolver Bot** written in Node.js: - Polls relayer for orders - Bids in auctions - Deploys escrows and handles claims on both chains ### Integrations & Benefits - **1inch Fusion+ model** extended cross-chain with HTLCs and off-chain bidding - **Keccak-based HTLC coordination** between Solidity and Cairo (no bridges used) - **Factory pattern** for deterministic escrow address prediction ### Notable Hacks - Dutch auction logic is entirely off-chain for gas efficiency - Secrets are revealed by users and reused by resolvers to complete swaps atomically - Fully trustless design with no dependency on centralized relayers or bridges