/yearn-finance-tokenlist

Yearn Finance Ecosystem Tokenlist

Primary LanguageJavaScript

Yearn Finance Ecosystem Tokenlist

Twitter Follow Discord Telegram Discourse users



Resources

Overview

This is being expanded to include the contract registry

Local Testing

The tokens.json is validated against Uniswap's tokenlist schema.

To test locally,

# Install dependencies
npm install

# Run test script
npm start

If there is an error, the error will be output to the terminal.

Deployed Contracts Registry

Below is a list of relevant smart contracts and Github repositories for using and interacting with the Yearn product suite.

Token Contracts

YFI

The Yearn ecosystem is controlled by YFI token holders who submit and vote on proposals that govern the ecosystem.

Token Address
YFI 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e

v2 Yield Tokens

The v2 yield tokens can be used in one lender at a time. Currently being used on Curve’s Y Pool, Yearn’s yBTC pool and sUSD pool.

Token Address Github
yDAIv2 0x16de59092dAE5CcF4A1E6439D611fd0653f0Bd01 YDAIv2.sol
yUSDCv2 0xd6aD7a6750A7593E092a9B218d66C0A814a3436e YUSDCv2.sol
yUSDTv2 0x83f798e925BcD4017Eb265844FDDAbb448f1707D YUSDTv2.sol
ysUSDv2 0xF61718057901F84C4eEC4339EF8f0D86D2B45600 YSUSDv2.sol
yTUSDv2 0x73a052500105205d34daf004eab301916da8190f YTUSDv2.sol
yWBTCv2 0x04Aa51bbcB46541455cCF1B8bef2ebc5d3787EC9 YWBTCv2.sol

v3 Yield Tokens

Vaults follow unique strategies that are designed to maximize yield of the deposited asset and minimize risk. The vaults are maintained by a Controller which oversees the strategy execution. Strategies' generated profits are used to buy respective vault underlying asset.

The Controller contract can be found here and the source code can be found here.

Vaults

Vault Address GitHub
WETH 0xe1237aa7f535b0cc33fd973d66cbf830354d16c7 yWETH.sol
YFI 0xba2e7fed597fd0e3e70f5130bcdbbfe06bb94fe1 yVault.sol
curve.fi/3pool LP 0x9cA85572E6A3EbF24dEDd195623F188735A5179f yVault.sol
curve.fi/y LP 0x5dbcf33d8c2e976c6b560249878e6f1491bca25c yVault.sol
curve.fi/busd LP 0x2994529c0652d127b7842094103715ec5299bbed yVault.sol
curve.fi/sbtc LP 0x7ff566e1d69deff32a7b244ae7276b9f90e9d0f6 yVault.sol
DAI 0xacd43e627e64355f1861cec6d3a6688b31a6f952 yVault.sol
TUSD 0x37d19d1c4e1fa9dc47bd1ea12f742a0887eda74a yVault.sol
USDC 0x597ad1e0c13bfe8025993d9e79c69e1c0233522e yVault.sol
USDT 0x2f08119c6f07c006695e079aafc638b8789faf18 yVault.sol
GUSD 0xec0d8d3ed5477106c6d4ea27d90a60e594693c90 yVault.sol
curve.fi/compound LP 0x629c759D1E83eFbF63d84eb3868B564d9521C129 yVault.sol
curve.fi/mUSD LP 0x1AEf73d49Dedc4b1778d0706583995958Dc862e6 yVault.sol

Strategies

