All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Ships a command-line interface, and fixes three bugs it surfaced along the way.
- The
pumpCLI.npm install -g @nirholas/pump-sdknow puts apumpbinary on your PATH, built on the same instruction builders the SDK exports. Full reference: docs/cli.md. Walkthrough: tutorial 45.- Read (no wallet, no configuration):
curve,price,pool,global,quote buy|sell,watch,events,pda. - Trade:
buy,sell,create, routing automatically between the bonding curve and PumpAMM. - Earn:
fees,fees claim,incentives,incentives claim, each covering both programs in one transaction. - Operate:
vanity,doctor,config. - Every command supports
--jsonand writes nothing else to stdout in that mode, so pipes intojqare always safe. - Every write path simulates first, prints the exact terms, and requires an explicit confirmation.
--simulatesends nothing,--yesskips the prompt for scripts, and a non-interactive invocation with neither refuses rather than spending funds unattended.
- Read (no wallet, no configuration):
formatScaledPrice,normalizeForJsonand the rest of the CLI rendering layer, exported from@nirholas/pump-sdk/clifor anyone building on top of it.
- Reading a graduated token no longer throws
Division by zero. Migration zeroes every reserve field on the bonding curve account, sogetTokenPrice,getBondingCurveSummary, and by extensionOnlinePumpSdk.fetchTokenPriceandfetchBondingCurveSummaryfailed for the entire population of migrated tokens. They now report a graduated curve (zero prices,isGraduated: true) and callers can branch on that.pump curvegoes further and prices those tokens from their AMM pool. computeFeesBpsno longer throws on a zeroed curve. A migrated token's market cap is undefined rather than invalid, so it now selects the base fee tier instead of dividing by zero. This affected every fee lookup for a migrated token.- Price impact results are no longer misread as SOL.
PriceImpactResult.priceBeforeandpriceAfterare lamports per raw token unit scaled by 1e9, which is 1000x a SOL-per-token figure. The newformatScaledPricehelper converts them correctly, and the CLI's quote output uses it.
commander,picocolors, andbs58moved into runtime dependencies (the CLI needs them).bs58was previously a dev dependency.
Prepares the SDK for the 2026-04-28, 16:00 UTC breaking on-chain program upgrade to the Pump bonding curve and PumpSwap AMM programs. See docs/pump-public-docs/BREAKING_FEE_RECIPIENT.md for the protocol spec and docs/MIGRATION.md for call-site guidance.
Upstream breaking release: @pump-fun/pump-sdk@1.33.0, @pump-fun/pump-swap-sdk@1.15.0.
- All buy/sell instruction builders now append trailing fee-recipient accounts required by the 2026-04-28 on-chain upgrade. The SDK surface is unchanged — callers using
PUMP_SDK.*get the fix automatically. Affected builders:- Bonding curve:
buyInstructions,sellInstructions,buyExactSolInInstruction,getBuyInstructionRaw,getSellInstructionRaw,createV2AndBuyInstructions,createAndBuyInstructions— append one of 8 new fee recipients as a mutable trailing account afterbonding-curve-v2. - PumpAMM:
ammBuyInstruction,ammBuyExactQuoteInInstruction,ammSellInstruction— append a readonly fee recipient + mutable quote-mint (WSOL) ATA afterpool-v2. Applies to every AMM buy/sell, including pools that did not graduate from a bonding curve. OnlinePumpSdkwrappers delegate to the above, sobuyInstructions,sellInstructions, andsellChunkedare all covered.
- Bonding curve:
- New account totals:
Instruction Before After BC buy/buy_exact_sol_in17 18 BC sell(non-cashback)15 16 BC sell(cashback)16 17 AMM buy/buy_exact_quote_in(non-cashback)24 26 AMM buy/buy_exact_quote_in(cashback)25 27 AMM sell(non-cashback)22 24 AMM sell(cashback)24 26
BREAKING_FEE_RECIPIENTS(PublicKey[]) — the 8 new shared fee recipient pubkeys introduced by the upgrade.pickBreakingFeeRecipient()— selects one of the 8 at random; used internally by every buy/sell builder.buildAmmBreakingFeeRecipientAccounts(recipient?)— builds the two trailing AMM accounts (readonly recipient + mutable WSOL ATA) underTOKEN_PROGRAM_ID. Exported so manual-instruction builders share the same source of truth as the SDK.- docs/pump-public-docs/BREAKING_FEE_RECIPIENT.md — mirror of the upstream upgrade spec.
- docs/MIGRATION.md — v1.32.0 migration section with account-count deltas and the raw remaining-accounts pattern for manual builders.
src/__tests__/sdk.test.tscould not load due to a pre-existing circular dependency (sdk → onlineSdk → pdawithPUMP_PROGRAM_IDused before definition). Reordered imports so../pdaresolves the cycle before the staticPUMP_PROGRAM_IDreferences. Every jest suite now runs.
- 9 new tests in
src/__tests__/sdk.test.tspin the account counts and trailing-account shapes for every upgraded path. src/__tests__/exports.test.tsasserts the 3 new public exports.
- Core SDK — Token program auto-detection in
OnlinePumpSdkfetchBuyStateandfetchSellStatenow auto-detect Token Program vs Token-2022 from the mint account owner whentokenProgramis not providedfetchBuyStatenow returnstokenProgramand normalizesassociatedUserAccountInfotonull(wasundefined)fetchSellStatenow returnstokenProgramin its result
- Core SDK — Convenience wrappers on
OnlinePumpSdkbuyInstructions()— fetches global state and builds buy instructions in one callsellInstructions()— fetches global state and builds sell instructions in one call
- Lair-TG — unified Telegram bot platform for DeFi intelligence (
lair-tg/)- Config, data sources, formatters, health check, logger, and type definitions
- Dockerfile and Railway deployment config
- PumpKit framework (
pumpkit/) — major expansion@pumpkit/web— React dashboard with Dashboard, CreateCoin, Docs, Home, Profile, Token pagesuseEventStreamhook for SSE connection with status tracking- WatchForm, WatchList, StatsBar, EventCard, CopyButton components
- Chart functionality with cleanup and resize handling
- Fee Distribution Monitor for detecting distribution events via WebSocket
- 26 new tutorials (20–45) covering MCP server, WebSocket feeds, channel bot, mayhem mode, cross-program trading, DeFi agents, live dashboards, cashback, analytics, event parsing, shell scripts, Rust vanity, plugin delivery, error handling, AMM liquidity, admin management, x402, security auditing, testing, AI enrichment, claim bot, and channel feed bot
- CI workflow with testing step
- Makefile, contributing guidelines, and monorepo setup instructions
- Mock event feed, Packages page
- Comprehensive documentation: core API, deployment, getting started, monitor bot, tracker bot
- Channel-bot enhancements
- Graduation event support with enriched token data (holders, recent volume, replies, KotH timestamp)
- Event monitor and feed logging
- Support for multiple linked tokens in claim feed formatting
- Token disambiguation by market cap
- Same-name token detection and fetching
- Claim-bot enhancements
ClaimMonitorfor tracking fee claim transactions in Pump programsRpcClaimMonitorfor direct Solana RPC monitoring- Social fee claim support with WebSocket broadcasting
- GitHub social fee claims — first claim badge, lifetime claimed amounts, fake claim detection
- GitHub claim card with token image, name/ticker/mcap header, creator card style
- GitHub repo info fetching, clickable repository links, developer profile enrichment
- Social-fee-index for CA resolution on claims
FEED_CLAIMSenv var gating for clean graduation/claims split
- Outsiders Bot (
outsiders-bot/)- Core functionality: health check server, logging, token service
- Comprehensive setup guide, bot information, and privacy policy
- X/Twitter integration
- Refactored to use Twitter's internal GraphQL API with cookie-based authentication via
xactions createdAtandtweetCountfields onXProfileinterface- Influencer tier logic
- Refactored to use Twitter's internal GraphQL API with cookie-based authentication via
- Website (
website/) — PumpOS web desktop- Full HTML/CSS/JS implementation with Vercel deployment config
- Live dashboards — enhanced
dashboard.htmlwith viewer count - Documentation
- Governance, adopters, migration guide, development guide, FAQ, roadmap, support, vision docs
- API reference documentation
- Skills for Carbon indexing, React Native Pager View, Pump Segments SDK, Transfer Hook Authority
- Tests
- Integration test for
OnlinePumpSdkbuy/sell flow on mainnet - Event types and templates formatting tests
- Health and logger tests for PumpKit
- Integration test for
- pumpfun-site — token creation page (
create.html) and token launchpad HTML/CSS
fetchBuyStatetokenProgramparameter changed from defaultTOKEN_PROGRAM_IDto optional with auto-detection (non-breaking — callers omitting the param get the same behavior)fetchSellStatetokenProgramparameter changed similarly- Enhanced claim feed formatting with additional token holder, trade info, liquidity, and bundle detection
- Enhanced graduation feed formatting with trade data, compact stats, bot links
- Enhanced GitHub claim feed with creator profile, holders, trades, liquidity context
- Updated live dashboards with deployment sections and viewer counts
- Specified
packageManagerfield in rootpackage.json - Node.js engine requirement remains
>=18.0.0
- Fixed token program detection for associated token address in buy flow
- Fixed social fee claim detection using Anchor instruction log matching
- Fixed GitHub user ID list fallback widened to
per_page=20for deleted account gaps - Fixed Twitter community URL display (show "Community" link correctly)
- Fixed graduation card formatting — compact stats, no tree, correct Twitter community URLs
- Fixed GitHub claim card — creator card style with
↳, compact meta, clean footer - Fixed
formatCompact— removed unnecessary condition - Removed redundant environment variables from Turbo configuration
- Removed unused
typesconfiguration fromtsconfig.json - Replaced forbidden
npx tsc --noEmitwithnpm run typecheckin development docs
- Deprecated Twitter API v2 integration (replaced by GraphQL API via
xactions) - Unused social fee claim parsing logic from ClaimMonitor
- Creator fee claim tracking (GitHub claims only now)
- Unused image files (Screenshot,
a.png)
- MCP server initial implementation with validation schemas and tutorial documentation
- New tools for token metadata, social fees, and wallet management
- New tools for analytics, fees, metadata, token incentives
- Screenshot automation for sectbot pages using Playwright
- Release workflow for automated deployment and testing
- Comprehensive documentation for RPC best practices, plugin delivery, error handling, and AMM liquidity operations
- Tutorials for advanced analytics, event parsing, cross-program trading, DeFi agents integration, live dashboard deployment, cashback, and social fee PDAs
- Fee sharing setup and error handling to create-and-buy tutorial
- Updated
package.jsonto require Node.js 18 or higher - Enhanced claim feed formatting with additional token holder and trade info
- Enhanced token info with GitHub URLs and token holder/trade info fetching
- Enhanced user experience with pulse animation on logo for first-time visitors
- Channel-bot: fixed corrupted
formatters.ts, fixed Dockerfile (npm ci->npm installfor missing lock file)
- x402 payment protocol — HTTP 402 micropayments with Solana USDC
- Client, server, and facilitator implementations
- Example code for all three roles
- Channel-bot — Telegram channel monitoring bot
- Axiom/@nich referral, GMGN referral
- Scam count, Fee Recipient section
- Status by @handle, blockquote description, top coin MC
- Dockerfile, Railway deployment config
- TypeScript vanity address generator (educational reference implementation)
- Generator, matcher, security, validation modules
- Format utilities and base58 encoding
- Comprehensive test suite (generator, integration, matcher, security, validation)
- Basic usage and batch generation examples
- Worker threads support
- 19 hands-on tutorial guides covering the full SDK
- Token creation, buying, selling, analytics
- Fee sharing, migration, token incentives
- Working with PDAs, trading bot patterns
- Offline vs online SDK, vanity addresses
- x402 paywalled APIs, decoding accounts
- Monitoring claims, monitoring website
- Telegram bot integration, CoinGecko integration
- Social fee PDA support — referral fee accounts linked to social identities
createSocialFeePdaInstructionfor creating social referral accountsclaimSocialFeePdaInstructionfor claiming accumulated social feesnormalizeSocialShareholdersfor resolving social IDs to PDA addressesPlatformenum (Pump,X,GitHub)
- Cashback feature — fee rebates on trades
claimCashbackInstructionfor claiming accumulated cashbackammClaimCashbackInstructionfor AMM cashback claimscashbackparameter oncreateV2Instruction,sellInstructions, AMM instructionstoggleCashbackEnabledInstructionadmin control
- Mayhem Mode — randomized bonding curve parameters
toggleMayhemModeInstructionadmin controlsetMayhemVirtualParamsInstructionfor setting mayhem parameters- Mayhem-specific PDAs (
getGlobalParamsPda,getMayhemStatePda,getSolVaultPda,getTokenVaultPda)
- Token incentives — volume-based $PUMP token rewards
initUserVolumeAccumulator,syncUserVolumeAccumulator,closeUserVolumeAccumulatorclaimTokenIncentives,claimTokenIncentivesBothProgramsgetTotalUnclaimedTokens,getTotalUnclaimedTokensBothProgramsgetCurrentDayTokens,getCurrentDayTokensBothProgramstotalUnclaimedTokens()andcurrentDayTokens()pure calculation functions- Admin
adminUpdateTokenIncentivesandadminUpdateTokenIncentivesBothPrograms
- Analytics module (
analytics.ts)calculateBuyPriceImpact— price impact for buy tradescalculateSellPriceImpact— price impact for sell tradesgetGraduationProgress— bonding curve completion percentagegetTokenPrice— current buy/sell price per tokengetBondingCurveSummary— complete bonding curve overview
- Online SDK analytics fetchers (
fetchBondingCurveSummary,fetchGraduationProgress,fetchTokenPrice,fetchBuyPriceImpact,fetchSellPriceImpact)
- Fee sharing system (PumpFees program integration)
createFeeSharingConfig— create fee distribution configupdateFeeShares— update shareholder allocationsdistributeCreatorFees— distribute accumulated feesgetMinimumDistributableFee— check distribution thresholdbuildDistributeCreatorFeesInstructions— convenience builder
- Custom error types for fee validation (
NoShareholdersError,TooManyShareholdersError,ZeroShareError,InvalidShareTotalError,DuplicateShareholderError,PoolRequiredForGraduatedError,ShareCalculationOverflowError)
- PumpAMM integration — trading on graduated pools
ammBuyInstruction,ammBuyExactQuoteInInstruction,ammSellInstructionammDepositInstruction,ammWithdrawInstruction(LP operations)ammCollectCoinCreatorFeeInstructionammMigratePoolCoinCreatorInstruction,ammSetCoinCreatorInstructionammTransferCreatorFeesToPumpInstruction
- Pool state decoding (
decodePool,decodeAmmGlobalConfig)
- Tiered fee system based on market cap thresholds
FeeConfigandFeeTiertypescalculateFeeTierfor tier lookupcomputeFeesBpsfor current fee rate calculation
createV2InstructionwithmayhemModesupportbuyExactSolInInstructionfor exact-SOL-input buys
createInstruction(v1) — usecreateV2Instructioninstead
- Creator fee collection
collectCoinCreatorFeeInstructionsgetCreatorVaultBalance,getCreatorVaultBalanceBothPrograms
setCreatorandmigrateBondingCurveCreatorInstructionadminSetCoinCreatorInstructions
isGraduatedconvenience methodsellAllInstructionsto sell entire token balancegetTokenBalancehelper
OnlinePumpSdk— RPC-dependent extension of PumpSdkfetchGlobal,fetchFeeConfig,fetchBondingCurvefetchBuyState,fetchSellState(batch state fetching)fetchPool,fetchPoolByAddress
- Event decoders for all Pump, PumpAMM, and PumpFees program events
- Trade, Create, Complete, Migration, SetCreator events
- AMM Buy, Sell, Deposit, Withdraw, CreatePool events
- Fee sharing config events
- Comprehensive PDA module (
pda.ts)- All static PDAs (GLOBAL_PDA, AMM_GLOBAL_PDA, etc.)
- Derived PDAs (bondingCurvePda, creatorVaultPda, canonicalPumpPoolPda, etc.)
- Bonding curve math module (
bondingCurve.ts)getBuyTokenAmountFromSolAmountgetBuySolAmountFromTokenAmountgetSellSolAmountFromTokenAmountbondingCurveMarketCapnewBondingCurve
- Core
PumpSdkclass with offline instruction builderscreateInstruction(v1)buyInstructions,sellInstructionsmigrateInstruction- Account decoders
PUMP_SDKsingleton- State types (
Global,BondingCurve,Pool) - Anchor IDL integration (Pump, PumpAMM, PumpFees)
- Initial release
- Pump program instruction builders
- Basic bonding curve math
- PDA derivation
- TypeScript types for all account state