Charity Recipients
Route Pump.fun creator fees to registered charities via pump_fee_shareholders.
You can route a portion (or 100%) of creator fees to one or more registered charities through Pump.fun's on-chain donation system. Charities are identified by a single charity-config pubkey that aggregates one or more charity beneficiaries with weights.
This page documents the type: "charity" entry in pump_fee_shareholders and the two endpoints used to obtain the config pubkey.
Shape inside pump_fee_shareholders
A charity entry looks like a regular address entry but must include "type": "charity" (otherwise it is treated as a plain wallet):
{ "type": "charity", "address": "<charity_config_pubkey>", "share_bps": 10000 }Aliases accepted for the pubkey field: address, charity_address, charity_config.
The <charity_config_pubkey> is not a wallet — it's the on-chain config returned by the resolve endpoint below. The deploy server will then derive a per-(mint × charity) donation fee PDA as ["donation-fee-pda", mint, charity_address] and create it in the same transaction as the fee-sharing config when needed. You don't have to do anything else — just pass the resolved pubkey.
You can mix a charity entry with regular wallet / GitHub / Twitter entries; only the sum to 10000 bps rule applies.
Resolving charities → charity_config_pubkey
Use the public utility endpoints on https://nyc.j7tracker.io/utils (no auth required, same host the J7Tracker deploy modal uses).
GET /utils/charity/search
Search the registry by name to discover charity IDs to use in resolve.
| Query | Type | Required | Description |
|---|---|---|---|
term | string | yes | 2–64 chars, charity name fragment (e.g. St Jude) |
limit | number | no | Default 10 |
Returns a JSON object whose response field is an array of charities. Each item includes id, name, slug, logo, city, state, country, taxId, website. Save the id of each charity you want to support.
curl "https://nyc.j7tracker.io/utils/charity/search?term=st%20jude&limit=10"POST /utils/charity/resolve
Bundles 1–5 charity IDs + integer weights (must sum to 100) into a single on-chain config pubkey. Use the returned id as charity_address in pump_fee_shareholders.
Body:
{
"charityBeneficiaries": [
{ "charityId": "<id_from_search>", "weight": 60 },
{ "charityId": "<id_from_search>", "weight": 40 }
]
}Response:
{ "id": "<charity_config_pubkey>" }curl -X POST "https://nyc.j7tracker.io/utils/charity/resolve" \
-H "Content-Type: application/json" \
-d '{"charityBeneficiaries":[{"charityId":"abc123","weight":60},{"charityId":"def456","weight":40}]}'End-to-end examples
100% of creator fees split across two charities (60% / 40%):
{
"type": "create_token",
"session_id": "<jwt>",
"api_key": "<encrypted>",
"mode": "pump",
"name": "My Pump Token",
"ticker": "PUMP",
"buy_amount": 5,
"pump_fee_shareholders": [
{ "type": "charity", "address": "<charity_config_pubkey from /utils/charity/resolve>", "share_bps": 10000 }
]
}Mixed: 50% to a wallet, 50% to a charity blend:
{
"type": "create_token",
"session_id": "<jwt>",
"api_key": "<encrypted>",
"mode": "pump",
"name": "My Pump Token",
"ticker": "PUMP",
"buy_amount": 5,
"pump_fee_shareholders": [
{ "address": "Wallet111...", "share_bps": 5000 },
{ "type": "charity", "address": "<charity_config_pubkey>", "share_bps": 5000 }
]
}Notes & limits
- 1–5 charities per resolve call. Weights are integers and must sum to 100.
- The resolve endpoint is idempotent for a given
(charityId, weight)set — the same input always returns the same config pubkey. - The same
charity_config_pubkeycan be reused across many token deploys. The donation fee PDA (per-mint) is created automatically on first use for each new mint. - Charity entries are eligible for the buyback server's fast-claim path (≈ every 1.5 min) on the deploy backend, same as regular non-agent shareholders.