← Back to Blog
DEVELOPERS

Pump.fun Program ID, Instructions and Error Codes

SolBundler Team · From the official IDL, checked November 7, 2026

Everything you need to call Pump.fun directly: program IDs, instruction discriminators, the account order for buy and sell, PDA seeds, and what each error code means.

Source: the IDLs in pump-fun/pump-public-docs. Pump adds instructions and accounts over time (v2 and v3 variants, fee and volume accounts), so always build from the current IDL or the official SDK.

Program IDs

ProgramAddress
Pump (bonding curve)6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
PumpSwap (AMM after graduation)pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA
Pump feespfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ
Mayhem modeMAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e

Instruction discriminators

Each Anchor instruction starts with an 8-byte discriminator: the first 8 bytes of sha256("global:<name>").

Pump (bonding curve)

InstructionDiscriminatorWhat it does
create[24, 30, 200, 40, 5, 28, 7, 119]Create a coin (legacy SPL Token)
create_v2[214, 144, 76, 236, 95, 139, 49, 180]Create a coin (Token-2022, Mayhem mode option)
buy[102, 6, 61, 18, 1, 218, 235, 234]Buy an exact token amount, capped by max_sol_cost
buy_exact_sol_in[56, 252, 116, 8, 158, 223, 205, 95]Spend an exact SOL amount, min_tokens_out
buy_v2[184, 23, 238, 97, 103, 197, 211, 61]Buy with a non-SOL quote mint
sell[51, 230, 133, 164, 1, 127, 131, 173]Sell tokens for at least min_sol_output
sell_v2[93, 246, 130, 60, 231, 233, 64, 178]Sell into a non-SOL quote mint
collect_creator_fee[20, 22, 86, 123, 198, 28, 219, 132]Creator claims fees from the creator vault
migrate[155, 234, 231, 146, 236, 158, 162, 30]Move a completed curve to PumpSwap
extend_account[234, 102, 194, 203, 150, 72, 62, 229]Resize an account

PumpSwap

InstructionDiscriminatorWhat it does
buy[102, 6, 61, 18, 1, 218, 235, 234]Buy base token from a pool
sell[51, 230, 133, 164, 1, 127, 131, 173]Sell base token into a pool
create_pool[233, 146, 209, 142, 207, 104, 64, 188]Create a pool
deposit[242, 35, 198, 137, 82, 225, 242, 182]Add liquidity
withdraw[183, 18, 70, 156, 148, 109, 161, 34]Remove liquidity
collect_coin_creator_fee[160, 57, 89, 42, 181, 139, 43, 66]Creator claims PumpSwap fees

Buy: accounts in order

Arguments: amount, max_sol_cost, track_volume, partial_fill. W = writable, S = signer. Accounts must be passed in exactly this order.

#AccountAddress or PDA seeds
1globalPDA: "global"
2fee_recipientWA fee recipient listed in the Global account
3mintThe coin's mint
4bonding_curveWPDA: "bonding-curve", mint
5associated_bonding_curveWPDA: bonding_curve, token_program, mint (Associated Token program)
6associated_userWYour token account (ATA) for the mint
7userW SYour wallet (signer, pays)
8system_program11111111111111111111111111111111
9token_programSPL Token or Token-2022, matching the mint
10creator_vaultWPDA: "creator-vault", bonding_curve.creator
11event_authorityPDA: "__event_authority"
12program6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
13global_volume_accumulatorPDA: "global_volume_accumulator"
14user_volume_accumulatorWPDA: "user_volume_accumulator", user
15fee_configPDA: "fee_config", (32-byte const) (program: fee_program)
16fee_programpfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ

Sell: accounts in order

Arguments: amount, min_sol_output. Note that in sell, creator_vault comes before token_program, the opposite of buy.

#AccountAddress or PDA seeds
1globalPDA: "global"
2fee_recipientWA fee recipient listed in the Global account
3mintThe coin's mint
4bonding_curveWPDA: "bonding-curve", mint
5associated_bonding_curveWPDA: bonding_curve, token_program, mint (Associated Token program)
6associated_userWYour token account (ATA) for the mint
7userW SYour wallet (signer, pays)
8system_program11111111111111111111111111111111
9creator_vaultWPDA: "creator-vault", bonding_curve.creator
10token_programSPL Token or Token-2022, matching the mint
11event_authorityPDA: "__event_authority"
12program6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P
13fee_configPDA: "fee_config", (32-byte const) (program: fee_program)
14fee_programpfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ

