Decentralized Revenue Aggregator

Automatic pool selection
The Zunami Protocol utilizes decentralized revenue aggregator to select the most profitable stablecoin pools and optimally balance funds between them, eliminating the need for constant market research and manual transfers. This allows for users to generate passive income with minimal effort. The community and the Zunami team continually analyze the risk/profit ratio of stablecoin locations and through DAO voting, make decisions regarding strategy and asset rebalancing to ensure users receive the highest possible yield while diversifying their funds across trusted pools and dAPPs.

Omni pool

Zunami Protocol Omni Pool
Zunami offers the Omni pool, a decentralized location for users to deposit USDT, USDC, and DAI. These funds are then distributed among multiple strategies, which can range from 2 to 10 at a time. The selection and rebalancing of these strategies is determined by a DAO vote.
The DAO's role is to identify new strategies, put them to a vote, and ensure timely rebalancing and diversification of funds. Regardless of which strategy the funds were allocated to, each depositor in Zunami will receive a ZLP token proportional to their contribution to the protocol. All profits generated by the Zunami Protocol will be distributed among ZLP holders, with the exception of a performance fee which will be directed to the treasury.

Transaction Batching Mechanism

The high commission costs on the Ethereum network are a significant problem for the advancement and future of DeFi. To address this, the Zunami Protocol team has developed a Transaction Batching Mechanism (TBM) to optimize costs. This multi-layer smart contract allows users to deposit funds into an initial contract using the delegateDeposit() function. Then, once a day, the completeDeposit() function automatically allocates user funds to strategies without incurring any additional costs.
Cost optimization
Important to know: the cost of this complex transaction will not be much higher than a regular transfer.
This allows for reducing expenses up to 10 times compared to using Curve and Convex directly. Delegation of withdrawals and deposits is available by checking a box in the application. Users of alternative networks can use Zunami via a Gateway on the BSC chain and Polygon, with the cost of interacting with the smart contract being less than $1.

Strategies and Auto-compounding

The DeFi ecosystem is becoming increasingly complex, and to maximize yield, users need to deposit into Curve and take LP tokens to StakeDAO or Convex. The Zunami protocol simplifies this process by creating a number of strategies and automating the entire process in one transaction, making it more convenient for users. Users receive rewards in the form of tokens, but for those with small deposits, selling these rewards can be unprofitable due to high commission costs or lack of time. Zunami takes care of selling the rewards for you, allowing you to fully benefit from compound interest


The are two types of pools exist on Convex. Pools with [CRV, CVX] rewards and [CRV, CVX, Additional rewards...].
Let's define some variables that we need fo calculation:
Where i is pid of Convex reward poollpiprice of lp tokentsitotal supplyrireward rateatpiadditional token priceariadditional reward ratecurveAPRibase Curve APRperiodFinishidate (timestamp) when reward for pool will be disabledcvxCliffs=cvxTotalCliffscvxTotalSupplycvxReductionPerCliffcvxRewardPrice=cvxPricecvxCliffscvxTotalCliffs\text {Where } i \text { is pid of Convex reward pool} \\ lp_i - \text {price of lp token} \\ ts_i - \text {total supply} \\ r_i - \text {reward rate} \\ atp_i - \text {additional token price} \\ ar_i - \text {additional reward rate} \\ curveAPR_i - \text {base Curve APR} \\ periodFinish_i - \text {date (timestamp) when reward for pool will be disabled}\\ \allowbreak\\ cvxCliffs = cvxTotalCliffs - \frac{cvxTotalSupply}{cvxReductionPerCliff}\\ \allowbreak\\ cvxRewardPrice = \frac{cvxPrice * cvxCliffs}{cvxTotalCliffs} \\ \allowbreak\\
Also, we need a binary function for make a decision based on the current timestamp:
f(z)={0if z<currentTimestamp1if z>currentTimestampf(z) = \begin{cases} 0 &\text{if } z < currentTimestamp \\ 1 &\text{if } z > currentTimestamp \end{cases}
And some constants:
Seconds in ETH block is 15Blocks per year in ETH is 2102400\text {Seconds in ETH block is } \boldsymbol{15} \\ \text {Blocks per year in ETH is } \mathbf{2102400} \\

Pools APR calculation formula

Based on the following formula, we can calculate annual percentage rate (APR):
APRi=curveAPRi+f(periodFinishi)152102400cvxRewardPriceritsilpi+f(periodFinishi)152102400cvxPriceritsilpi+k=0Nf(periodFinishk)152102400atpkarktsilpi=curveAPRi+f(periodFinishi)31536000ri(cvxRewardPrice+cvxPrice)TVLi+k=0Nf(periodFinishk)31536000atpkarkTVLi,where k is pid of additional reward poolTVLi=Total value locked in pool APR_i = curveAPR_i + f(periodFinish_i)* \frac{15 * 2102400 * cvxRewardPrice * r_i}{ts_i * lp_i} + \\ f(periodFinish_i)* \frac{15 * 2102400 * cvxPrice * r_i}{ts_i * lp_i} +\sum_{k=0}^{N} f(periodFinish_k) * \frac{15 * 2102400 * atp_k * ar_k}{ts_i * lp_i} = \\ \allowbreak \\ curveAPR_i + f(periodFinish_i)* \frac{31536000*r_i*(cvxRewardPrice + cvxPrice)}{TVL_i} + \\ \sum_{k=0}^{N} f(periodFinish_k) * \frac{31536000 * atp_k * ar_k}{TVL_i} , \text {where k is pid of additional reward pool} \\ \allowbreak \\ TVL_i = \text {Total value locked in pool }
In this formula we calculate the APR for CRV, CVX and APR for an additional reward pools. The final APR is the sum of them (If we are not in the time interval when the pool is disabled)

APY for pools

APY (Annual Percentage Yield) can be found from APR:
APYi=(1+APRin)n1, where n compounds period in yearAPY_i = (1 + \frac{APR_i}{n})^n-1 \text {, where } n \text { compounds period in year}