Board Launch Rewards Teardown Launch a bag
Teardown

What we read, what we rebuilt

pump.fun's holder rewards, from its own public docs and IDL: HOLDER_REWARDS_README.md and idl/pump.json. We are not pump.fun and run none of its code: the mechanism is rebuilt on Raydium LaunchLab.

pump.funWhat it does thereWhat BAGHOLDR does on Raydium
distribute_fee_to_holders(amounts)Pays a coin's holders out of its holder_rewards account. The amounts arrive as a list, one per recipient, worked out off chain.The creator's wallet claims its LaunchLab fee vault and sends each holder a SOL transfer, pro rata by balance, worked out in your browser from chain balances.
holder_reward_claim_authorityOne global key, set by pump.fun's admin, signs every payout.Only the coin's creator wallet can claim its vault, so only the creator can press pay. The site refuses any other wallet before the popup.
holder_rewards (per mint)One holder-rewards account per coin holds that coin's creator fee.LaunchLab keeps ONE creator fee vault per creator wallet, across all its coins. A claim takes all of it, and the payout sends all of it to the holders of the coin you press on.
HolderRewardRecipientsMismatchThe amounts and the recipient accounts must match one for one.Native SOL only: one system transfer per wallet, built from the same list that's shown on the page.
HolderRewardTokenAccountMissingOn a token quote, a holder-rewards token account is required.SOL quote only. The claim lands in wrapped SOL and is closed back to SOL in the same transaction, then sent on.
HolderRewardsRentFloorThe holder-rewards account can't be left below its rent-exempt minimum.A holder whose wallet would still sit under Solana's rent floor can't receive SOL. That share stays with the creator, and the coin page lists it.
DistributeFeeToHoldersEvent { recipients, total }Each payout emits how many were paid and the total.Each payout transaction carries this pad's key and a memo (bagholdr|holders|<mint>|<lamports>|i/n). The coin page and Rewards read the history back from chain with nothing else.
update_holder_reward_configAdmin only. Sets is_holder_reward_enabled and holder_reward_claim_authority.No switch and no authority key: any coin launched here has holder rewards, and its creator is the one who pays.
create_v2(…, is_holder_reward)A holder-rewards coin records a pump.fun controlled address as its creator, so no person can claim the fee.The creator stays a wallet (LaunchLab needs one). The rules (top N, minimum bag, exclusions) are locked into the coin's metadata under extensions.holderRewards.
TradeEvent.holder_rewards_bpsTrades report the creator fee rate and amount that went to holders.The creator fee is LaunchLab's: 0.05% of each trade, read from the platform account on every coin page.
HolderRewardCreatorImmutableA holder-rewards coin's creator can never be changed.The fee vault is keyed to the creator wallet recorded in the pool, and only that wallet can claim it, so only that wallet can pay holders.

What runs where

Raydium's program enforces

The curve, the 85 SOL raise and graduation, every fee (protocol 0.25%, platform 0.75%, creator 0.05%), and that only the creator's wallet can claim its fee vault.

The signed transaction does

Claims the whole vault and sends each listed holder their SOL in the same signing. One wallet popup, as many transactions as the holder count needs, each one checkable on Solscan.

The creator decides

When to press the button. Raydium's program doesn't know the holder rules: they live in the coin's metadata, and this site works out the split from them and from chain balances every time.