pump-admin-ops
Admin and authority operations for the Pump protocol — set coin creator, update token incentives, set IDL authority, claim…
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.
$ npx -y skills add nirholas/pump-fun-sdk --skill pump-bonding-curve --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pump-bonding-curveContext preview
The summary Claude sees to decide when to auto-load this skill.
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-bonding-curve
description: "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."
metadata:
openclaw:
homepage: https://github.com/nirholas/pump-fun-sdkImplement and maintain the constant-product AMM bonding curve math that powers Pump token pricing — including buy/sell quoting, fee-aware calculations, market cap computation, reserve management, and edge-case handling for new, active, and migrated curves.
Pump tokens are priced using a constant-product bonding curve ($x \times y = k$) where $x$ = virtual SOL reserves and $y$ = virtual token reserves. The bonding curve determines token prices during the pre-graduation phase. Once market cap reaches a threshold, the token "graduates" and migrates to a PumpAMM pool.
$$x \times y = k$$
**Buy (tokens out for SOL in):** $$\text{tokensOut} = \frac{dx \times Y}{X + dx}$$
Where $dx$ = SOL input (after fees), $X$ = virtual SOL reserves, $Y$ = virtual token reserves.
**Sell (SOL out for tokens in):** $$\text{solOut} = \frac{dy \times X}{Y + dy}$$
Where $dy$ = tokens sold, $X$ = virtual SOL reserves, $Y$ = virtual token reserves.
Fees are deducted from the SOL amount **before** applying the bonding curve formula:
inputAmount = (amount - 1) * 10000 / (totalFeeBps + 10000)
The `- 1` before fee stripping is intentional to handle rounding edge cases.
$$\text{marketCap} = \frac{\text{virtualSolReserves} \times \text{mintSupply}}{\text{virtualTokenReserves}}$$
Where `mintSupply` defaults to `ONE_BILLION_SUPPLY` ($1 \times 10^{15}$ — 1B tokens with 6 decimals).
When a `FeeConfig` exists, fees are market-cap-dependent. Fee tiers are iterated in **reverse** order — the first tier from the end whose `marketCapLamportsThreshold ≤ currentMarketCap` is selected.
interface FeeTier {
marketCapLamportsThreshold: BN;
fees: { lpFeeBps: BN; protocolFeeBps: BN; creatorFeeBps: BN };
}$$\text{ceilDiv}(a, b) = \frac{a + b - 1}{b}$$
function ceilDiv(a: BN, b: BN): BN {
return a.add(b).sub(new BN(1)).div(b);
}| Reserve Type | Includes | Used For | |-------------|----------|----------| | `virtualSolReserves` | Real SOL + protocol-added virtual offset | AMM formula calculation | | `virtualTokenReserves` | Real tokens + virtual offset | AMM formula calculation | | `realTokenReserves` | Actual tokens available | Buy output cap | | `realSolReserves` | Actual SOL deposited | Withdrawal limit |
| Case | Behavior | |------|----------| | Zero amount | Returns `BN(0)` | | Migrated curve (`complete === true`, zero reserves) | Returns `BN(0)` | | Null bonding curve | Creates a fresh curve via `newBondingCurve(global)` | | Tokens exceed real reserves | Caps at `realTokenReserves` | | Creator fee | Only charged if `bondingCurve.creator != PublicKey.default` or it's a new curve |
interface BondingCurve {
virtualTokenReserves: BN;
virtualSolReserves: BN;
realTokenReserves: BN;
realSolReserves: BN;
tokenTotalSupply: BN;
complete: boolean; // true = graduated to AMM
creator: PublicKey;
isMayhemMode: boolean;
}Open-source framework for building PumpFun Telegram bots on Solana. Claim monitors, channel feeds, group trackers, whale alerts — build your own or use ours. PumpKit Web App + Documentation
Admin and authority operations for the Pump protocol — set coin creator, update token incentives, set IDL authority, claim…
AI agent integration layer for the Pump SDK — agent instruction files, .well-known discovery, LLM context documents, 15+ skill…
Build and release pipeline for the Pump SDK — tsup TypeScript builds, Cargo release profiles, semantic release with commitizen,…
Read-only query methods for PumpFun claims — unclaimed token rewards, creator vault balances, volume accumulators, distributable…
Configure and distribute creator fees to multiple shareholders using the PumpFees program with BPS-based share allocation, admin…
Complete Pump protocol fee system — tiered protocol fees based on market cap, creator fee collection across two programs, basis…