[IIP-10] - Single Token Staking

Authors

@8bitporkchop

Summary

The purpose of this proposal is to activate the single token staking program for $IDLE. With this proposal $IDLE stakers will be eligible to claim a proportion of the protocol revenues proportional to their stake amount, and locking duration.

Motivation

Staking in DeFi can add valuable utility and promote long term sustainability for the idle ecosystem, while ensuring that the community is incentivised for their continual loyalty to the protocol.

Background

Single token staking has been one of the most requested features from the idle community [1] [2] [3]. Following a number of implementation discussions with the community, the dev league has implemented staking for $IDLE using the curve staking model.

In this model users are incentivised by the amount of $IDLE staked, and the time they stake their tokens for. Tokens are staked by locking them in a contract for up to four years. Through staking $IDLE stakers are also rewarded by being eligible to claim a portion of the protocol performance fees. Governance has voted and decided that the reward distribution token for staking will be IDLE, which will be market bought from SushiSwap.

High level overview:

The staking implementation consists of three contracts.

IDLE will be delegated to a community multisig. Stakers will be able to signal their preference on IIP proposals through a snapshot vote, which the multisig will then certify via an on-chain vote.

The staking contract allows users to lock their $IDLE for a certain period. While the Fee Distributor will manage paying out performance fees to stakers.

This proposal at a high level achieved the following actions.

  • Add the feeDistributor as a beneficiary to the feeCollector
  • Update feeCollector allocation
    • 10% Smart Treasury
    • 10% Fee Treasury
    • 30% Rebalances
    • 50% Sushiswap Exchanger

The following diagram summarises IIP 10

Specification

The contract implementation is based on the curve contracts with some minor modifications.

These modifications allow the $IDLE in the staking contract to be delegated to a community multisig located here: 0xb08696efcf019a6128ed96067b55dd7d0ab23ce4. This currently consists of members from the treasury league, but can be updated in the future to include more community members.

The source code for the single token staking is located here: GitHub - Idle-Finance/idle-staking: Idle Single Token Staking

Next Steps

We are going to leave this thread open for comments regarding this implementation, and in about 48hrs, if there are no objections, we will proceed with the on-chain proposal and the voting phase.

13 Likes

Great work team!

Looking forward to the release of IDLE staking!

3 Likes

Excited for this!
Amazing work everyone.

3 Likes

Awesome developments :rocket:

Looking at design, why not plug into any of DEX aggregators instead of SushiSwap directly? This looks like it may expose protocol to unnecessary slippage. Staking is a long-term program and nobody can predict where IDLE liquidity will be on a given future day.

1 Like

This is a good point, I’ve thought about this too, and to handle this the sushiswap exchanger is actually an upgradable contract, so if liquidity moves elsewhere in the future we can implement an update to change that.

1 Like

Good call having it upgradable. But it means someone has to monitor slippage, raise a proposal, community has to review, upgrades have to be deployed - a lot of hassle for something that can be avoided upfront and give the protocol best price all the while. So why not do it proactively now rather than in reactive upgrade.

2 Likes

The dev league can deploy an update to the exchanger as required to add more exchanges, it might be something to look back on when the Sushi LP staking program comes to an end.

2 Likes

On-chain vote is now live :tada:

IIP-10 is now live and you can your votes here: IIP-10 Enable Single Token Staking for $IDLE

This vote will enable $IDLE stakers to receive a portion of the protocol fees in $IDLE.

The vote is live until 27 Jun, 2021 @ 01:15 UTC

6 Likes