# Yield Protocol

Yield Protocol brings collateralized fixed-rate,fixed-term borrowing and lending and interest rate markets to decentralized finance.

This solves a major pain point around today's DeFi lending protocols: predictable interest rates. Existing DeFi protocols offer only variable interest rates. These protocols may experience interest rate volatility that can make it difficult for you to plan for the future, make investment decisions, and properly hedge risk when borrowing and lending.

Yield Protocol allows you to have a "set and forget" experience, instead of constantly rebalancing your assets across DeFi in an effort to minimize your borrow rates or maximize your lending yields. We accomplish that with a new primitive, fixed yield tokens, or fyTokens for short. fyTokens are Ethereum-based tokens (ERC20) that may be redeemed one-for-one for a target asset after a predetermined maturity date.

fyTokens are analogous to zero-coupon bonds.

A zero-coupon bond is a debt security that does not pay interest but instead trades at a deep discount, rendering a profit at maturity, when the bond is redeemed for its full face value

The interest rate is calculated by the difference between the discounted value and the underlying's value at maturity.

## An Example

Note: The first version of Yield Protocol only supports fyDAI, so we will be using that throughout our examples

Suppose you buy 1 fyDai that settles exactly a year from today for 0.95 Dai. Your yield is fixed because you have a fixed amount of invested capital (0.95 Dai) and a known amount of future return (1 Dai, a year from now).

A zero coupon bond's price is calculated by the following formula, where is the price of the bond, is the value of the underlying at maturity, is the interest rate and is the number of years to maturity.

Plugging our values in the formula and solving for gives us our interest rate:

## Next Steps

Now that you know how zero coupon bonds work, dive into the Users section if you want to learn how to use Yield Protocol, or into the Developers if you are a developer looking to integrate with our smart contracts

## Security

Yield Protocol is built on MakerDAO, DeFi's biggest lending platform. Yield does not require any additional trusted intermediaries or governance processes and was built to maximize decentralization, censorship resistance, and security.

### MakerDAO Integration

The protocol is directly affected by Maker governance changes.

The collateralization ratio on Yield vaults as well as the fyDai borrowing and lending rates after maturity, are determined by Maker’s parameters, and can be changed by their governance system.

Additionally, when checking the value of ETH collateral in Yield vaults, Yield uses Maker’s ETH oracle.

Finally, if Maker governance triggers emergency shutdown of the Maker protocol, Yield borrowers and lenders would be affected.

The Yield Protocol aims to handle this case as gracefully as possible, initiating its own shutdown procedure in response to a Maker shutdown.

Below you will find all our deployed smart contracts' addresses.

#### Mainnet

{
"Migrations" : "0xd110Cfe9f35c5fDfB069606842744577577f50e5",
"Vat" : "0x35D1b3F3D7966A1DFe207aa4514C12a259A0492B",
"Dai" : "0x6B175474E89094C44Da98b954EedeAC495271d0F",
"WethJoin" : "0x2F0b23f53734252Bda2277357e97e1517d6B042A",
"DaiJoin" : "0x9759A6Ac90977b93B58547b4A71c78317f391A28",
"End" : "0xaB14d3CE3F733CACB76eC2AbE7d2fcb00c99F3d5",
"Chai" : "0x06AF07097C9Eeb7fD685c692751D5C66dB49c215",
"fyDai20Oct" : "0x92c25C17C0C908E52b16627F353F1004543f8A32",
"fyDai20Dec" : "0xF2C9c61487D796032cdb9d57f770121218AC5F91",
"fyDai21Jun" : "0xe523442a6c083016E2F430ab0780250ef4438536",
"fyDai21Sep" : "0x269A30E0fD5231438017dC0438f818A80dC4464B",
"fyDaiLP20Dec" : "0xF7dB19E0373937A13e4b12287B1C121Dfb2d9BF8",
"fyDaiLP21Jun" : "0x250f8d88173E0D9b692A9742f54e87E01A9FA54E",
"fyDaiLP21Sep" : "0x8EcC94a91b5CF03927f5eb8c60ABbDf48F82b0b3",
"fyDaiLP21Dec" : "0x5591f644B377eD784e558D4BE1bbA78f5a26bdCd",
"fyDaiLP20Oct" : "0x6feb7B2a023C9Bc3ccCdF7c5B5a7b929B9a65E04",
"Treasury" : "0xFa21DE6f225c25b8F13264f1bFF5e1e44a37F96E",
"Controller" : "0xB94199866Fe06B535d019C11247D3f921460b91A",
"Liquidations" : "0x357B7E1Bd44f5e48b988a61eE38Bfe9a76983E33",
"Unwind" : "0x9876BeF59F1d98E5376B5733583bF840490f5558",
"ProxyRegistry" : "0x4678f0a6958e4D2Bc4F1BAF7Bc52E8F3564f3fE4",
"BorrowProxy" : "0xf30B142F50E2b59c4C7ca15eB2bd8427907B7Dca",
"PoolProxy" : "0x07ca8d4db0c7462c03cbcaa61bb2712abc1d5b6d",
"ImportProxy" : "0x419f8A3Eae18ecFFd956cDa0782610a749e567c8",
"RollProxy" : "0x9FF558d66Fa807aF34Fc89daA203B96c8587584e",
"USDCProxy" : "0x4E9f6d99E627FF97C7e315AC35Ca45c38062C778"
}


