Claim ETH
Rewards accrue continuously as revenue is routed and can be taken at any time, without touching your locked principal.
What claiming does
function claim(uint256 positionId) external returns (uint256 amount)It pays out everything currently pending for that position and updates its rewardDebt so the same rewards cannot be claimed twice. It does not modify amount, weight or unlockAt.
A position can be claimed any number of times during its lock.
Steps
- Open Gravity with your wallet connected.
- Find the position. Pending ETH shows what is claimable right now.
- Select Claim ETH. The button is disabled when pending is zero — the contract would revert with
NothingToClaim(). - Sign, and watch the receipt states through to Confirmed.
ETH arrives directly in your wallet. There is nothing to unwrap and no separate withdrawal step.
Claiming several at once
function claimMany(uint256[] calldata positionIds) external returns (uint256 amount)Harvests each position, sums the total and sends one transfer. Positions with nothing pending are skipped rather than reverting, so a mixed batch works. The call reverts only if every position yields zero.
This is meaningfully cheaper than claiming individually when you hold several positions.
When to claim
There is no mechanical reason to rush. Pending rewards are held by the staking contract and an invariant asserts it always holds enough ETH to honour them:
address(staking).balance >= totalRewardsReceived - totalRewardsClaimedUnclaimed rewards do not compound — Plouto has no auto-compounding, since rewards are ETH and principal is PLOUTO. Leaving them unclaimed simply leaves them where they are.
The practical consideration is gas: claiming a very small amount can cost more than it collects.
Claiming is safe against reentrancy
claim is nonReentrant and strictly effects-before-interactions. The internal harvest performs no transfer at all — it only updates state — and the ETH send happens afterwards.
A test drives a contract that attempts to re-enter claim from its receive() and confirms nothing is drained.
What you forfeit if you never claim
Nothing, under normal circumstances. Unclaimed rewards are paid out automatically when you withdraw at maturity.
The one exception is the emergency path: emergencyWithdraw returns principal only and forfeits unclaimed rewards, which are then recirculated to remaining stakers. See emergency withdrawal.