Deriving the main PDAs

import { PublicKey } from "@solana/web3.js";
const PUMP = new PublicKey("6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P");
const pda = (...seeds: (Buffer | Uint8Array)[]) => PublicKey.findProgramAddressSync(seeds, PUMP)[0];

const global       = pda(Buffer.from("global"));
const bondingCurve = pda(Buffer.from("bonding-curve"), mint.toBuffer());
const creatorVault = pda(Buffer.from("creator-vault"), creator.toBuffer()); // creator from the BondingCurve account
const eventAuth    = pda(Buffer.from("__event_authority"));
const globalVolume = pda(Buffer.from("global_volume_accumulator"));
const userVolume   = pda(Buffer.from("user_volume_accumulator"), user.toBuffer());

associated_bonding_curve is the bonding curve's associated token account for the mint. fee_config is a PDA of the fees program; take it from the IDL or the SDK rather than hard-coding it.

Common errors and fixes

custom program error: 0x1 ("insufficient funds", err 1)

Not a Pump.fun error. The System or Token program is saying the wallet does not have enough SOL or tokens for the amount plus fees and rent. Fund the wallet or lower the amount.

CodeHexNameMeaning
60020x1772TooMuchSolRequiredslippage: Too much SOL required to buy the given amount of tokens.
60030x1773TooLittleSolReceivedslippage: Too little SOL received to sell the given amount of tokens.
60050x1775BondingCurveCompleteThe bonding curve has completed and liquidity migrated to raydium.
60200x1784BuyZeroAmountBuy zero amount
60210x1785NotEnoughTokensToBuyNot enough tokens to buy
60230x1787NotEnoughTokensToSellNot enough tokens to sell
60400x1798BuyNotEnoughSolToCoverRentBuy: Not enough SOL to cover for rent exemption.
60410x1799BuyNotEnoughSolToCoverFeesBuy: Not enough SOL to cover for fees.
60420x179aBuySlippageBelowMinTokensOutSlippage: Would buy less tokens than expected min_tokens_out
60430x179bNameTooLong
60440x179cSymbolTooLong
60450x179dUriTooLong

6005's message still says "migrated to raydium": graduated coins now go to PumpSwap. Transaction stuck or failing for other reasons? See Pump.fun transaction stuck.

All Pump program error codes

Anchor custom errors start at 6000 (0x1770). If your error is a hex number, find it in the Hex column.

