staking & time-weight
staking is how holders extract value from a token's activity. on hehe.fun it's also the simplest staking model we could build: one input (amount), zero choices, automatic time-based reward growth.
this page is both the math and the design principles behind it.
§the formula
your share of the staker pool at time t is:
in english: how much you've staked, times how long you've been staked, divided by the sum of everyone else's stake-time.
every second you remain staked, your numerator ticks up. so does everyone else's. the relative slice you hold changes based on who's been holding longest, weighted by how much.
interactive · time-weight
Bun started on day 0. try staking Choc later — Bun keeps a larger slice for a while because they have more accumulated time-weight. unstake to see the share immediately reset to zero.
play with the simulator — stake Choc later, unstake Bun, see how the shares respond. notice that unstaking instantly drops your share to zero. restaking puts you at the back of the queue.
§why no tiers
every other staking platform in crypto offers tiers: 1 week, 1 month, 3 months, each with a multiplier on rewards. it's a tradition at this point. we tried it, rejected it, and we want to be specific about why.
tier 1: the obvious problem
users have to predict the future. lock for 3 months, the token rugs in 2, you're stuck. lock for 1 week, the token graduates in 5, you missed the upside.
tiers convert a "should I hold longer?" question (which the user can answer dynamically) into a "how long will I want to hold?" question (which nobody can answer at stake time).
tier 2: the gameability problem
every sophisticated staker picks the longest tier with the highest multiplier. it's strictly dominant unless you genuinely need liquidity sooner. so the tier choice converges to a single dominant strategy. you've added UI surface without adding informational content.
tier 3: the math problem
what tier multipliers are trying to reward is exactly this: people who stay longer get more.
but if you want a function where staying longer gets you more, the function is just a linear time multiplier. tiers are a discretized, gappy, gameable approximation of the linear function. you can just use the actual function.
linear has fewer parameters, no user choice, and the same incentive shape. ship the simpler thing.
the philosophical case
design through addition is easy. ("let's add a tier system!")
design through subtraction is the move. ("can we get the same incentive shape with one less concept?")
hehe.fun's staking is what's left after asking that question for everything we considered putting in front of the user. amount, time, share. period.
§what unstaking does
unstaking is instant — there's no cooldown. but it resets your time-weight to zero, which is the entire incentive structure for diamond hands.
so:
- short panic-unstakes destroy real value
- emergencies (need the tokens) are fine — no cooldown to fight
- the system never forces you to hold; the math just makes holding the high-EV move
there is no penalty fee on unstake. you give up your accumulated time-weight, that's the only cost. it's not a punishment, it's just the same rule that built your share in the first place, applied symmetrically.
§projected yield
interactive · yield calculator
rough estimate. real yields fluctuate with volume + the size of total stake weight (which grows as more holders stake longer).
your yield depends on three things:
- the size of your stake relative to the total stake weight
- how long you've been staked relative to other stakers
- the token's actual trading volume (no volume → no fees → no pool growth)
if a token sits dormant, the pool doesn't grow regardless of how perfectly you're staked. yields scale with the token's life.
the pool's inflow rate is 1.60% of every trade, in both the bonding curve phase and post-graduation. it's 80% of our 2.0% partner cut on a 2.5% total trade fee. the source shifts at graduation (curve fees → fees claimed from our locked DAMM v2 LP position), the rate doesn't. see fee routing → for the breakdown.
§edge cases
first staker. you're 100% of the time-weight until someone else stakes. you earn the entire 1.60% of trade volume that's flowing into the staker pool for that period (curve or post-grad — same rate). it doesn't last long once others arrive, but it's not nothing.
second staker arriving late. they start at zero weight while the first staker already has months of weight. they'll catch up only if they hold longer than the first staker holds the rest of their position. time-weight strongly favors incumbents — by design.
no trading volume. the pool doesn't grow. you're still building time-weight, so when activity returns you're positioned to capture more, but the absolute SOL flow is zero in the meantime.
graduation event. nothing happens to your stake. the source of pool inflow shifts from "curve trades" to "fees claimed from our permanently-locked DAMM v2 LP position," but the staker pool's 1.60% inflow rate and your share math are unchanged. see graduation →.
you unstake right before a big trading day. that's the bet you took. the math rewards holding through uncertainty, not timing it.
§what's next
- if your stake is earning, claiming the SOL →
- if you're curious about the curve dynamics, bonding curve mechanics →
- if you want to know what graduation actually does, graduation →