.agents/skills/pump-fee-system/SKILL.md
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.
npx skillsauth add x402agent/solana-clawd pump-fee-systemInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 faildevelopment
Formally verify programs by writing Lean 4 proofs. Trigger this skill whenever the user wants to formally verify code, generate Lean 4 proofs, prove properties about algorithms or smart contracts, verify invariants, convert program logic into formal specifications, or anything involving Lean 4 and formal verification. Also trigger when the user mentions "qedgen", "lean proof", "formal proof", "verify my code", "prove correctness", "formal verification", or wants mathematical guarantees about their implementation.
data-ai
Orchestrate multi-bot trading swarms on Pump.fun with persona-driven agents
tools
End-to-end Solana development playbook (Jan 2026). Prefer Solana Foundation framework-kit (@solana/client + @solana/react-hooks) for React/Next.js UI. Prefer @solana/kit for all new client/RPC/transaction code. When legacy dependencies require web3.js, isolate it behind @solana/web3-compat (or @solana/web3.js as a true legacy fallback). Covers wallet-standard-first connection (incl. ConnectorKit), Anchor/Pinocchio programs, Codama-based client generation, LiteSVM/Mollusk/Surfpool testing, and security checklists.
tools
Buy and sell tokens on Pump.fun bonding curves and AMM pools