CodeHexNameMessage
60000x1770NotAuthorizedThe given account is not authorized to execute this instruction.
60010x1771AlreadyInitializedThe program is already initialized.
60020x1772TooMuchSolRequiredslippage: Too much SOL required to buy the given amount of tokens.
60030x1773TooLittleSolReceivedslippage: Too little SOL received to sell the given amount of tokens.
60040x1774MintDoesNotMatchBondingCurveThe mint does not match the bonding curve.
60050x1775BondingCurveCompleteThe bonding curve has completed and liquidity migrated to raydium.
60060x1776BondingCurveNotCompleteThe bonding curve has not completed.
60070x1777NotInitializedThe program is not initialized.
60080x1778WithdrawTooFrequentWithdraw too frequent
60090x1779NewSizeShouldBeGreaterThanCurrentSizenew_size should be > current_size
60100x177aAccountTypeNotSupportedAccount type not supported
60110x177bInitialRealTokenReservesShouldBeLessThanTokenTotalSupplyinitial_real_token_reserves should be less than token_total_supply
60120x177cInitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReservesinitial_virtual_token_reserves should be greater than initial_real_token_reserves
60130x177dFeeBasisPointsGreaterThanMaximumfee_basis_points greater than maximum
60140x177eAllZerosWithdrawAuthorityWithdraw authority cannot be set to System Program ID
60150x177fPoolMigrationFeeShouldBeLessThanFinalRealSolReservespool_migration_fee should be less than final_real_sol_reserves
60160x1780PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFeespool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES
60170x1781DisabledWithdrawMigrate instruction is disabled
60180x1782DisabledMigrateMigrate instruction is disabled
60190x1783InvalidCreatorInvalid creator pubkey
60200x1784BuyZeroAmountBuy zero amount
60210x1785NotEnoughTokensToBuyNot enough tokens to buy
60220x1786SellZeroAmountSell zero amount
60230x1787NotEnoughTokensToSellNot enough tokens to sell
60240x1788OverflowOverflow
60250x1789TruncationTruncation
60260x178aDivisionByZeroDivision by zero
60270x178bNotEnoughRemainingAccountsNot enough remaining accounts
60280x178cAllFeeRecipientsShouldBeNonZeroAll fee recipients should be non-zero
60290x178dUnsortedNotUniqueFeeRecipientsUnsorted or not unique fee recipients
60300x178eCreatorShouldNotBeZeroCreator should not be zero
60310x178fStartTimeInThePast
60320x1790EndTimeInThePast
60330x1791EndTimeBeforeStartTime
60340x1792TimeRangeTooLarge
60350x1793EndTimeBeforeCurrentDay
60360x1794SupplyUpdateForFinishedRange
60370x1795DayIndexAfterEndIndex
60380x1796DayInActiveRange
60390x1797InvalidIncentiveMint
60400x1798BuyNotEnoughSolToCoverRentBuy: Not enough SOL to cover for rent exemption.
60410x1799BuyNotEnoughSolToCoverFeesBuy: Not enough SOL to cover for fees.
60420x179aBuySlippageBelowMinTokensOutSlippage: Would buy less tokens than expected min_tokens_out
60430x179bNameTooLong
60440x179cSymbolTooLong
60450x179dUriTooLong
60460x179eCreateV2Disabled
60470x179fCpitializeMayhemFailed
60480x17a0MayhemModeDisabled
60490x17a1CreatorMigratedToSharingConfigcreator has been migrated to sharing config
60500x17a2UnableToDistributeCreatorVaultMigratedToSharingConfigcreator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead
60510x17a3SharingConfigNotActiveSharing config is not active
60520x17a4UnableToDistributeCreatorFeesToExecutableRecipientThe recipient account is executable, so it cannot receive lamports, remove it from the team first
60530x17a5BondingCurveAndSharingConfigCreatorMismatchBonding curve creator does not match sharing config
60540x17a6ShareholdersAndRemainingAccountsMismatchRemaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order
60550x17a7InvalidShareBpsShare bps must be greater than 0
60560x17a8CashbackNotEnabledCashback is not enabled
60570x17a9BuybackFeeRecipientNotAuthorizedBuyback fee recipient not authorized
60580x17aaAllBuybackFeeRecipientsShouldBeNonZero
60590x17abNotUniqueBuybackFeeRecipients
60600x17acBuybackBasisPointsOutOfRangebuyback_basis_points must be <= 10_000
60610x17adWrongBuybackFeeRecipientsCountbuyback fee recipients require exactly 8 remaining accounts (or none)
60620x17aeBuybackFeeRecipientMissing
60630x17afUnsupportedQuoteMintUnsupported quote mint
60640x17b0InvalidQuoteTokenProgramCreate v2: quote token program must be SPL Token or Token-2022
60650x17b1InvalidAssociatedQuoteBondingCurveCreate v2: associated quote bonding curve address does not match derivation
60660x17b2QuoteMintWhitelistFullQuote mint whitelist is full
60670x17b3QuoteMintAlreadyWhitelistedQuote mint is already whitelisted
60680x17b4QuoteMintNotWhitelistedQuote mint is not in the whitelist
60690x17b5QuoteMintNotEligibleForWhitelistQuote mint cannot be added or removed via whitelist (default or native SOL mint)
60700x17b6UnableToDistributeCreatorFeesToUninitializedAccountUnable to distribute creator fees to uninitialized account
60710x17b7MayhemModeQuoteMintNotAllowedMayhem mode quote mint not allowed
60720x17b8MissingCashbackAccountsCashback trade is missing the required remaining accounts
60730x17b9InvalidCashbackAccumulatorCashback user_volume_accumulator account is invalid
60740x17baInvalidBondingCurveV2bonding_curve_v2 remaining account is missing or invalid
60750x17bbInvalidQuoteControlquote_control remaining account does not match derivation or is uninitialized
60760x17bcInvalidCashbackRecipientCashback recipient token account is not owned by user
60770x17bdCreatorFeeNotConfigurableConfigurable creator fees are disabled
60780x17beCreatorFeeBpsOutOfRangeCreator fee basis points must be between 1 and the configured maximum
60790x17bfCreatorFeeNotEditableCreator fee is not editable for this bonding curve
60800x17c0CreatorFeeNotAllowedForCashbackCoinCreator fee cannot be configured for a cashback coin
60810x17c1BondingCurveAlreadyMigratedBonding curve has already migrated
60820x17c2CashbackDeprecatedCashback coins can no longer be created
60830x17c3HolderRewardCreatorImmutableThe creator of a holder-reward coin cannot be changed
60840x17c4HolderRewardDisabledHolder-reward coins are disabled
60850x17c5HolderRewardRecipientsMismatchHolder-reward amounts and recipient accounts do not match
60860x17c6HolderRewardsRentFloorThe holder-rewards PDA cannot be left below its rent-exempt minimum
60870x17c7HolderRewardTokenAccountMissingA holder-rewards token account is required on a token quote
60880x17c8CtoNotAllowedForMayhemCoinCTO is not allowed on a mayhem-mode coin
60890x17c9CtoNewCreatorRequirednew_creator is required unless converting to holder rewards
60900x17caCtoNewCreatorNotAllowednew_creator must be omitted when converting to holder rewards
60910x17cbCreatorFeeNotConfigurableForQuoteCreator fee is not configurable on a SOL or whitelisted quote; the fee schedule applies
60920x17ccCtoCreatorAccountNotWritablecurrent_creator must be passed writable so the outgoing creator can be paid
60930x17cdCtoSharedVaultFrozenA frozen sharing-config vault account holds a balance; thaw it before the holder conversion
60940x17ceCashbackCoinNotSupportedv3 trades do not support cashback coins; use the v2 instructions
60950x17cfCreatorFeesNotSweptcreator_fee must be swept before the creator changes or the vault is distributed
60960x17d0FeeTiersEmptyThe fee config tier table is empty
60970x17d1FeeConfigTooShortThe fee config account is shorter than its initialize size
60980x17d2MultiHopDiscontinuousPathmulti-hop: a hop's input mint is neither side of its bonding curve
60990x17d3InvalidQuoteBondingCurveQuote bonding curve remaining account does not match derivation or is uninitialized
61000x17d4QuoteBondingCurveNotEligibleQuote bonding curve is not eligible as a quote: mayhem mode, or the chain's depth-0 root is quoted in a mint no list admits
61010x17d5QuotePoolAccountsRequiredA quote-chain bonding curve has migrated: its pool and vault remaining accounts are required
61020x17d6QuotePoolNotFoundQuote pool remaining account is not an initialized pump-amm pool
61030x17d7InvalidQuotePoolQuote pool or vault remaining accounts do not match derivation or are invalid
61040x17d8QuoteReservesOutOfRangeDerived quote reserves are zero
61050x17d9CurveDepthExceededThe new curve's depth (quote coin depth plus one) exceeds Global.max_curve_depth or the program's cap of 5
61060x17daMultiHopHopFeesMismatchmulti-hop: hop_fees must carry one flag byte per curve hop using only the protocol and creator bits
61070x17dbQuoteCurveAwaitingMigrationA quote-chain coin's curve is complete but not yet migrated; retry once migrate_v2 creates its pool
61080x17dcMultiHopMayhemCurveNotSupportedmulti-hop: mayhem-mode curves are not routable; use the v2 instructions
61090x17ddQuoteChainAccountsRequiredThe quote coin is nested: a bonding curve remaining account is required for every coin on its quote chain down to the depth-0 root

