Skip to main content

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​

StepProgramInstructionEvent and fields
Earned on each tradePump.funevery buy and sellTradeEvent: mint, creator, creator_fee_basis_points, creator_fee, creator_fee_unclaimed, quote_mint
Swept into the vaultPump.fun, PumpSwapsweep_creator_feeSweepBondingCurveFeeEvent, SweepPoolFeeEvent: mint, quote_mint, recipient, amount
Moved from PumpSwap to the Pump.fun vaultPumpSwaptransfer_creator_fees_to_pump, transfer_creator_fees_to_pump_v2balance updates
Claimed by the creatorPump.fun, PumpSwapcollect_creator_fee, collect_creator_fee_v2, collect_coin_creator_feeCollectCreatorFeeEvent: creator, creator_fee, quote_mint
Split with shareholdersPump.fundistribute_creator_fees, distribute_creator_fees_v2DistributeCreatorFeesEvent: mint, admin, shareholders, distributed, quote_mint
Creator changedPump.fun, PumpSwapmigrate_bonding_curve_creator, admin_cto, admin_cto_poolMigrateBondingCurveCreatorEvent, 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.

Run it in the IDE ➤

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).

Run it in the IDE ➤

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.

Run it in the IDE ➤

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.

Run it in the IDE ➤

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.

Run it in the IDE ➤

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.

Run it in the IDE ➤

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.

Run it in the IDE ➤

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.

Run it in the IDE ➤

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. Instructions and InstructionBalanceUpdates on Solana are real-time only; archive and combined return "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_fee and collect_creator_fee_v2, and fee sharing as distribute_creator_fees and distribute_creator_fees_v2. Filter on both names.
  • Claims pump.fun runs itself. On holder rewards coins the creator fee goes to holders. The signer HckQ93Xqjjo8mwt5pNPWvyCTZXQZ858rvzmm7ZRrZg9t collects 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_unclaimed is the creator's vault balance, so a creator with several coins sees one balance across them.
  • Not always SOL. quote_mint can 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 from BalanceUpdate.Account.Token.Owner.
  • The creator field 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.

Build with Bitquery

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.