A dapp for cross-chain atomic swaps between EVM-compatible chains and the Stellar network.
This project enables trustless, atomic swaps of assets between EVM chains (like Ethereum and Base) and the Stellar network. It uses Hashed Time-Lock Contracts (HTLCs) and a resolver service to ensure that a swap either completes on both ends or not at all, eliminating counterparty risk. The frontend provides a simple interface for users to initiate swaps, and the backend services handle the complex orchestration across the two different blockchains.
Full-stack mono-repo: TypeScript, Solidity & Rust. Smart contracts: -EVM: HTLC Escrow + Factory written in Solidity, tested with Hardhat. -Stellar: matching timelock contract in Soroban (Rust → WASM).
Backend services (Node + TypeScript): -“Resolver” watches both chains with ethers.js and @stellar-sdk, releases the secret on the slower side, and retries automatically. -“Extended Relayer” plugs into 1inch Fusion’s off-chain auction feed, parses Dutch-auction payloads, and routes fills to our escrows.
Frontend (Next.js + React + Tailwind): -Connects EVM wallet (ethers.js) and Freighter (Stellar) wallets, shows real-time swap progress with WebSockets.
Dev / infra: -Hardhat node + Stellar Quickstart spun up in Docker Compose for one-command local testing; Vitest & Foundry for unit/integration tests; GitHub Actions for CI.
Worth noting: Patched 1inch Fusion SDK to sign orders that embed our escrow address in the salt field. Sneakily pass the hash-preimage from EVM to Stellar by encoding it in the Stellar tx memo—works, no extra bridge needed.