Reset Lock
Reset lock needs to be done in following scenarios:
Consider user had unstaked in epoch
T. After unstaking, users sRAZOR tokens are locked in the Stake Manager contract.User needs to
Initiate Withdrawafter epochT + 1and beforeT + 151, this is known as thewithdrawInitiationPeriod.If the user does not call initiate withdraw within this period (
T + 1andT + 151window), then the user needs to reset unstake lock.Note: Penalty will be charged to the user while reseting unstake lock, this penalty is proportional to the users funds being unstaked.
Using Razorscan (Recommended for beginners)
Step 1
Visit https://razorscan.io/
Note: We recommend that all Delegators bookmark this specific URL to prevent any phishing attacks.

Step 2
Now, click on “Connect Wallet” from the top right corner and make sure your network is set to "Europa Defi Hub". Next, visit https://razorscan.io/staking or click on “Staking” from the menu bar on the header and you should see the screen below:

Step 3
Click on your connected wallet address to get information on your actions. In delegated section, you would find the list of stakers that you have delegated to. Clicking on the "Action" will show you list of actions that can be performed for that particular staker.
Note: Same action can be performed from staking page by clicking on staker action.

Step 4
Click on Reset Lock in staker action dropdown and confirm the transaction. Now the unstake lock is reset, meaning the user will need to call Initiate Withdraw within the new withdrawInitiationPeriod set.
Note: The option for "Reset lock" in action dropdown will be only enabled if it's required.

