project screenshot 1
project screenshot 2
project screenshot 3

Yield Swap Protocol

Yield Swap is a Decentralized Exchange that allows users to swap variable and fixed yields.

Yield Swap Protocol

Created At

HackMoney 2021

Project Description

With Yield Swap we're building a DEX for yield. It's like a Uniswap, but instead of swapping assets, users can swap floating and fixed yields. For example, users can trade on falling or rising yields.

Yield Swap brings so called interest rate swaps from TradFi into the DeFi world and uses an automated market maker to facilitate trading. Yield Swap is more capital efficient than comparable solutions, because it uses a collateral-based design to settle payments, hereby enabling users to also gain exposure to synthetic yields (i.e. without having to have access to the actual interest bearing instrument).

Yield Swap fills an important gap in DeFi by providing a market to transfer yield risks, something that didn't exist in DeFi before. This enables several use cases, such as "yield shorting" or general speculation as well as hedging and also easy integration with 3rd party lending protocols to offer fixed yield products.

Users can also provide funds to Yield Swap's automated market maker and receive a share of the generated profits.

How it's Made

Yield Swap is built in Solidity, deployed on Mumbai and Kovan Testnet.

The Yield Swap Protocol currently consists of 3 components:

------- Automated Market Maker -------

We've implemented an automated market maker (AMM), that dynamically adjusts the fixed rate offered in payer and receiver swaps based on a preconfigured sigmoid curve. The AMM is currently restricted to only one type of underlying yield/rate (i.e. aUSDC) and tenor (10 days). However, the plan is to scale this up and support additional underlyings and tenors in the future. The individual swaps are currently not transferrable, but the plan is to structure these as ERC-721 in the future.

------- RateOracle -------

We've implemented a rate oracle contract for the Aave v2 lending pool, from where we retrieve the normalized income information for aUSDC etc. The oracle currently supports one rate per underlying per day. The effectively realized yield is then determined by comparing the normalized income between any given two timepoints.

------- Liquidity Pool -------

We've implemented a liquidity pool, that allows liquidity stakers to provide funds to the AMM and in return receive a share of the overall generated profits as an ERC20. The liquidity pool is currently structured as a kind of funding vehicle, with a minimum fundraising period and minimum target funding amount. Once the fundraising period is over and enough funds have been provided, the liquidity pool then forwards the funds to the AMM, where they can be used for a predefined liquidity provisioning period.

------- User interface -------

We've also implemented a basic React-based user interface, that uses Metamask to confirm and send transactions.

Contract addresses are:

------- Kovan -------

AutomatedMarketMaker*: 0xF9d5A9F23a3D7c095e46cD73BCa5E177CE2334b7

AaveRateOracle*: 0x3c19e6a4f3663eca2b7d64d3968207b6e8bda7b0

LiquidityPool*: 0xc6cb1f6340e8b166ada7a136f379c509b407b57f

------- Mumbai -------

AutomatedMarketMaker*: 0xc5de696C3801BaFA362C7456930E53B0a0eB9Bb5

AaveRateOracle*: 0x4b848789f6994d24cAEfaB187fD6c8bE3E0B97cf

LiquidityPool*: 0xF6C2037e97cd8d49Ec3e78306F257EeDA21901fc

background image mobile

Join the mailing list

Get the latest news and updates