All PumpSwap error codes

CodeHexNameMessage
60000x1770FeeBasisPointsExceedsMaximum
60010x1771ZeroBaseAmount
60020x1772ZeroQuoteAmount
60030x1773TooLittlePoolTokenLiquidity
60040x1774ExceededSlippage
60050x1775InvalidAdmin
60060x1776UnsupportedBaseMint
60070x1777UnsupportedQuoteMint
60080x1778InvalidBaseMint
60090x1779InvalidQuoteMint
60100x177aInvalidLpMint
60110x177bAllProtocolFeeRecipientsShouldBeNonZero
60120x177cUnsortedNotUniqueProtocolFeeRecipients
60130x177dInvalidProtocolFeeRecipient
60140x177eInvalidPoolBaseTokenAccount
60150x177fInvalidPoolQuoteTokenAccount
60160x1780BuyMoreBaseAmountThanPoolReserves
60170x1781DisabledCreatePool
60180x1782DisabledDeposit
60190x1783DisabledWithdraw
60200x1784DisabledBuy
60210x1785DisabledSell
60220x1786SameMint
60230x1787Overflow
60240x1788Truncation
60250x1789DivisionByZero
60260x178aNewSizeLessThanCurrentSize
60270x178bAccountTypeNotSupported
60280x178cOnlyCanonicalPumpPoolsCanHaveCoinCreator
60290x178dInvalidAdminSetCoinCreatorAuthority
60300x178eStartTimeInThePast
60310x178fEndTimeInThePast
60320x1790EndTimeBeforeStartTime
60330x1791TimeRangeTooLarge
60340x1792EndTimeBeforeCurrentDay
60350x1793SupplyUpdateForFinishedRange
60360x1794DayIndexAfterEndIndex
60370x1795DayInActiveRange
60380x1796InvalidIncentiveMint
60390x1797BuyNotEnoughQuoteTokensToCoverFeesbuy: Not enough quote tokens to cover for fees.
60400x1798BuySlippageBelowMinBaseAmountOutbuy: slippage - would buy less tokens than expected min_base_amount_out
60410x1799MayhemModeDisabled
60420x179aOnlyPumpPoolsMayhemMode
60430x179bMayhemModeInDesiredState
60440x179cNotEnoughRemainingAccounts
60450x179dInvalidSharingConfigBaseMint
60460x179eInvalidSharingConfigCoinCreator
60470x179fCoinCreatorMigratedToSharingConfigcoin creator has been migrated to sharing config
60480x17a0CreatorVaultMigratedToSharingConfigcreator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead
60490x17a1CashbackNotEnabledCashback is disabled
60500x17a2OnlyPumpPoolsCashback
60510x17a3CashbackNotInDesiredState
60520x17a4TokensInVaultLessThanCashbackEarned
60530x17a5BuybackFeeRecipientNotAuthorizedBuyback fee recipient not authorized
60540x17a6AllBuybackFeeRecipientsShouldBeNonZero
60550x17a7NotUniqueBuybackFeeRecipients
60560x17a8BuybackBasisPointsOutOfRangebuyback_basis_points must be <= 10_000
60570x17a9WrongBuybackFeeRecipientsCountbuyback fee recipients require exactly 8 remaining accounts (or none)
60580x17aaBuybackFeeRecipientMissing
60590x17abMissingCashbackAccountsCashback trade is missing the required remaining accounts
60600x17acInvalidCashbackAccumulatorCashback user_volume_accumulator account is invalid
60610x17adInvalidCashbackAccumulatorAtaCashback user_volume_accumulator ATA is missing or invalid
60620x17aeInvalidPoolV2pool_v2 remaining account is missing or invalid
60630x17afInsufficientRealQuoteReservesBOOST: sell output exceeds the real quote vault. effective = real + virtual is pricing-only; payout is capped at real_vault, so quote min(out, real_vault)
60640x17b0BoostPoolLiquidityUnsupportedBOOST: deposit/withdraw don't apply to boost pools
60650x17b1PoolCannotBoostBOOST: pool cannot be boosted (no virtual reserves)
60660x17b2BoostDisabledBOOST: boost is disabled
60670x17b3SeedLockViolationBOOST: lp_supply must never drop below the circulating LP mint supply
60680x17b4CreatorFeeNotConfigurableConfigurable creator fee is disabled
60690x17b5CreatorFeeBpsOutOfRangeCreator fee basis points must be between 1 and the configured maximum
60700x17b6CreatorFeeNotEditableCreator fee is not editable for this pool
60710x17b7CreatorFeeNotAllowedForCashbackCoinCashback coins cannot have a creator fee
60720x17b8SharingConfigNotActiveSharing config is not active
60730x17b9NotAuthorizedNot authorized
60740x17baHolderRewardCreatorImmutableThe coin creator of a holder-reward pool cannot be changed
60750x17bbCtoNotAllowedForMayhemPoolCTO is not allowed on a mayhem-mode pool
60760x17bcInvalidHolderRewardCoinCreatorA holder-reward pool's coin creator must be the holder-rewards PDA
60770x17bdCreatorFeeNotConfigurableForQuoteCreator fee is not configurable on a SOL or USDC quote; the fee schedule applies
60780x17beOnlyPumpPoolsOnly canonical pump pools are supported by this instruction
60790x17bfCashbackCoinNotSupportedv2 trades do not support cashback coins; use the v1 instructions
60800x17c0MayhemPoolNotSupportedv2 trades do not support mayhem-mode pools; use the v1 instructions
60810x17c1CreatorFeesNotSweptcreator_fees must be swept before the coin creator changes
60820x17c2FeeTiersEmptyThe fee config tier table is empty
60830x17c3FeeConfigTooShortThe fee config account is shorter than its initialize size
60840x17c4MultiHopDiscontinuousPathmulti-hop: a hop's input mint is neither side of its pool or curve, or the route does not end in user_out_token_account's mint
60850x17c5MultiHopCurveRunMismatchmulti-hop: the balances around the bonding-curve hops do not match the amounts pump reported
60860x17c6MultiHopMixedDirectionmulti-hop: every hop must trade in the same direction, all buys or all sells
60870x17c7SelfTransferNotAllowedA transfer's source is its destination and the signer does not own it

