$IDLE staking

Governance > $IDLE staking
Staking allows users to lock their $IDLE for a flexible period (up to 4 years) in return for a series of benefits. The contracts for IDLE staking are based on the Curve VotingEscrow contracts, decided via community vote.
sktIDLE holders have access to:
The Gauges voting and the Liquidity providers rewards boost are currently paused after IIP-31.

Lock details

Depending on the lock time, a specific amount of stkIDLE is generated from the $IDLE locked. The lock scale is as follows
Locking time
1 year
0.25 stkIDLE (25%)
2 years
0.50 stkIDLE (50%)
4 years
1 stkIDLE (100%)
stkIDLE linearly decreases st from the lockup date to the end date. Only at the end of the lock time, it is possible to withdraw the starting locked $IDLE tokens. The general formula to compute the stkIDLE balance at any point in time is:
QstkIDLE=lock time remaining in secondsmax lock time in seconds×QIDLE lockQ_{\text{stkIDLE}} = \frac{\text{lock time remaining in seconds}}{\text{max lock time in seconds}} \times Q_{\text{IDLE lock}}
Users can increase their $stkIDLE by either staking more $IDLE into their existing lock or increasing their lock end date, or both. The maximum lockup duration is 4 years.
Example: 5000 IDLE locked for 3 years and 2 months (with 30 days/month) would give:
QstkIDLE=(3×12+2)m×30d×24h×3600s4×365×24×3600×5000Q_{\text{stkIDLE}} = \frac{(3\times12 + 2)_{m} \times30_{d}\times24_{h}\times3600_s}{4\times365\times24\times3600} \times 5000
QstkIDLE=11401460×12=3904.1095Q_{\text{stkIDLE}} = \frac{1140}{1460} \times 12 = 3904.1095
As described above, the quantity of stkIDLE decreases constantly in proportion to the reduction in lock time (lock expiration), down to 0 at expiration. For example, two months after the initial lock, the stkIDLE holder from the example above would have a stkIDLE balance of:
QstkIDLE=10801460×12=3698.6301Q_{\text{stkIDLE}} = \frac{1080}{1460} \times 12 = 3698.6301


The staking contract is implemented as a non-standard ERC-20 token, which is non-transferable and can only be created by staking $IDLE by callingcreate_lock(uint256 _value, utin256 _unlock_time).
By default, smart contracts cannot participate in staking, as this would allow for trivial which could be implemented to circumvent the non-transferable nature of $stkIDLE.
However, Smart contracts can be whitelisted via a governance proposal as described here.
The $IDLE voting power deposited in the staking contract is delegated to a community multisig, which is used to vote on governance proposals based on the snapshot polls for stkIDLE token holders.
The community multisig is located at: 0xb08696efcf019a6128ed96067b55dd7d0ab23ce4