Overview
UZH Swap is a rather old project that I built together with Jonas Brunner and Bulin Shaqiri for the Blockchain Programming seminar at the University of Zurich in the fall semester of 2021. The project combines a fork of the Uniswap interface with a companion contract repository that deploys the required Uniswap V3 infrastructure, faucet, and custom test tokens for the UZH Ethereum chain.
Interface
The front end is based on the official Uniswap interface and adapted for the UZH Swap deployment. It uses React and TypeScript, wallet connectors, generated contract bindings, token lists, and the Uniswap SDKs to provide the familiar swap and liquidity-management flows in a seminar-specific environment. The interface was deployed on Netlify for easy access during the project.


Contracts and deployment
The contract repository uses Hardhat, Solidity, TypeScript, Ethers, TypeChain, and the Uniswap V3 deployment tooling. Deployment scripts cover the core exchange contracts such as WETH9, factory, router, position manager, multicall, and quoter, and can target either Ganache or the UZH Ethereum chain.
In addition to the Uniswap infrastructure, the project includes a faucet contract and a set of custom ERC-20 tokens. The faucet setup lets users claim seminar tokens in the front end and try swapping or liquidity flows without relying on external assets.

Repositories
- uzhswap-interface - React/TypeScript interface fork deployed on Netlify
- uzhswap-contracts - Hardhat deployment scripts, Solidity contracts, faucet, and token setup