• Updated

Our new staking model on Optimism utilizes veTokenomics. To learn more about the veToken model, check out our explainer article

PERP tokens can be locked to receive locked PERP/vePERP, which currently serves two purposes:

  1. To participate in Lazy River 2.0, the improved staking reward program on L2 with fee sharing and vePERP rewards. 
  2. To boost voting power for governance.

Staking Times

PERP tokens can be staked for any number of weeks between 1 and 52. To receive Lazy River 2.0 rewards, PERP must be locked for at least 2 weeks.

A snapshot is taken every Thursday (00:00 UTC), at which point you must have locked PERP for at least 2 weeks to receive rewards the following week. 

To receive referral rewards in vePERP, PERP must be locked for at least 4 weeks. 

Staking Rights

When locking PERP into vePERP, your voting power for governance will be boosted by a multiple of up to 4x. If you lock for the maximum of 52 weeks, then your voting power will be boosted by 4x. The vote boost decays over each block, but an approximation for voting power is shown below:

Voting power = PERP x 4 x 1/52 x remaining weeks locked

Staking Rewards

A maximum of 25,000 PERP is distributed to vePERP holders each week.

The trading fees generated across all markets on Perp v2 are summed, then 10% of the USD value is distributed as PERP to all vePERP holders (with a lock time of 2 or more weeks), using a 7-day time-weighted average price.

Lazy River 2.0 program provides a return for locking-up PERP tokens, sharing protocol revenue with a USDC fee distribution as well as locked PERP (vePERP) rewards. The rewards are paid out weekly, shortly after the snapshot on each Thursday. 

The more vePERP you hold and the longer the lock time, the higher your USDC and vePERP rewards will be. The weekly payouts received depends on your share of the vePERP supply.

To see the your rewards, share of the vePERP supply, and APR %, you can check the Lazy River 2.0 page


To claim USDC and vePERP rewards, head to the tokenomics page:, choose Lazy River and click on "Claim". 


Note that you can still claim any pending liquid PERP rewards from Lazy River 1.0, but will be instead paid out in locked PERP every week commencing December 15th, 2022.  

The estimated rewards for the upcoming week, actual rewards over time and APR percentage are shown on this dashboard

How to Stake

1. Get PERP tokens on Optimism: via bridging or through Optimism DEXes such as Uniswap v3 or Velodrome

2. Go to

3. Click on "Lock PERP".

4. Click "Approve" and execute the approval transaction in your wallet to allow the locker to use the PERP you hold.


5. Enter the amount of PERP you want to lock or click max to stake all tokens.


6. Use the slider to set the lock time between 1 to 52 weeks. 

7. Click "Lock" and confirm the transaction in your wallet. 

8. The locked amount of PERP that you will receive back once the lock time up will be displayed on, along with the date and time that the lock expires. The vePERP balance is also shown (see the FAQs for the difference between locked PERP and vePERP). 


9. You can extend the lock time or increase the amount of tokens locked anytime from, either of which will increase your vePERP balance. 


How to Choose Lock Time

To choose the lock time, use the slider to enter an amount in weeks.


Locking PERP is irreversible, so once you have selected a number of weeks and locked the tokens, they will not become liquid again until the lock time expires. 

The lockup time is shown in detail on, and the lockup period can be extended from this page once you have some locked PERP to increase your vePERP balance. 


How to Unstake

Once the lock time expires, your vePERP balance will equal zero and your locked PERP can be unlocked to become liquid again.

Click on the "Unlock" button once the lock time expires to unstake.


After unlocking PERP, you can then re-lock your PERP balance to receive Lazy River 2.0 and referral rewards. 

Staking Additional PERP

Once you have received some PERP rewards or have bought more tokens, you can increase your stake/vePERP balance. 


When staking additional PERP, your locked PERP and vePERP balances will both increase and the tokens will be locked for the same amount of time as your existing locked PERP balance.

The locked balance increases by the amount of additional tokens you staked, while the increase in the vePERP balance will depend on your current lock time (e.g., the full amount will be added to the vePERP balance if your current lock time is the maximum of 52 weeks). 


What is vePERP?

vePERP is vote escrowed PERP, which can be acquired by locking PERP here:, and is available on the Optimism network.

Referral partners, who previously earned PERP, now earn vePERP as rewards

Learn more about vePERP:

Why should I lock PERP into vePERP?

Locking PERP offers tokenholders a source of yield on Optimism that will be distributed in USDC from a share of the trading fees generated on Perp. Locked PERP rewards are also paid out to incentivize PERP tokenholders to lock into vePERP. The higher the share of the vePERP supply you hold, the more USDC and locked PERP you’ll earn. 

To participate in Lazy River 2.0, you’ll need to lock any amount of PERP into vePERP for at least 2 weeks. 

How much can I earn from locking PERP into vePERP?

How much you can earn from staking depends on the trading volumes generated on Perp's DEX as well as your share of the total vePERP supply. 

You can estimate the payout you'll earn by using this calculator on Dune Analytics. You can also see the estimated fee distribution here and then work out your estimated earnings by calculating your share of the vePERP supply, then multiplying it by the estimated fee distribution. 

How much PERP has been locked into vePERP?

You can check the official Dune dashboard to see the total number of tokens locked and the number of tokens locked per day. This page also include stats on APR, rewards paid out in each week and estimated rewards for the current week. More details about vePERP can be seen on this dashboard


What is Lazy River 2.0?

