post-graduation fees
a token "graduates" the moment its bonding curve climbs from 30 SOL initial market cap to the 400 SOL migration market cap — roughly ~86 SOL raised. at that instant, the curve closes and the token migrates to a Meteora DAMM v2 pool — a regular AMM, but with a load-bearing twist on the LP-lock policy.
most launchpads consider graduation the end of their fee story. ours is where it gets interesting.
interactive · graduation flow
trades on the Meteora DBC bonding curve. 2.5% total fee — Meteora skims 0.50% off the top; the 2.00% partner cut splits 80/10/10 (1.60% stakers · 0.20% creator · 0.20% treasury).
§the DAMM v2 pool we land in
every hehe.fun curve has migration_option = MET_DAMM_V2 baked into its PoolConfig, so at graduation Meteora DBC seeds a fresh DAMM v2 pool with the curve's accumulated SOL on one side and the unsold token allocation (20% of total supply) on the other.
the load-bearing piece is permanent_lock_position. DAMM v2 lets us lock the partner-side LP forever — it cannot be withdrawn by anyone — but the locked position still accrues trade fees against itself as if it were any other LP position. our fee-distribution program claims those accrued fees on a schedule.
§why permanent-locked LP
the LP itself can never leave the pool — that's the fair-launch property. but the trade fees the LP earns do get claimed, by us, on behalf of the per-token staker pool, the creator, and the treasury.
we pin permanent_lock_position on 100% of the partner-side LP because:
- fair-launch signal. locked-and-unwithdrawable LP cannot be unwound by us or anyone. the pool's underlying liquidity stays forever.
- continuous fee accrual. unlike a burned LP (where the trade-fee share would compound into the pool as untouchable K-growth), permanent-locked LP keeps the fee stream claimable. that's what makes "fees forever" actually fund the staker pool, not just inflate the pool's K.
- no admin dependency. unlike the Raydium-era
creatorFeeslot, the locked-LP claim path doesn't require any platform-admin keys. it's just position ownership.
§the 80 / 10 / 10 split
our fee-distribution program owns the locked LP position, claims the accrued partner fees on a schedule, and splits them deterministically:
the split is enforced by the on-chain fee-distribution program (see staking →). once the program claims from the locked LP, it's the only path the SOL can take out. operators cannot redirect — the routing percentages are written into the program at deploy.
what stakers experience
before graduation: stakers earn from curve trades (2.0% partner cut → 80% to staker pool = trade × 1.60%).
after graduation: stakers earn from the same 2.0% partner cut, now accruing against our locked DAMM v2 position → 80% to the same staker pool = trade × 1.60%.
from the staker's POV, nothing changes between curve and DAMM v2 phases. the same wallet keeps claiming the same way from the same pool. the SOL source shifts under the hood. that's deliberate UX: graduation should be a milestone, not a discontinuity.
a token doing $100k daily volume post-graduation generates $1,600/day of staker pool inflow, perpetually.
what creators get
10% of our 2.0% partner cut forwards to the token creator's wallet — 0.20% of trade value, perpetually, on both sides of graduation:
at $100k/day volume that's $200/day perpetual income for the wallet that launched the token. there is no NFT to transfer — it's a direct routing rule on our distribution program, keyed to the creator address recorded at launch.
the curve and post-graduation creator economics are identical by design. the creator's income doesn't step up or down at graduation — they earn the same 0.20% of trade value from launch through forever. see fee routing →.
§what about non-graduated tokens?
most tokens don't make it to graduation — that's normal for memecoins. but their stakers still earned during their curve phase (1.60% of every trade routed to the staker pool, same as post-graduation). when a token goes inactive, the staker pool stops growing but never shrinks. existing claimable SOL stays claimable forever.
so even a "failed" token doesn't strand stake.