Pump.fun Creator Rewards API: Fees, Claims, Fee Sharing
Every Pump.fun trade pays a creator fee into the coin creator's vault. The creator claims it later, splits it with shareholders, or, on a holder rewards coin, never sees it because it goes to holders. The Bitquery Pump.fun creator rewards API reads each step from the Solana chain: the fee earned on every trade, the unclaimed vault balance, claims, sweeps, fee-sharing payouts and creator changes. Fees on the bonding curve are in the Pump.fun program (6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P); fees after graduation are in PumpSwap (pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA).
All queries on this page run in the Bitquery IDE on the real-time dataset, which keeps about 8 hours of Solana instructions. To stream any of them, change query to subscription and remove limit and orderBy.
Related pages: Pump.fun API for trades, launches and prices, and Pump.fun Holder Rewards and Cashback API for coins that pay their fees to holders.
A three-minute walkthrough, Pump.fun Creator Rewards and Holder Rewards API, runs these queries live and shows where to get the history beyond 8 hours.
How creator rewards move
| Step | Program | Instruction | Event and fields |
|---|---|---|---|
| Earned on each trade | Pump.fun | every buy and sell | TradeEvent: mint, creator, creator_fee_basis_points, creator_fee, creator_fee_unclaimed, quote_mint |
| Swept into the vault | Pump.fun, PumpSwap | sweep_creator_fee | SweepBondingCurveFeeEvent, SweepPoolFeeEvent: mint, quote_mint, recipient, amount |
| Moved from PumpSwap to the Pump.fun vault | PumpSwap | transfer_creator_fees_to_pump, transfer_creator_fees_to_pump_v2 | balance updates |
| Claimed by the creator | Pump.fun, PumpSwap | collect_creator_fee, collect_creator_fee_v2, collect_coin_creator_fee | CollectCreatorFeeEvent: creator, creator_fee, quote_mint |
| Split with shareholders | Pump.fun | distribute_creator_fees, distribute_creator_fees_v2 | DistributeCreatorFeesEvent: mint, admin, shareholders, distributed, quote_mint |
| Creator changed | Pump.fun, PumpSwap | migrate_bonding_curve_creator, admin_cto, admin_cto_pool | MigrateBondingCurveCreatorEvent, AdminCtoEvent: mint, old_creator, new_creator |
In a six-hour sample on 2026-10-26 the Pump.fun program ran about 8,800 creator fee claims (split evenly between collect_creator_fee and collect_creator_fee_v2), 21,000 creator fee sweeps, 9,000 fee-sharing distributions and 700 creator migrations. Query both the v1 and v2 instruction names; filtering on collect_creator_fee alone misses half the claims.
Fee amounts are paid in the coin's quote mint. Most coins trade against SOL, but coins can also be paired with another pump coin such as PUMP, or with tokens such as WBTC. Event arguments carry raw integer amounts in the quote mint's smallest unit; balance updates carry decimal amounts and USD.
Latest creator reward claims
Each row is one claim: the wallet that received the fee, the amount and its USD value, and which program paid it. BalanceUpdate.Amount greater than zero keeps the receiving side of each transfer.
query PumpfunCreatorRewardClaims {
Solana {
InstructionBalanceUpdates(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {Instruction: {Program: {Address: {in: ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"]}, Method: {in: ["collect_creator_fee", "collect_creator_fee_v2", "collect_coin_creator_fee"]}}}, BalanceUpdate: {Amount: {gt: "0"}}, Transaction: {Result: {Success: true}}}
) {
Block {
Time
}
Transaction {
Signature
Signer
}
Instruction {
Program {
Address
Method
}
}
BalanceUpdate {
Account {
Address
Token {
Owner
}
}
Amount
AmountInUSD
Currency {
Symbol
MintAddress
}
}
}
}
}
Top Pump.fun creators by rewards claimed
Ranks receiving wallets by the creator fees they claimed in the real-time window. The Signer filter drops claims that pump.fun runs for holder rewards coins (see Pitfalls).
query PumpfunTopCreatorsByRewardsClaimed {
Solana {
InstructionBalanceUpdates(
limit: {count: 20}
orderBy: {descendingByField: "rewards_usd"}
where: {Instruction: {Program: {Address: {in: ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"]}, Method: {in: ["collect_creator_fee", "collect_creator_fee_v2", "collect_coin_creator_fee"]}}}, BalanceUpdate: {Amount: {gt: "0"}}, Transaction: {Result: {Success: true}, Signer: {not: "HckQ93Xqjjo8mwt5pNPWvyCTZXQZ858rvzmm7ZRrZg9t"}}}
) {
BalanceUpdate {
Account {
Address
}
}
claims: count
rewards: sum(of: BalanceUpdate_Amount)
rewards_usd: sum(of: BalanceUpdate_AmountInUSD)
}
}
}
Creator rewards claimed by one wallet
Totals for one creator wallet: number of claims, first and last claim time, and the amount claimed in SOL and USD. Replace the address with the creator you want.
query PumpfunCreatorRewardsClaimedByWallet {
Solana {
InstructionBalanceUpdates(
where: {Instruction: {Program: {Address: {in: ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"]}, Method: {in: ["collect_creator_fee", "collect_creator_fee_v2", "collect_coin_creator_fee"]}}}, BalanceUpdate: {Account: {Address: {is: "F5fu9khC4jE4M5rX6ukm3VfUMGVKRVSp5DBsJkbHx8Sm"}}, Amount: {gt: "0"}}, Transaction: {Result: {Success: true}}}
) {
Block {
first_claim: Time(minimum: Block_Time)
last_claim: Time(maximum: Block_Time)
}
claims: count
rewards_sol: sum(of: BalanceUpdate_Amount)
rewards_usd: sum(of: BalanceUpdate_AmountInUSD)
}
}
}
Unclaimed creator rewards for a Pump.fun coin
The latest TradeEvent for a mint carries creator_fee_unclaimed: the balance of the creator's vault right after that trade. It also shows the creator fee rate and the fee that trade paid. This is the number a creator rewards calculator needs. Replace the mint with the coin you want.
query PumpfunUnclaimedCreatorRewards {
Solana {
Instructions(
limit: {count: 1}
orderBy: {descending: Block_Time}
where: {Instruction: {Program: {Address: {is: "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"}, Method: {is: "TradeEvent"}, Arguments: {includes: {Name: {is: "mint"}, Value: {Address: {is: "555vsKfrU6FweWbdgWydj1JoC4c7UKyNYeYxFCxmA6f9"}}}}}}, Transaction: {Result: {Success: true}}}
) {
Block {
Time
}
Transaction {
Signature
}
Instruction {
Program {
Arguments {
Name
Value {
... on Solana_ABI_Address_Value_Arg {
address
}
... on Solana_ABI_BigInt_Value_Arg {
bigInteger
}
... on Solana_ABI_Boolean_Value_Arg {
bool
}
... on Solana_ABI_String_Value_Arg {
string
}
... on Solana_ABI_Json_Value_Arg {
json
}
}
}
}
}
}
}
}
Read creator, creator_fee_basis_points, creator_fee, creator_fee_unclaimed and quote_mint from the arguments. Divide the amounts by the quote mint's decimals: 9 for SOL, 6 for most pump coins.
Pump.fun coins launched with a custom creator fee
create_v2 takes a creator_fee_bps argument. Coins created with a value above zero set their own creator fee rate. The first account of the instruction is the new mint.
query PumpfunCoinsWithCustomCreatorFee {
Solana {
Instructions(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {Instruction: {Program: {Address: {is: "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"}, Method: {is: "create_v2"}, Arguments: {includes: {Name: {is: "creator_fee_bps"}, Value: {BigInteger: {gt: "0"}}}}}}, Transaction: {Result: {Success: true}}}
) {
Block {
Time
}
Transaction {
Signature
Signer
}
Instruction {
Accounts {
Address
}
Program {
Arguments {
Name
Value {
... on Solana_ABI_Address_Value_Arg {
address
}
... on Solana_ABI_BigInt_Value_Arg {
bigInteger
}
... on Solana_ABI_Boolean_Value_Arg {
bool
}
... on Solana_ABI_String_Value_Arg {
string
}
}
}
}
}
}
}
}
Pump.fun fee-sharing payouts
Coins with fee sharing split the creator fee among shareholders. Each DistributeCreatorFeesEvent lists the shareholders with their share_bps (10,000 = 100%) and the amount distributed. This query keeps distributions that paid out more than zero. The mint argument on each row tells you which coin paid.
query PumpfunFeeSharingPayouts {
Solana {
Instructions(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {Instruction: {Program: {Address: {is: "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"}, Method: {is: "DistributeCreatorFeesEvent"}, Arguments: {includes: {Name: {is: "distributed"}, Value: {BigInteger: {gt: "0"}}}}}}, Transaction: {Result: {Success: true}}}
) {
Block {
Time
}
Transaction {
Signature
}
Instruction {
Program {
Arguments {
Name
Value {
... on Solana_ABI_Address_Value_Arg {
address
}
... on Solana_ABI_BigInt_Value_Arg {
bigInteger
}
... on Solana_ABI_Json_Value_Arg {
json
}
}
}
}
}
}
}
}
Pump.fun creator fee sweeps
Fees kept on a bonding curve or a PumpSwap pool stay there until someone runs sweep_creator_fee, which anyone can call. Creators, CTO owners and fee-sharing setups sweep before they collect. The events name the mint, the recipient and the swept amount.
query PumpfunCreatorFeeSweeps {
Solana {
Instructions(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {Instruction: {Program: {Address: {in: ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"]}, Method: {in: ["SweepBondingCurveFeeEvent", "SweepPoolFeeEvent"]}}}, Transaction: {Result: {Success: true}}}
) {
Block {
Time
}
Transaction {
Signature
}
Instruction {
Program {
Address
Method
Arguments {
Name
Value {
... on Solana_ABI_Address_Value_Arg {
address
}
... on Solana_ABI_BigInt_Value_Arg {
bigInteger
}
... on Solana_ABI_Integer_Value_Arg {
integer
}
}
}
}
}
}
}
}
Pump.fun creator changes and community takeovers
A coin's creator can change after launch. migrate_bonding_curve_creator moves the creator to a fee-sharing config, and admin_cto / admin_cto_pool hand a coin to a community takeover (CTO) owner. Both events carry old_creator and new_creator; AdminCtoEvent also carries the old and new creator fee rate.
query PumpfunCreatorChangesAndCto {
Solana {
Instructions(
limit: {count: 20}
orderBy: {descending: Block_Time}
where: {Instruction: {Program: {Address: {in: ["6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P", "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"]}, Method: {in: ["MigrateBondingCurveCreatorEvent", "AdminCtoEvent", "AdminCtoPoolEvent"]}}}, Transaction: {Result: {Success: true}}}
) {
Block {
Time
}
Transaction {
Signature
}
Instruction {
Program {
Method
Arguments {
Name
Value {
... on Solana_ABI_Address_Value_Arg {
address
}
... on Solana_ABI_BigInt_Value_Arg {
bigInteger
}
... on Solana_ABI_Boolean_Value_Arg {
bool
}
}
}
}
}
}
}
}
To find who actually deployed a coin, read the signer of its create or create_v2 instruction, as in token creation and dev address. The creator on later trade events is the current fee recipient, which may no longer be the deployer.
Pitfalls
- About 8 hours of history.
InstructionsandInstructionBalanceUpdateson Solana are real-time only;archiveandcombinedreturn "no API tables" for them. For lifetime creator earnings, run the claim query as a subscription or read the Solana Kafka streams and store the rows yourself. - Two instruction versions. Claims arrive as
collect_creator_feeandcollect_creator_fee_v2, and fee sharing asdistribute_creator_feesanddistribute_creator_fees_v2. Filter on both names. - Claims pump.fun runs itself. On holder rewards coins the creator fee goes to holders. The signer
HckQ93Xqjjo8mwt5pNPWvyCTZXQZ858rvzmm7ZRrZg9tcollects those vaults so it can pay holders. Exclude it when you rank creators, and use the holder rewards page for those payouts. - The vault belongs to the creator, not the coin.
creator_fee_unclaimedis the creator's vault balance, so a creator with several coins sees one balance across them. - Not always SOL.
quote_mintcan be another pump coin, WBTC, a tokenized stock or other SPL tokens. Raw event amounts use that mint's decimals. Balance-update amounts are already in decimal form. For an SPL fee, the receiving account is a token account, so read the wallet fromBalanceUpdate.Account.Token.Owner. - The
creatorfield is mutable. Fee-sharing migrations and community takeovers rewrite it. Use the create instruction's signer for the original deployer.
Frequently Asked Questions
What are Pump.fun creator rewards?
A share of every trade on a Pump.fun coin that goes to the coin's creator vault. The rate is reported on each TradeEvent as creator_fee_basis_points, and the creator claims the balance with collect_creator_fee or collect_creator_fee_v2, or collect_coin_creator_fee after the coin graduates to PumpSwap.
How do I check unclaimed Pump.fun creator rewards?
Read creator_fee_unclaimed from the latest TradeEvent of the coin, as in the unclaimed rewards query. It is the creator vault balance right after that trade, in the quote mint's smallest unit.
How do I see how much a Pump.fun creator has earned?
Sum the positive balance updates of collect_creator_fee, collect_creator_fee_v2 and collect_coin_creator_fee for the creator wallet. The real-time dataset covers about 8 hours, so store a subscription for longer totals.
How does Pump.fun fee sharing show up on-chain?
As distribute_creator_fees and distribute_creator_fees_v2 instructions. Each DistributeCreatorFeesEvent lists the shareholders with share_bps and the amount distributed.
Can a Pump.fun coin's creator change?
Yes. migrate_bonding_curve_creator moves the creator to a fee-sharing config, and admin_cto or admin_cto_pool assign a community takeover owner. Both events carry old_creator and new_creator.
Ready to run this in production?
Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.