Using SKALE Block Explorer (Alternative method)
This method allows you to reset your unstake lock directly by interacting with the StakeManager smart contract through the SKALE Block Explorer. This is required when you miss the withdrawal initiation window after unstaking.
Warning: This operation incurs a penalty proportional to your unstaked funds. Only use this if you missed the withdrawInitiationPeriod window.
Prerequisites
Before resetting your lock via the block explorer, ensure you have:
- Metamask wallet installed and configured
- Europa Defi Hub network added to Metamask (see network details)
- sFUEL tokens for gas fees (get from SKALE Portal after connecting wallet)
- Completed unstaking - You must have called unstake previously
- Missed withdrawal window - The
withdrawInitiationPeriodhas passed - No existing withdraw lock - You must not have an active withdraw lock
Contract Addresses
Mainnet (Europa Defi Hub):
- StakeManager:
0xd492408e4901CF658c7874285984F6D5Db648D1E
Testnet (Europa Defi Hub Testnet):
- StakeManager:
0xbeCf5d1b74d0C2A6388c65491BBb4aD3880cD012
Step-by-Step Instructions
Step 1: Verify You Need to Reset Lock
Before calling reset lock, verify you actually need it:
- Visit the StakeManager contract on the block explorer (links above)
- Go to the "Read Contract" tab
- Find the
locksfunction - Enter your parameters:
- address: Your wallet address
- tokenAddress: The sRZR token address for your staker
- lockType:
0(for Unstake lock)
- Click "Query" and check the result:
amount: Should be greater than 0unlockAfter: If this is more thanwithdrawInitiationPeriodepochs in the past, you need to reset
When to use Reset Lock:
- You unstaked at epoch
T - Current epoch is greater than
T + 450(unstakeLockPeriod + withdrawInitiationPeriod) - You have not yet called initiate withdraw
Step 2: Understand the Penalty
Important: Reset lock incurs a penalty!
- Penalty is calculated as:
penalty = (locked sRZR × resetUnstakeLockPenalty) / BASE_DENOMINATOR - The penalty amount is burned (permanently removed)
- Your remaining locked amount will be reduced by the penalty
- Check current
resetUnstakeLockPenaltyparameter on Razorscan Governance
Example:
- If you have 1000 sRZR locked and penalty is 1% (100/10000)
- Penalty = 1000 × 100 / 10000 = 10 sRZR
- Remaining locked = 990 sRZR
Step 3: Find Your Staker ID
You need the Staker ID for your staker:
- Visit the StakeManager contract on the block explorer (links above)
- Go to the "Read Contract" tab
- Find the
getStakerIdfunction - Enter your wallet address
- Click "Query" - the result is your Staker ID
Alternatively, you can find your Staker ID on Razorscan.
Step 4: Navigate to StakeManager Contract
Visit the StakeManager contract on the block explorer:
Click "Connect Wallet" and approve the Metamask connection
Verify your wallet is connected and you're on the correct network (Europa Defi Hub)
Step 5: Execute Reset Unstake Lock Function
Navigate to the "Write Contract" tab
Scroll down and find the
resetUnstakeLockfunctionFill in the parameters:
- stakerId (uint32): Enter your Staker ID from Step 3 (e.g.,
42)
- stakerId (uint32): Enter your Staker ID from Step 3 (e.g.,
Click "Write" to submit the transaction
Review the transaction details in the Metamask popup
Important: Review the penalty that will be charged
Click "Confirm" in Metamask
Important Notes:
- This function only requires the Staker ID parameter
- A penalty will be automatically calculated and deducted
- The penalty amount (in sRZR) is burned
- Your unstake lock will be extended by
unstakeLockPeriod(300 epochs) from the current epoch - After reset, you can call Initiate Withdraw in the new window
Step 6: Verify Transaction
- After confirming in Metamask, wait for the transaction to be processed
- Once confirmed, you'll see a success message in the block explorer
- Click on the transaction hash to view transaction details
- You can verify your reset by:
- Checking the transaction logs for a
ResetUnstakeLockevent - Querying the
locksfunction to see your updated unstake lock with newunlockAfterepoch - Visiting your wallet on Razorscan to see your updated lock status
- Checking the transaction logs for a
Step 7: Next Steps After Reset
After successfully resetting your lock:
- Wait for the new unstakeLockPeriod (300 epochs from current epoch) to pass
- Call Initiate Withdraw within the new
withdrawInitiationPeriodwindow - Don't miss the window again - Set a reminder or calendar alert
- Track your lock status on Razorscan
Common Issues and Troubleshooting
Transaction fails with "Unstake Lock doesnt exist"
- You don't have an active unstake lock
- Verify you've called unstake first
- Check your lock status using Step 1
Transaction fails with "Withdraw Lock exists"
- You have an active withdraw lock
- You cannot reset if you've already called initiate withdraw
- Complete the Withdraw process first
Transaction fails with "staker doesnt exist"
- Invalid Staker ID
- Double-check your Staker ID is correct
Don't see resetUnstakeLock function in Write Contract tab
- Scroll down further in the list
- Ensure you're on the correct StakeManager contract
- Try refreshing the page
Penalty seems too high
- The penalty is proportional to your locked amount
- Check the current
resetUnstakeLockPenaltyparameter on Razorscan Governance - This is by design to discourage missing the withdrawal window
Understanding the Reset Lock Mechanism
Why does reset lock exist?
- When you unstake, you have a limited window to initiate withdrawal
- If you miss this window, your lock expires but your funds remain locked
- Reset lock allows you to restart the process with a penalty
Why is there a penalty?
- To incentivize users to follow the withdrawal process correctly
- To compensate the network for the locked state of funds
- The penalty discourages repeated front-running attempts
How to avoid needing reset lock:
- Set calendar reminders for your withdrawal windows
- Use Razorscan to track your lock status
- Plan ahead and don't miss the
withdrawInitiationPeriodwindow
Timeline After Reset
If you reset lock at epoch T:
- Epoch T: Reset lock called, penalty deducted
- Epoch T+300: Can call Initiate Withdraw
- Epoch T+450: Must call initiate withdraw before this or need to reset again
- Epoch T2 (when initiate withdraw called): Initiate withdraw executed
- Epoch T2+300: Can call Withdraw
Lock Periods
Current network parameters (verify on Razorscan Governance):
- unstakeLockPeriod: 300 epochs (new lock period after reset)
- withdrawInitiationPeriod: 150 epochs (window to call initiate withdraw)
- resetUnstakeLockPenalty: Check governance for current value (e.g., 100/10000 = 1%)
Related Operations
Before this operation:
- Unstake - Must have been completed and window missed
After this operation:
- Wait for new unstakeLockPeriod to pass
- Initiate Withdraw - Don't miss the window this time!
- Withdraw - Final step to claim RAZOR
To avoid this operation:
- Track your lock status carefully
- Set reminders for withdrawal windows
- Use Razorscan to monitor epochs and deadlines