# sushi 8

By [ape](https://paragraph.com/@ape-3) · 2022-03-26

---

Overview

The BentoBox is a vault that holds tokens and generates yield from flash loans and strategies for any protocol built on top of it.

Building any protocol on top of BentoBox provides these benefits:

*   Extra yield from flash loans
    
*   Extra yield from strategies
    
*   Optimized deposit, withdraw and skim functions that auto-convert ETH to WETH
    
*   Low gas (and fixed gas) transfers of tokens within the BentoBox
    
*   Simplified approval of tokens (no need to reapprove for each protocol)
    
*   Minimal proxy contract factory build in. No need to roll your own
    

Deployments
===========

The BentoBox is deployed on all nets at address 0xF5BCE5077908a1b7370B9ae04AdC565EBd643966

Mainnets

Testnets

More

*   ​[Binance Smart Chain](https://bscscan.com/address/0xF5BCE5077908a1b7370B9ae04AdC565EBd643966#code)​
    
*   ​[Ethereum](https://etherscan.io/address/0xF5BCE5077908a1b7370B9ae04AdC565EBd643966#code)​
    
*   ​[Fantom](https://ftmscan.com/address/0xF5BCE5077908a1b7370B9ae04AdC565EBd643966#code)​
    
*   ​[Huobi ECO Chain](https://hecoinfo.com/address/0xF5BCE5077908a1b7370B9ae04AdC565EBd643966#code)​
    
*   ​[Matic](https://polygonscan.com/address/0x0319000133d3ada02600f0875d2cf03d442c3367)​
    

ABI
---

1

\[{"inputs":\[{"internalType":"contract IERC20","name":"wethToken\_","type":"address"}\],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"address","name":"masterContract","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"},{"indexed":true,"internalType":"address","name":"cloneAddress","type":"address"}\],"name":"LogDeploy","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"share","type":"uint256"}\],"name":"LogDeposit","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"address","name":"borrower","type":"address"},{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"}\],"name":"LogFlashLoan","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"address","name":"protocol","type":"address"}\],"name":"LogRegisterProtocol","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"address","name":"masterContract","type":"address"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}\],"name":"LogSetMasterContractApproval","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}\],"name":"LogStrategyDivest","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}\],"name":"LogStrategyInvest","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}\],"name":"LogStrategyLoss","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}\],"name":"LogStrategyProfit","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"contract IStrategy","name":"strategy","type":"address"}\],"name":"LogStrategyQueued","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"contract IStrategy","name":"strategy","type":"address"}\],"name":"LogStrategySet","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"targetPercentage","type":"uint256"}\],"name":"LogStrategyTargetPercentage","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"share","type":"uint256"}\],"name":"LogTransfer","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"address","name":"masterContract","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}\],"name":"LogWhiteListMasterContract","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"share","type":"uint256"}\],"name":"LogWithdraw","type":"event"},{"anonymous":false,"inputs":\[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}\],"name":"OwnershipTransferred","type":"event"},{"inputs":\[{"internalType":"contract IERC20","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}\],"name":"balanceOf","outputs":\[{"internalType":"uint256","name":"","type":"uint256"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"bytes\[\]","name":"calls","type":"bytes\[\]"},{"internalType":"bool","name":"revertOnFail","type":"bool"}\],"name":"batch","outputs":\[{"internalType":"bool\[\]","name":"successes","type":"bool\[\]"},{"internalType":"bytes\[\]","name":"results","type":"bytes\[\]"}\],"stateMutability":"payable","type":"function"},{"inputs":\[{"internalType":"contract IBatchFlashBorrower","name":"borrower","type":"address"},{"internalType":"address\[\]","name":"receivers","type":"address\[\]"},{"internalType":"contract IERC20\[\]","name":"tokens","type":"address\[\]"},{"internalType":"uint256\[\]","name":"amounts","type":"uint256\[\]"},{"internalType":"bytes","name":"data","type":"bytes"}\],"name":"batchFlashLoan","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[\],"name":"claimOwnership","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"address","name":"masterContract","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"useCreate2","type":"bool"}\],"name":"deploy","outputs":\[\],"stateMutability":"payable","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token\_","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"share","type":"uint256"}\],"name":"deposit","outputs":\[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"shareOut","type":"uint256"}\],"stateMutability":"payable","type":"function"},{"inputs":\[{"internalType":"contract IFlashBorrower","name":"borrower","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}\],"name":"flashLoan","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"bool","name":"balance","type":"bool"},{"internalType":"uint256","name":"maxChangeAmount","type":"uint256"}\],"name":"harvest","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}\],"name":"masterContractApproved","outputs":\[{"internalType":"bool","name":"","type":"bool"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"address","name":"","type":"address"}\],"name":"masterContractOf","outputs":\[{"internalType":"address","name":"","type":"address"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"address","name":"","type":"address"}\],"name":"nonces","outputs":\[{"internalType":"uint256","name":"","type":"uint256"}\],"stateMutability":"view","type":"function"},{"inputs":\[\],"name":"owner","outputs":\[{"internalType":"address","name":"","type":"address"}\],"stateMutability":"view","type":"function"},{"inputs":\[\],"name":"pendingOwner","outputs":\[{"internalType":"address","name":"","type":"address"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"","type":"address"}\],"name":"pendingStrategy","outputs":\[{"internalType":"contract IStrategy","name":"","type":"address"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}\],"name":"permitToken","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[\],"name":"registerProtocol","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"masterContract","type":"address"},{"internalType":"bool","name":"approved","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}\],"name":"setMasterContractApproval","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"contract IStrategy","name":"newStrategy","type":"address"}\],"name":"setStrategy","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint64","name":"targetPercentage\_","type":"uint64"}\],"name":"setStrategyTargetPercentage","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"","type":"address"}\],"name":"strategy","outputs":\[{"internalType":"contract IStrategy","name":"","type":"address"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"","type":"address"}\],"name":"strategyData","outputs":\[{"internalType":"uint64","name":"strategyStartDate","type":"uint64"},{"internalType":"uint64","name":"targetPercentage","type":"uint64"},{"internalType":"uint128","name":"balance","type":"uint128"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"share","type":"uint256"},{"internalType":"bool","name":"roundUp","type":"bool"}\],"name":"toAmount","outputs":\[{"internalType":"uint256","name":"amount","type":"uint256"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"roundUp","type":"bool"}\],"name":"toShare","outputs":\[{"internalType":"uint256","name":"share","type":"uint256"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"","type":"address"}\],"name":"totals","outputs":\[{"internalType":"uint128","name":"elastic","type":"uint128"},{"internalType":"uint128","name":"base","type":"uint128"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"share","type":"uint256"}\],"name":"transfer","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address\[\]","name":"tos","type":"address\[\]"},{"internalType":"uint256\[\]","name":"shares","type":"uint256\[\]"}\],"name":"transferMultiple","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}\],"name":"transferOwnership","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"address","name":"masterContract","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}\],"name":"whitelistMasterContract","outputs":\[\],"stateMutability":"nonpayable","type":"function"},{"inputs":\[{"internalType":"address","name":"","type":"address"}\],"name":"whitelistedMasterContracts","outputs":\[{"internalType":"bool","name":"","type":"bool"}\],"stateMutability":"view","type":"function"},{"inputs":\[{"internalType":"contract IERC20","name":"token\_","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"share","type":"uint256"}\],"name":"withdraw","outputs":\[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"shareOut","type":"uint256"}\],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}\]

Copied!

Strategies
----------

### SushiBar Strategy

SUSHI

​[0xaFD3f19E0470D4e4cD4aa5AA699915838A79AB6b](https://etherscan.io/address/0xaFD3f19E0470D4e4cD4aa5AA699915838A79AB6b)​

### Compound Strategies

BAT

COMP

DAI

WETH

UNI

USDC

WBTC

ZRX

​[0x78ea41a31e92a71D2c25C55a2395F8cdcEAaD22d](https://etherscan.io/address/0x78ea41a31e92a71d2c25c55a2395f8cdceaad22d)​

---

*Originally published on [ape](https://paragraph.com/@ape-3/sushi-8)*
