Best Yield strategy allows users to optimize interest rate profitability and seamlessly get the highest yield, without having to manually move funds across different lending protocols to chase the best returns.
Users' funds are pooled together in the main contract (one for each token supported by Idle) in order to minimize gas paid for reallocating funds and provide, at the same time, the highest aggregated interest rate for all pooled funds.
Interest rates are constantly monitored off-chain. The exact allocations are calculated for pooled funds in order to maximize aggregated APR and if current allocations are different from the newly calculated one, new allocations gets submitted to the contract and the pool gets rebalanced.
Hence, by buying and holding IdleTokens, users' underlying position will be dynamically rebalanced when the best rate changes, in order to always give back the most profitable return.
With this strategy we are maximizing current aggregated interest rate, this can be modeled as follows:
n is the number of lending protocols used,
x_i is the amount (in underlying) allocated in protocol
nextRate(x_i) is a function which returns the new APR for protocol
i after supplying
x_i amount of underlying and is
tot the total amount to rebalance