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:

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

  1. Deploy a publicly callable method for calculating the allocation onchain.
  2. integrate kyber more natively using web3
  3. integrate rdai to incentivize (re:decentralize) rebalance calls.
  4. riskfreeToken
Share this project:

Updates