An evolution of Uniswap with SUSHI tokenomics.
In the two years since its launch, 🦄 Uniswap has solidified its position as one of the mainstays in DeFi. Along with that, their protocol design has become a standard in and of itself, one in which many projects have come to derive its mechanics from.
With that, we have designed SushiSwap as the next step forward in the Uniswap protocol design: an evolution. Taking Uniswap’s elegant core design, we’ve added community-oriented features that we believe help improve the design of the protocol, as well as provide further benefits to the actors involved.
🎨 Protocol Design
💧 Liquidity Provider Incentives
Of course, one of the natural questions that many may have is: “Why would someone want to provide liquidity to SushiSwap, as opposed to Uniswap?”.
With Uniswap, liquidity providers only earn the pool’s trading fees when they are actively providing said liquidity. Once they have withdrawn their portion of the pool, they no longer receive that passive income. Moreover, as protocol gains traction, despite being early liquidity providers, they risk getting their return diluted as (bigger and wealthier) stakeholders such as venture funds, exchanges, mining pools join the protocol with a huge amount of capital.
Image for post
With SushiSwap, one can also provide some liquidity into a pool and earn rewards in the form of SUSHI tokens. However, unlike Uniswap, those SUSHI tokens will also entitle you to continue to earn a portion of the protocol’s fee, accumulated in SUSHI, even if you decide to no longer participate in the liquidity provision. As an early adopter to help provider liquidity, you become a significant stakeholder of the protocol.
The earnings that you’ll receive from staking will be proportional to the amount of LP tokens you have staked versus the total amount of LP tokens staked. Unless you continue to provide liquidity, your holdings and corresponding reward earnings will gradually be diluted.
👨🌾 Token Distribution
We are aware that many of us are existing liquidity providers in Uniswap pools. With that, we have designed the token distribution mechanics to make it as easy as possible for the existing Uniswap liquidity providers to start migrating to our protocol!
To start providing liquidity and earning SUSHI tokens, anyone holding Uniswap LP tokens can stake those LP tokens into the corresponding initial list of pools. Once done, they will start earning tokens once rewards starts on block 10750000. The list of eligible LP tokens can be added per on-chain governance. So it’s every one of us who decides.
At every block, 100 SUSHI tokens will be created. These tokens will be equally distributed to the stakers of each of the supported pools.
However, For the first 100000 blocks (~2 weeks), the amount of SUSHI tokens produced will be 10x, resulting in 1000 SUSHI tokens being minted per block. This is to incentivize early farmers and adopters of the protocol and to help in The Liquidity Migration™️.
The initial set of available pools:
CeFi Stablecoins: USDT-ETH, USDC-ETH
DeFi Stablecoins: DAI-ETH, sUSD-ETH
Lending Protocols: COMP-ETH, LEND-ETH
Synthetic Assets: SNX-ETH, UMA-ETH
Oracles: LINK-ETH, BAND-ETH
Ponzinomics: AMPL-ETH, YFI-ETH
Delicacy (2x reward): SUSHI-ETH
The SUSHI/WETH pool gets twice the amount, so be sure to supply your SUSHI to uniswap to become eligible for extra yumminess 😋. Once the SUSHI is live, community can vote to add more eligible pools, or change the SUSHI weight of any pool. You guys decide!
💸 Reward Distribution
With the current Uniswap configuration, 0.3% of all trading fees in any pool are proportionately distributed to the pool’s liquidity providers. In SushiSwap, 0.25% go directly to the active liquidity providers, while the remaining 0.05% get converted back to SUSHI (obviously through SushiSwap) and distributed to the SUSHI token holders 📈.
🕑 Ensuring Project Sustainability (aka. Dev Fund)
Let’s ensure the long-term viability and sustainability of the project. Following suggestion from @LawMaster, 10% of every SUSHI distribution is set aside for developers. Hope the community won’t mind feeding us some 🍣 dinners.
The Great Larry
⛵️ The Liquidity Migration™️
Around the first 100000 blocks from the protocol’s inception (~2 weeks), we will be migrating all the liquidity tokens staked onto SushiSwap contracts. This migration will involve taking all of the Uniswap LP tokens staked on SushiSwap, redeeming them on Uniswap for the respective token pairs, and initializing new liquidity pools from those tokens. These new pools will be almost identical to the standard Uniswap pool, with the added feature that any fees accrued will be distributed to SUSHI token holders through the logic outlined above.
Image for post
Once the migration is done, the liquidity converted will be fueling the first sets of SushiSwap pools, and will bring the protocol into operation immediately. The stakers don’t need to do anything and will continue to receive SUSHI token rewards from providing liquidity going forward.
🍣 Protocol Usage
At the protocol and smart contract level, SushiSwap shares an identical interface to Uniswap. This means that if your protocol is currently compatible with Uniswap, it should be relatively simple to integrate with SushiSwap. We will work with various DeFi and other ecosystem tools to start integrating SushiSwap.
🔐 Security Audit
Security is important to us. We reasonably unit test coverage and have tested that everything works on the testnet.
We invite Trail of Bits, PeckShield, OpenZeppelin, Consensys, Certik, and Quantstamp and more to audit the contracts. First firm to confirm audit of SushiSwap on its official Twitter account will win this job. We promise to pay 5 ETH of our live saving for this audit immediately after you confirm.
The contracts you’ll be auditing will be everything in the SushiSwap smart contract repository, which is available at https://github.com/sushiswap/sushiswap and is already considered ready for the audit.
⚠️ Meanwhile, The MasterChef contract for farming is unaudited, but it’s simple enough for most Solidity developers to understand. Please read through the contract before putting your LP tokens at stake! Everything is in BETA, please use at your own risk.
💻 Smart Contracts
The contracts are available at https://github.com/sushiswap/sushiswap with 🅦WTFPL license. Some codes are from other projects including Uniswap / Yam / Compound / OpenZeppelin and are subjected to their licenses. The followings are the list of the contracts with rough explanation:
🍣 SushiToken: The token contract, with COMP/YAM voting functionality.
👨🏻🍳 MasterChef: Deposit LPs tokens to farm SUSHI.
🔪 SushiMaker: Collect revenues, convert to SUSHI, and send to SushiBar.
🍸 SushiBar: Stake SUSHI to earn more SUSHI 📈.
👩💻 Migrator: Migrate MasterChef LP tokens from Uniswap to SushiSwap.
🏛 GovernorAlpha + Timelock: Governance stuff from Compound.
🦄 UniswapV2: UniswapV2 contracts with small modification for Migration.
All contracts written by us should have somewhat reasonable test coverage. We will continue to do more testing. If any of you think there’s any issue with it, please let us know (preferably privately if it’s a severe issue) via Discord.
🏁 How You Can Participate
You can start depositing LP tokens to the MasterChef contract using the interface at https://app.sushiswap.org
Image for post
💡 Credit: We borrow most of the UI code from Yam
You will begin to earn SUSHI precisely starting from block 10750000. Be sure to stake your LP tokens prior to that for maximum 🍣.