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:
Depending on the lock time, a specific amount of stkIDLE is generated from the $IDLE locked. The lock scale is as follows
0.25 stkIDLE (25%)
0.50 stkIDLE (50%)
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:
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:
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:
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 calling
create_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.
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.