#### Kovan

{
"Migrations":     "0x27e192eCE7C5CB006Bf4BB1F18387fC9A5a16059",
"Vat":            "0xbA987bDB501d131f766fEe8180Da5d81b34b69d9",
"Weth":           "0xd0A1E359811322d97991E03f863a0C30C2cF029C",
"WethJoin":       "0x775787933e92b709f2a3C70aa87999696e74A9F8",
"Dai":            "0x4F96Fe3b7A6Cf9725f59d353F723c1bDb64CA6Aa",
"DaiJoin":        "0x5AA71a3ae1C0bd6ac27A1f28e1415fFFB6F15B8c",
"End":            "0x24728AcF2E2C403F5d2db4Df6834B8998e56aA5F",
"Chai":           "0x623f148dabd40dd221807c5e98235bc40e54a106",
"Treasury":       "0xcEDb23F6df222E16bBB6070bB4E27A90493e63DB",
"fyDai20Dec31":   "0x6B166d6325586c86B44f01509Fc64e649DCfE7C4",
"fyDai21Mar31":   "0x42AA68930d4430E2416036966983E6c9Fe8Ff2f8",
"fyDai21Jun30":   "0x2b67866649AFcEFC63870E02EdefC318fd8760D3",
"fyDai21Sep30":   "0x02B06417A3e3CB391970C6074AbcF2745a60b880",
"fyDai21Dec31":   "0x6Abb65246346b2A52Faed338cB18880e70A57Cf8",
"Controller":     "0xFCDF6d4de26C53115610D9FBdaFD93CBDb843Ea2",
"Liquidations":   "0x6E254e9130D4593561161DcFD0Ea7969C096AEfA",
"fyDaiLP20Dec31": "0x2b004AF29102Ab5f1ca977a45AF24A26eaa683Ca",
"fyDaiLP21Mar31": "0x08cc239a994A10118CfdeEa9B849C9c674C093d3",
"fyDaiLP21Jun30": "0xe10dEe848fD3Cf7eAC7Da5c59a5060d99Efd93BA",
"fyDaiLP21Sep30": "0x06e9493BfA938a5630b6Eee116eD01A31Ec7dDA7",
"fyDaiLP21Dec31": "0xBa51e4Df86333D53Df3c734D12038722EA9Bf559",
"PoolProxy":      "0x4A38D30F0d451213C51a332773858712cA1dD6E6",
"ImportProxy":    "0xe713DA979FaE7470b5216Dca0b287a02BBfe8184",
"ImportCdpProxy": "0xA5286e1Cb19Bd62a3369f641C8c3F1e2dEa1089d",
"RollProxy":      "0xdB2ed810347f0BE4b88c64787fcA8325C57C0d76",
}


These contracts have special permissions over each other. You may review these permissions by running this script.

### Audit

Yield Protocol was audited by Trail of Bits. You may find the report here.

### Vulnerability Disclosure

Responsible security disclosures should be sent to security@yield.is. Thank you for keeping Yield safe! We will get back to you as soon as we can.