How it works
Where every creator fee goes
$CHARITY doesn't pick one charity. Every creator fee goes to charities on donate.gg, down a public queue of every charity donate.gg lists, a new one every 3 minutes.
Someone trades $CHARITY
pump.fun charges its creator fee on every buy and sell.
100% to the treasury
pump.fun fee sharing sends the whole creator fee to one wallet. The split is locked on pump.fun.
The queue picks the charity
Every 3 minutes, on the clock, the next charity in line takes over.
Donated every minute
The treasury donates what it holds to that charity through donate.gg's program on Solana.
donate.gg pays the charity
Converted to USDC and paid out by donate.gg, minus its 3% fee.
The money
$CHARITY uses pump.fun fee sharing with one shareholder: the Charity treasury, at 100%. pump.fun allows that setting to be changed once and then locks it, so nobody, including us, can point the fees anywhere else. You can read it on Solana: the fee sharing config of the coin lists a single shareholder and shows the admin as revoked.
The treasury claims fees from pump.fun as they build up. Every minute, and right after each claim, it donates its whole balance above a small float to the charity whose turn it is. The float (0.02 SOL) only pays Solana network fees, a fraction of a cent per transaction.
Treasury: – · open on Solscan
The queue
- Charities that have onboarded with donate.gg go first, then every other charity donate.gg lists. Charities donate.gg adds later join the back.
- A turn is 3 minutes and switches on the clock, at :00, :03, :06 and so on, UTC. Every creator fee that arrives during a turn goes to that turn's charity.
- That is 480 charities a day. A full lap of every charity on donate.gg takes about 12 days, then it starts again.
- After the last charity in line, the queue starts over from the top.
- The Queue page shows every charity's place and the exact time its turn starts.
The charities
The list comes straight from donate.gg's public API: every charity it lists, with its name, logo, mission, location and tax id. Every one of them is in the queue.
How a donation is made
The treasury calls donate.gg's own Donation Relay program on Solana (RLAYHr9TRFcKB2ubYQhspcnXiaGpaVzNQvHytt47RZu) with the charity's donate.gg config id and a message, for example Charity round 42: Breast Cancer Research Foundation. The SOL lands in that charity's donate.gg escrow on chain. donate.gg's relayer converts it to USDC and pays the charity, the same way it settles every donation it receives.
donate.gg charges 3% on these direct donations.
The first time a charity receives a donation on Solana, donate.gg's program opens an account for it. Opening it costs about 0.0037 SOL of rent, a little over $0.30, paid once per charity from the treasury on top of that donation. It isn't part of the donation and doesn't reach the charity. Most charities on donate.gg haven't received anything on Solana yet, so during the first lap of the queue most turns open an account. After that, a charity's turns cost nothing extra. Every donation that opened an account is marked on the Donations page.
Some charities on donate.gg haven't onboarded yet; donate.gg lists them from public nonprofit records and holds their donations until they do. Each charity page says which is the case.
Check it yourself
- Every donation is a Solana transaction from the treasury to donate.gg's program, with a message naming the round and the charity.
- The treasury's full history is public on Solscan, so you can add up what came in and what went out.
- Each charity page lists every donation it received from us, with links, and its escrow account on donate.gg.
Questions
Why a queue instead of one charity?
Because every charity in the list gets a turn, and anyone can see when. A single coin backs one cause; this one reaches all of them, one at a time, around the clock.
Can the team take a cut?
No. The fee sharing config has one shareholder, the treasury, at 100%, and it is locked. The treasury only donates to charities in the queue, and every transaction is public.
Does every lamport reach the charity?
Everything above a 0.02 SOL float is donated. Three things come off along the way, all visible on chain: the Solana network fee (a fraction of a cent per donation), donate.gg's 3% fee, and the one-time account opening fee of about 0.0037 SOL for a charity that has never received a donation on Solana.
What if nobody trades during a turn?
Then that charity's turn passes with whatever came in, even nothing, and the queue moves on. It gets another turn in the next lap.
Can a charity be added or removed?
The list follows donate.gg. New charities on donate.gg join the back of the queue. A charity that leaves donate.gg leaves the queue too.
Is Charity run by donate.gg or pump.fun?
No. It uses pump.fun's fee sharing and donate.gg's public donation program, but it isn't affiliated with either.