Holder rewards
Earlier holder-reward profiles use time-weighted rewards, settled every 30 minutes. Current launches route fees to the designated wallet instead.
shares_rewards) is written but not yet deployed on this network. Holder reward epochs and claims need that program. Current wallet-routed launches do not need it.Where rewards come from#
Current profiles pay holders 0%. On earlier holder-reward profiles, the fixed holder share is collected in the pair asset and deposited into the market's own reward vault, an on-chain token account that only the rewards program controls.
| Profile | Holders earn |
|---|---|
| 2% to fee wallet | 0% of every trade |
| 4% to fee wallet | 0% of every trade |
Rewards are paid in the pair asset, not in the token you hold: a token paired with SOL pays SOL, one paired with NVDAx pays NVDAx. Paying for a buy in SOL does not change this: on a non-SOL pair, rewards are still paid in the pair asset. They keep flowing after graduation.
Balance-seconds: time-weighted, not snapshots#
Your share of an epoch is weighted by how much you held and for how long:
- Balances across all of your token accounts for the token are added together.
- Holding 1,000 tokens for a full 30-minute epoch counts 1,800,000 token-seconds. Buying the same amount one second before the epoch ends counts 1,000.
- Buying or selling mid-epoch simply changes your balance from that moment on. There is no snapshot to game.
Epochs#
- 1Every 30 minutesEpochs are 1,800-second windows aligned to the clock (the default; the operator can configure it).
- 2CloseShortly after an epoch ends (once indexing has caught up) the keeper totals the holder fees deposited during it, plus anything carried in, and computes every wallet’s balance-seconds from indexed on-chain balance changes.
- 3AllocateThe reward is split pro rata by weight. Integer rounding uses the largest-remainder method, so the allocations add up to the reward exactly. If no wallet is eligible, the whole amount carries forward to the next epoch.
- 4PublishEach wallet’s cumulative total is committed to a Merkle root that is published on chain. From that moment the new rewards are claimable.
The calculation is deterministic: the same on-chain inputs always produce the same allocations and the same root, so anyone with the data can recompute it.
Who does not earn#
Pools and protocol accounts hold tokens but never earn rewards. Excluded:
- The bonding curve’s token vault and the Meteora DBC pool authority.
- After graduation, the DAMM v2 pool authority and its token vault (the locked liquidity).
- The burn (incinerator) address.
- Shares role accounts: treasury, fee claimer, buyback vault and leftover receiver.
- The market’s own reward account and reward vault.
Every other wallet holding the token earns, including the creator's.
Merkle roots#
Entitlements are cumulative: each epoch adds to your running total, which never decreases. The keeper builds a Merkle tree over those totals and only the 32-byte root goes on chain, published by a dedicated root authority key that cannot move funds.
- Root versions must go up by exactly one.
- Total entitlements can never decrease, and can never exceed what has actually been funded into the vault.
- A leaf commits to the market, your wallet, the pair mint and the root version, so a proof cannot be reused elsewhere.
Claiming#
- 1Find what is claimableConnect your wallet on Rewards (all markets) or a token page's Rewards tab.
- 2Press ClaimOne signature per market. Shares builds the claim with your latest proof.
- 3Get paid in the pair assetThe program checks the proof and pays your cumulative entitlement minus what you already claimed, straight to your wallet.
- Claim any time. Skipping epochs never loses rewards, because entitlements are cumulative.
- A second claim for the same amount pays nothing: the program records what each wallet has claimed.
- Your first claim in a market creates a small claim-record account; you pay its one-time rent.
What the program enforces#
- Funds leave a reward vault only through valid claims. There is no admin withdrawal path.
- Only you can claim your leaf (your wallet signs), and only to your own token account.
- Proofs from another market, another pair mint or an outdated root are rejected.
- An admin can pause funding, publishing and claims in an emergency and rotate the root authority, but cannot move funds.
- The root authority publishes allocations but cannot move funds itself. If its key were compromised, the most it could misdirect is a market’s funded-but-unclaimed balance.