Strategy Address GitHub Vault
StrategyCurve3CrvVoterProxy 0xC59601F0CC49baa266891b7fc63d2D5FE097A79D StrategyCurve3CrvVoterProxy.sol curve.fi/3pool LP
StrategyMKRVaultDAIDelegate 0x932fc4fd0eee66f22f1e23fba74d7058391c0b15 StrategyMKRVaultDAIDelegate.sol WETH
StrategyYFIGovernance 0x395f93350d5102b6139abfc84a7d6ee70488797c StrategyYFIGovernance.sol YFI
StrategyCurveYCRVVoter 0xc999fb87aca383a63d804a575396f65a55aa5ac8 StrategyCurveYCRVVoter.sol curve.fi/y LP
StrategyCurveYBUSD 0xb15ee8e74dac2d77f9d1080b32b0f3562954aee9 StrategyCurveYBUSD.sol curve.fi/busd LP
StrategyCurveSBTC 0x4feeaeced575239b46d70b50e13532ecb62e4ea8 StrategyCurveSBTC.sol curve.fi/sbtc LP
StrategyDAICurve 0xaa880345a3147a1fc6889080401c791813ed08dc StrategyDAICurve.sol DAI
StrategyTUSDypool 0xe3a711987612bfd1dafa076506f3793c78d81558 StrategyTUSDypool.sol TUSD
StrategyUSDC3pool 0x4720515963a9d40ca10b1ade806c1291e6c9a86d StrategyUSDC3pool.sol USDC
StrategyUSDT3pool 0xc7e437033d849474074429cbe8077c971ea2a852 StrategyUSDT3pool.sol USDT
StrategyCurveCompoundVoterProxy 0x530da5aef3c8f9ccbc75c97c182d6ee2284b643f StrategyCurveCompoundVoterProxy.sol curve.fi/compound LP
StrategyCurvemUSDVoterProxy 0xBA0c07BBE9C22a1ee33FE988Ea3763f21D0909a0 StrategyCurvemUSDVoterProxy.sol curve.fi/mUSD LP

Volatile assets can also participate in yield farming strategies as part of the Delegated Vaults. Currently, there is only one Delegated Vault: aLINK. The Controller deposits LINK into AAVE and borrows stable coins (USDC). The initial health factor of these loans is always above 4, and if the health factor drops below 4 at any time the Controller repays a portion of the debt in order to maintain a health factor above 4.

The stable coins borrowed (e.g., USDC, DAI, USDT, etc.) depend on the strategy selected by the Controller. After obtaining stable coins the Controller will deposit them into one of the yVaults identified above.

The aLINK vault uses the StrategyControllerV2 contract. The source code for StrategyControllerV2 is here.

Strategy Strategy GitHub
StrategyVaultUSDC 0x25faca21dd2ad7edb3a027d543e617496820d8d6 StrategyVaultUSDC.sol
Vault Address GitHub
aLINK 0x29e240cfd7946ba20895a7a02edb25c210f9f324 yDelegatedVault.sol

Governance Contracts

YFI holders govern the Yearn ecosystem and are eligible to receive a portion of protocol profits. Therefore, YFI represents a right to govern the platform and a claim on earnings. Profits are obtained from each of Yearn's products. In order to claim profits, YFI holders stake their tokens into the Governance contract.

Contract Status Address
Governance Staking (v2) Live 0xba37b002abafdd8e89a1995da52740bbc013d992
YearnGovernance (Balancer v1) Old 0x3a22df48d84957f907e67f4313e3d43179040d6e
YearnRewards (Yearn v1) Old 0x0001fb050fe7312791bf6475b96569d83f695c9f
YearnRewards (Balancer v1) Old 0x033e52f513f9b98e129381c6708f9faa2dee5db5
YearnRewards (Gov. Staking v1) Old 0xb01419e74d8a2abb1bbad82925b19c36c191a701

Status and Info Contracts

Utility Summary
YRegistry The Vault Registry is the single source of truth for active Yearn vaults. The registry allows users to query for active Yearn vaults and vault metadata (details here).
UniswapROI On-chain uniswap pool ROI calculator
APROracle Allows on-chain rate comparison between Compound, Fulcrum, Aave, and dYdX.
UniswapAPR An on-chain uniswap pool APR calculator. It calculates all values in ETH adjusted for the last year.
IEarnAPR Contract for on-chain APR decision trees between Compound, Fulcrum, Aave, and dYdX.
IEarnManager On-chain stateless execution. Recommendations based on IearnAPR.
APRWithPoolOracle APR used for stateless recommend() function. Can be used to change the recommended provider.
IEarnAPRWithPool APR used for stateless recommend() function. Can be used to change the recommended provider.

Utility Contracts

Utility Address
Curve's yPool 0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8

License

Apache-2.0