Lazy River 2.0 introduces fee sharing for tokenholders. Additional rewards are provided in vePERP to incentivize the locking of the PERP supply. To participate, follow the steps outlined above or check out this video walkthrough

What's the current APR for Lazy River? 

An estimate for the APR for vePERP holders in terms of USDC fee rewards are shown on the official Dune dashboard. Note that your APR may vary depending on your lock up time. You can also see the total amount of USDC distributed to vePERP holders and the annualized figure. 


Your actual APR is updated every week on the Lazy River page (right-hand side), which includes both USDC and vePERP rewards.


The total APR for the entire vePERP pool is also displayed on the left-hand side of the Lazy River page. 

When are Lazy River rewards distributed?

Commencing the week beginning September 15th, a snapshot for the Lazy River rewards will be taken every Thursday at 00:00 UTC. The rewards will become claimable in the following week. 

Because this cutoff point is used, this means you have to lock PERP into vePERP before Thursday 00:00 UTC to claim any rewards for the following week. 

While it is mandatory to lock PERP to receive rewards, you are not required to have any PERP locked to claim them. 

What’s the lock time of the vePERP claimed from referral rewards?

The same as the current lock time. All of your vePERP will have the same lock time, there are no partial locks. 

What is the minimum/maximum lock time?

The minimum lock time is 1 week. The maximum lock time is 52 weeks. By locking up PERP for longer, you get more vePERP from the locker. You can maximize your rewards by locking for 52 weeks. 

What happens when I extend my lock time? 

Extending your lock time will increase your vePERP holdings but also extends the time until you can unlock PERP and make these tokens liquid/transferrable again. 

Can I unlock PERP before the lock time expires?

No, locking PERP is irreversible. 

Once you have locked PERP into vePERP, your tokens will only become liquid again once the lock time has expired. If you set a lock time of 2 weeks, then vePERP cannot be unlocked or transferred until the lock expires, at which point it can be unlocked and converted into liquid PERP. 

The countdown timer shows more details on the time left until the lock expires. 

What happens when the lock time is up?

Your locked PERP can be unlocked and converted into liquid PERP. You can either unlock and then lock up again to earn rewards, or keep it as liquid PERP. It’s recommended to extend the lock time before it expires to avoid having to unlock and lock again.

No rewards from Lazy River are earned when the lock time expires, however, you can still claim any rewards that you have.

What’s the formula for calculating vePERP balances? 

For Lazy River 2.0, unweighted vePERP is used to determine your rewards.

The formula for calculating unweighted vePERP:

Unweighted vePERP = locked PERP * (1/52) * lock time in weeks

It follows that unweighted vePERP = locked PERP when the maximum lock time of 52 weeks is applied. Also, it is clear from the equation above that once your lock time is up, unweighted vePERP will be equal to 0, since lock time in weeks will also be 0. 

Since vePERP balances decay over time, you will have to lock more PERP or increase the lock time to increase or maintain your balance. The chart below shows the evolution of vePERP balance over time after locking 10,000 PERP for the maximum of 52 weeks. 


Since the vePERP balance is 0 on week 52, the user will not receive any rewards for week 53 onwards. To continue receiving rewards, the PERP must be unlocked and then re-locked once more. Alternatively, this user can extend the lock time before week 52 to avoid missing out on any weekly rewards. 

This next chart shows the same situation, but then they extended the lock on week 5 to bring it to the maximum of 52 weeks once again, as it was in week 0. Since the lock time is extended by 5 weeks and given that the lock time is not extended again or no more PERP is locked up, the vePERP balance decays to zero on week 57.


After week 57, this user will not receive any rewards unless they unlock and re-lock their PERP. Alternatively, they can extend the lock time before week 57 to continue receiving rewards. 

Finally, the chart below shows a hypothetical situation where 10,000 PERP is locked for 52 weeks, but the liquid PERP rewards from Lazy River are locked up each week (assuming weekly rewards are 50 PERP). 


Since the balance of locked PERP is increased every week, the rate at which vePERP decreases is slower as compared to the first example but still eventually reaches zero at week 52 because the lock time was never extended. 

What’s the difference between locked PERP and vePERP?

Locked PERP and vePERP are both shown on the UI. The locked PERP amount does not decay over time and this is the amount of PERP tokens you'll receive when the lock expires. On the other hand, your vePERP balance will decrease over time as the lock expiry approaches. 

A weighted vePERP balance is used to track locked PERP, where the weighted amount equals four times the locked amount. As with unweighted vePERP, the weighted amount decays over time and eventually reaches parity with the locked PERP amount once the lock time expires. 

When you max lock PERP for 52 weeks, your locked PERP and vePERP balances will be equal. As weeks pass, the vePERP balance declines, but the locked PERP remains constant. However, if you only locked for 26 weeks, then at the start your locked PERP will be double your vePERP balance. At expiry, the unweighted vePERP balance will equal 0 (which is when your locked PERP are claimable) while the weighted vePERP balance will equal the locked PERP amount. 

What’s the contract address for vePERP?


To interact with the locker contract directly:

Smart Contracts & Snapshots

ve contracts -

  • Use the claim(addr) method from the vePERPEmissionFeeDistributor contract to claim rewards manually.

Weekly snapshots -

Calculate weekly rewards

  1. Find totalReward for the week from the snapshot list (above)
  2. Find totalVePerp for the week by calling the totalSupply(uint256) method in the vePERP contract
  3. Find myVePERP for the week by calling the balanceOf(address,uint256) method in the vePERP contract
  4. Reward for the week = myVePERP / totalVePERP * totalReward