npm install yearn-tokenlist
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.
Below is a list of relevant smart contracts and Github repositories for using and interacting with the Yearn product suite.
The Yearn ecosystem is controlled by YFI token holders who submit and vote on proposals that govern the ecosystem.
Token | Address |
---|---|
YFI | 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e |
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 |
The v3 yield tokens allow the underlying assets to be spread across multiple lenders. Currently being used on Curve’s BUSD pool.
Token | Address | Github |
---|---|---|
yDAIv3 | 0xC2cB1040220768554cf699b0d863A3cd4324ce32 | YDAIv3.sol |
yUSDCv3 | 0x26EA744E5B887E5205727f55dFBE8685e3b21951 | YUSDCv3.sol |
yUSDTv3 | 0xE6354ed5bC4b393a5Aad09f21c46E101e692d447 | YUSDCv3.sol |
yBUSDv3 | 0x04bC0Ab673d88aE9dbC9DA2380cB6B79C4BCa9aE | YBUSDv3.sol |
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.
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 |
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 |
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 |
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 | Address |
---|---|
Curve's yPool | 0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8 |
Apache-2.0