07 / 09 All mechanics

Staking

Stake ZINC to earn a share of protocol buybacks, and extra Bricks.

Beginner

Staking is a way to put your ZINC to work instead of letting it sit idle.

  1. You lock some ZINC into the protocol’s staking vault.
  2. While it is locked, the protocol uses fees it has collected to buy ZINC back from the open market.
  3. Most of that bought-back ZINC is destroyed forever. Burning tokens shrinks the total supply, which makes each remaining ZINC scarcer.
  4. A smaller slice of that bought-back ZINC is handed out to people who are staking, as a reward.
  5. The longer your ZINC stays staked, the more of those rewards build up for you.
  6. Whenever you like, you can claim your rewards or unlock your ZINC and take it back out.

So staking earns you a cut of what the protocol buys back, while the bigger burned portion quietly makes the whole supply tighter, a win for holders either way.

Intermediate

Here is how the rewards actually flow, using the example split shown in the art.

  1. The protocol collects fees and uses them to buy ZINC from the market.
  2. That bought ZINC is split. Roughly 90% is “melted”: burned permanently and removed from supply.
  3. The remaining ~10% is set aside as the reward pool for stakers.
  4. Your share of that pool is proportional to how much you have staked relative to everyone else.
  5. You can claim your accumulated ZINC at any time, or unstake to withdraw your principal.
  6. Claiming has a bonus: the ZINC rewards you collect also grant you extra Bricks, the tickets used for the Stockpile jackpot.

These percentages are an example; the real split is config-driven and read live from the chain. The takeaway is that staking yield is funded by buybacks, and the large melted portion keeps ZINC deflationary while you earn.

Advanced

On-chain, staking rewards are factor-based rather than per-block accrual.

  1. stake(amount) and unstake(amount) move ZINC in and out of the staking vault, updating Treasury.total_staked.
  2. The treasury tracks a global staking_rewards_factor. Your StakePosition stores a rewards_factor_checkpoint from when you last interacted.
  3. Claimable yield is roughly balance · (treasury.staking_rewards_factor − position.rewards_factor_checkpoint), so you accrue exactly the factor growth since your checkpoint.
  4. Newly funded rewards do not unlock instantly; they vest over staking_reward_vesting_slots, smoothing payouts across time.
  5. claim_staking_yield pays out ZINC and also issues Stockpile Bricks at staking_bricks_per_zinc_x10k.
  6. The reward pool is fed by melt and buybacks: melt routes ZINC into the shared melt sink, a deflationary action that simultaneously supports staking yield.

Because the factor only ever rises and your checkpoint advances on each action, rewards are deterministic and verifiable.