Inspiration
It's a hassle hunting down which lending protocol supports which token and who has the highest rate.
And as a developer, integrating 3 protocols and all their varieties, just to add support for 8 tokens isn't worth it. Especially when sometimes adding support for an entire protocol might only add 1 new token.
What it does
MaxYieldToken combines BZX, Compound, & DYDX into a single interface from which users or contract can deposit a token like WBTC or LINK and get back an erc20 tokenshare that earns them the highest probable rate from the underlying markets.
Currently Supports: DAI, USDC, WBTC,REP, ZRX, BAT, KNC, LINK
Tl;DR: MAX WBTC!! MAX LINK!!! MAX KNC!!! MAX DAI!!!
How I built it
We expanded the meta money market contract to support all tokens supported by the underlying markets and added BZX as a market. As well as added the kyber widget to the ui, and programed the deposit to change to a kyber button if you have 0 of that token in your wallet. For testing, rebalancing calculations are currently done offchain and triggered securely via Azure's Ethereum Triggers.
Demo Links:
- Tokens & BZX on Mainnet: https://deploy-preview-74--modest-heyrovsky-9b0bd9.netlify.com/my-account
- Kyber UI: https://deploy-preview-71--cocky-clarke-f760cb.netlify.com/my-account
Challenges I ran into:
- Solidity rounding/precision creates interesting bugs
- Imprecision in some of the underlying protocols
- Trying to do forward looking expected value calculations on the evm is...challenging.
Accomplishments that I'm proud of
- It actually works and is on mainnet.
What I learned
- how numbers on solidity works
What's next for maxToken
- Deploy a publicly callable method for calculating the allocation onchain.
- integrate kyber more natively using web3
- integrate rdai to incentivize (re:decentralize) rebalance calls.
- riskfreeToken
Log in or sign up for Devpost to join the conversation.