Stake PLOUTO
Staking creates a position: an amount, a fixed lock, and the Gravity that follows from them.
Prerequisites
- A wallet connected to Robinhood Chain — see connect a wallet.
- At least 1 PLOUTO. Smaller amounts revert with
AmountTooSmall. - Enough ETH for two transactions (approval and stake).
Steps
1. Enter an amount
Type it, or use Max to fill your full balance. The form validates as you type:
- Above your balance → Amount exceeds your PLOUTO balance, and the button disables.
- Below 1 PLOUTO → Minimum stake is 1 PLOUTO.
2. Choose a lock
Three terms, three weights:
| Lock | Gravity multiplier |
|---|---|
| 7 days | 1× |
| 30 days | 1.5× |
| 90 days | 2.5× |
The preview updates immediately with the Gravity this position would carry, your projected share of total Gravity, and the exact unlock timestamp.
3. Approve
The first stake requires an ERC-20 approval. The button reads Approve PLOUTO. Plouto requests an allowance for exactly the amount being staked, not an unlimited one.
Sign it, wait for confirmation, and the button becomes Stake.
4. Stake
Sign the second transaction. It calls:
function stake(uint256 amount, uint64 lockDuration) external returns (uint256 positionId)The contract pulls your tokens, measures the balance delta to confirm the exact amount arrived, computes weight, and opens the position.
5. Watch the receipt
The interface reports each state explicitly:
| State | Meaning |
|---|---|
| Awaiting signature | Waiting for you in the wallet. |
| Submitted | Broadcast; hash available. |
| Confirming | In the mempool or awaiting inclusion. |
| Confirmed | Mined successfully. Links to Blockscout. |
| Failed | Reverted or rejected, with the reason. |
Your position list updates automatically on confirmation. No page refresh is needed.
What you now hold
A position with a unique ID, visible under Your positions, showing amount, Gravity, pending ETH, open date and unlock date.
Nothing is transferable — positions are tied to the address that opened them and cannot be sold or moved.
Common reverts
| Error | Cause |
|---|---|
AmountTooSmall(amount) | Below the 1 PLOUTO minimum. |
InvalidLock(duration) | Not exactly 7, 30 or 90 days. |
FeeOnTransferToken(expected, received) | The token taxed the transfer. Should never occur with a standard Pons token. |
EnforcedPause() | Staking is paused. See pausing. |
NotInitialized() | PLOUTO is not registered yet. |