Need a bundled launch, not a codebase?

SolBundler builds the create and buy transactions for you and lands them in the same block through Jito, from 20+ of your own wallets. Free to sign up; 1% on trades.

See the Pump.fun Bundler →

Questions

What is the Pump.fun program ID?

The bonding-curve program is 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P. After graduation coins trade on PumpSwap, program pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA. Fees are configured by pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.

What is the Pump.fun buy instruction discriminator?

buy is [102, 6, 61, 18, 1, 218, 235, 234] and sell is [51, 230, 133, 164, 1, 127, 131, 173]: the first 8 bytes of sha256("global:buy") and sha256("global:sell"), as in any Anchor program. PumpSwap uses the same two discriminators.

What does custom program error 0x1 mean on Pump.fun?

Error 1 (0x1) does not come from Pump.fun. It is the System or Token program saying there are not enough lamports or tokens: the wallet cannot cover the amount plus fees and rent. Top up the wallet or lower the amount.

What does Pump.fun error 6002 or 6003 mean?

Slippage. 6002 (0x1772) TooMuchSolRequired means the buy would cost more than your max_sol_cost; 6003 (0x1773) TooLittleSolReceived means a sell would return less than min_sol_output. The price moved; retry with higher slippage or a fresh quote.

Why does my buy fail with 6005 BondingCurveComplete?

The coin has finished its bonding curve and moved to PumpSwap. Trade it through the PumpSwap program (pAMMBay6...) instead. The error message still says Raydium, but migrations go to PumpSwap.

Where is the official Pump.fun IDL?

In the pump-fun/pump-public-docs repository on GitHub, folder idl: pump.json, pump_amm.json and pump_fees.json. Pump also publishes @pump-fun/pump-sdk and @pump-fun/pump-swap-sdk on npm.

More guides on this topic

Pump.fun Mayhem Mode Explained →PumpSwap Fees 2026 by Market Cap →Is There a Pump.fun Airdrop? (PUMP, 2026) →Pump.fun and Robinhood Chain: How to Trade →How to Make a Callout on Pump.fun (and Fix Error 403) →Pump.fun API Guide 2026: Official API, PumpPortal and the SDK →
All guides →