with one click
pump-fee-system
// Complete Pump protocol fee system — tiered protocol fees based on market cap, creator fee collection across two programs, basis point arithmetic, and ceiling division for dust-safe calculations.
// Complete Pump protocol fee system — tiered protocol fees based on market cap, creator fee collection across two programs, basis point arithmetic, and ceiling division for dust-safe calculations.
Build and release pipeline for the Pump SDK — tsup TypeScript builds, Cargo release profiles, semantic release with commitizen, npm publishing, linting, Makefile targets, Vercel deployment, and MCP server distribution.
Read-only query methods for PumpFun claims — unclaimed token rewards, creator vault balances, volume accumulators, distributable fees, and current-day token previews across Pump and PumpAMM programs.
Build and extend the core Pump SDK — an offline-first TypeScript SDK that constructs Solana TransactionInstructions for token creation, buying, selling, migration, and creator fee collection across three on-chain programs (Pump, PumpAMM, PumpFees).
Admin and authority operations for the Pump protocol — set coin creator, update token incentives, set IDL authority, claim cashback, Mayhem mode, and BothPrograms cross-program admin instructions.
AI agent integration layer for the Pump SDK — agent instruction files, .well-known discovery, LLM context documents, 15+ skill files, MCP server prompts, and terminal management rules for GitHub Copilot, Claude, and Gemini.
Constant-product AMM bonding curve math for Pump token pricing — buy/sell quoting, fee-aware calculations, market cap computation, tiered fees, ceiling division, virtual vs real reserves, and edge-case handling.
| name | pump-fee-system |
| description | Complete Pump protocol fee system — tiered protocol fees based on market cap, creator fee collection across two programs, basis point arithmetic, and ceiling division for dust-safe calculations. |
| metadata | {"openclaw":{"homepage":"https://github.com/nirholas/pump-fun-sdk"}} |
Implement and extend the Pump protocol's fee system: tiered protocol fees based on market cap, creator fee collection across two programs, and fee computation with ceiling division.
The Pump protocol charges fees on every buy/sell transaction. Fees flow to protocol fee recipients and token creators. The fee system spans three programs and must handle tokens in both bonding curve and graduated (AMM) states.
| Fee | Recipient | When Charged |
|---|---|---|
| Protocol fee | feeRecipients[] in Global | Every buy/sell |
| Creator fee | Token creator's vault PDA | Every buy/sell (if creator is set) |
| LP fee | Liquidity providers (AMM only) | Post-graduation trades |
When a FeeConfig exists, fees are market-cap-dependent:
function calculateFeeTier({ feeTiers, marketCap }): Fees {
// Iterate tiers in REVERSE order
for (let i = feeTiers.length - 1; i >= 0; i--) {
if (marketCap >= feeTiers[i].marketCapLamportsThreshold) {
return feeTiers[i].fees;
}
}
return feeTiers[0].fees; // fallback to lowest tier
}
function getFee({ global, feeConfig, mintSupply, bondingCurve, amount }): BN {
const { protocolFeeBps, creatorFeeBps } = computeFeesBps(...);
const protocolFee = ceilDiv(amount * protocolFeeBps, 10000);
const creatorFee = hasCreator ? ceilDiv(amount * creatorFeeBps, 10000) : 0;
return protocolFee + creatorFee;
}
Creator fees accumulate in PDAs:
creatorVaultPda(creator) — Pump program vaultammCreatorVaultPda(creator) — PumpAMM program vaultBalance = total lamports - rent exemption minimum.
| Error | Condition |
|---|---|
NoShareholdersError | Empty shareholders array |
TooManyShareholdersError | More than 10 shareholders |
ZeroShareError | Shareholder has shareBps <= 0 |
InvalidShareTotalError | Shares don't sum to 10,000 bps |
DuplicateShareholderError | Duplicate addresses |
ceilDiv) for all fee calculations to prevent dust losssimulateTransaction) for read-only fee queriesbondingCurve.creator != PublicKey.default or it's a new curvecomputeFeesBps returns different results depending on whether feeConfig is null (legacy vs tiered)getMinimumDistributableFee requires transaction simulation — it cannot be computed offlinetransferCreatorFeesToPump is only for graduated tokens — non-graduated tokens will fail