Inari is a 'zap' router contract for token staking, swap and defi migration. The name is drawn in homage to Inari Εkami , a deity for cultivation and industry, whose fox servants dine on offerings of sweet sushi (inarizushi).
Development of Inari started with simple tools like Saave, a Sushi-Aave staking helper contract. Following community feedback and deployment of new SushiSwap protocols, like Kashi lending, Inari has grown to become more generalized and include requested bridges like Aave, Compound, and Cream, as well as SLP, Bento, Kashi, and MasterChefv2 TX helpers.
In the Inari V1 implementation, zap functions are clearly listed out with interfaces, such as calling aaveToBento()
to unstake and move an asset into a Bento account, or stakeSushiToAave()
to stake Sushi into SushiBar and Aave (saave). These actions can also be combined into strategies and portfolio rebalancing through a batch()
function (see below,Chef Batching
).
In addition to immediate UX improvements, Inari can also highlight better exchange rates, such as going from ETH to xSUSHI through a 'swap and stake'. Overall, Inari is designed to be an easy-to-understand wrapper on SushiSwap and BentoBox applications, and more generally, can help Sushi and the greater DeFi community build out common routing tools to reduce friction.
AAVE TO BENTO
Inari calls can be strung together through the batch()
function, so that combined calls to compoundToBento()
and assetBalanceToKashi()
might turn cDAI into a Bento-yielding Kashi lending position. Similarly, batching can streamline rebalancing plans, like shuffling a set of tokens from Compound to Aave and from Cream to Bento in 1 TX.
Most users will likely enjoy simple Sushi-focused functions to start (see SushiNoms
below), but InariV1 is designed to be flexible to a variety of DeFi zaps and similar TXs. In any case, while Inari batching calls can be manually arranged without too much trouble by using the etherscan verified code and dApp, UIs should do the heavy-lifting to help users combine such actions and expose new strategy features of the contract.
Stake Sushi to:
stakeSushiToAave()
stakeSushiToBento()
, stakeSushiToCreamToBento()
sushiToCream()
, stakeSushiToCream()
Turn tokens or ETH into SLP:
zapIn()
, zapOut()
zapToBento()
, zapFromBento()
Turn ETH into Bento xSushi:
inarizushi()