Skip to main content

Staking

Mining is for buyers. Staking is for holders. Both run on the same hourly clock, both share the same v4 hook, and both stop when emissions are exhausted. When you stake GEODE, your share of the staking vault grows in value as the hook drips fresh emissions into the vault each round. There’s no separate “claim rewards” button — your share price ratchets up automatically.

The vault in one paragraph

The staking vault is a non-upgradeable contract paired with the GEODE pool. You deposit GEODE, you receive vault shares. Anyone can poke() the vault (or your own deposit/withdraw call will trigger it) to pull the next batch of emissions from the hook into the vault. Your shares stay constant, but each share is now worth slightly more GEODE.

Allocation

Distributed pro-rata across all shares in the vault that round. If nobody is staked when a round settles, that round’s emission is not minted — same skipped-round rule as mining.

Two exit paths

Slow exit — no penalty

  1. Call requestUnstake(shares). Your redemption value is snapshotted right then.
  2. Wait 7 days. Pending withdrawals don’t earn yield during the cooldown.
  3. Call claimUnstake(requestId). Receive the snapshotted GEODE.

Instant exit — 15% fee

Call instantExit(shares). You immediately receive 85% of your redemption value (principal + accrued yield). The other 15% is burned to the dead address.The burn is symmetric — it does not dilute or boost remaining stakers.

Auto-compounding, by design

You’ll never call “claim rewards” on the staking vault. The structure makes that unnecessary:
  • The hook mints emissions into the vault contract when the vault settles its clock.
  • Your share count never changes.
  • The vault’s underlying GEODE balance grows.
  • Therefore each share is worth more GEODE every settled round.
That means zero gas cost to compound. You only pay gas on stake, requestUnstake, instantExit, and claimUnstake.

Things to know

  • First-depositor protection: the vault uses a virtual-shares offset, so you don’t have to worry about being sandwiched on the first deposit.
  • No admin keys. No pause switch, no fee toggle, no emergency exit. The vault behaves exactly the same way on day 1 and day 1,000.
  • Anyone can poke(). If you want to settle the vault without staking or unstaking, just call poke(). The vault advances its clock and pulls any owed emissions from the hook.
  • Vault is permissionless. Only the registered vault address can call mintStakingFor on the hook, but any wallet can interact with the vault itself.