FAQ & troubleshooting
Common Issues
- Insufficient reward balance:
- Ensure reward tokens are transferred to the staking contract before notification
- Check that the reward notifier has sufficient balance or approval
- Oracle operations
- If using an oracle-based calculator, tools like OpenZeppelin Defender can push earning power updates on-chain
- The PauseGuardian should monitor the oracle’s updates and react quickly if the oracle goes offline or posts incorrect earning power
- Earning power not updating:
- Earning power doesn’t automatically update.
- Anyone can run a bot to update earning power. There’s an economic incentive for MEV searchers to do updates, but they might not know about the incentive.
- We recommend running the scripts in the staker-bots repo as a backup, in case the MEV searchers don’t.
How often do rewards get distributed, and how is earning power recalculated?
The REWARD_INTERVAL is configurable when deploying a new reward source. When there’s a new reward, the staking system updates everyone’s reward schedules based on earning power. The rewards are distributed over a period of time, the REWARD_DURATION.
How does the system handle vote checkpoints/snapshots?
The underlying governance token handles snapshotting. Staker puts the governance tokens for each delegate into a separate account, called a “surrogate”. Then, it calls delegate() on the underlying governance token to distribute voting power. This way, the underlying governance system does not have to change.