Pump.fun Program ID, Instructions and Error Codes
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
| Program | Address |
|---|---|
| Pump (bonding curve) | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P |
| PumpSwap (AMM after graduation) | pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA |
| Pump fees | pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ |
| Mayhem mode | MAyhSmzXzV1pTf7LsNkrNwkWKTo4ougAJ1PPg47MD4e |
Instruction discriminators
Each Anchor instruction starts with an 8-byte discriminator: the first 8 bytes of sha256("global:<name>").
Pump (bonding curve)
| Instruction | Discriminator | What 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
| Instruction | Discriminator | What 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.
| # | Account | Address or PDA seeds | |
|---|---|---|---|
| 1 | global | PDA: "global" | |
| 2 | fee_recipient | W | A fee recipient listed in the Global account |
| 3 | mint | The coin's mint | |
| 4 | bonding_curve | W | PDA: "bonding-curve", mint |
| 5 | associated_bonding_curve | W | PDA: bonding_curve, token_program, mint (Associated Token program) |
| 6 | associated_user | W | Your token account (ATA) for the mint |
| 7 | user | W S | Your wallet (signer, pays) |
| 8 | system_program | 11111111111111111111111111111111 | |
| 9 | token_program | SPL Token or Token-2022, matching the mint | |
| 10 | creator_vault | W | PDA: "creator-vault", bonding_curve.creator |
| 11 | event_authority | PDA: "__event_authority" | |
| 12 | program | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P | |
| 13 | global_volume_accumulator | PDA: "global_volume_accumulator" | |
| 14 | user_volume_accumulator | W | PDA: "user_volume_accumulator", user |
| 15 | fee_config | PDA: "fee_config", (32-byte const) (program: fee_program) | |
| 16 | fee_program | pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ |
Sell: accounts in order
Arguments: amount, min_sol_output. Note that in sell, creator_vault comes before token_program, the opposite of buy.
| # | Account | Address or PDA seeds | |
|---|---|---|---|
| 1 | global | PDA: "global" | |
| 2 | fee_recipient | W | A fee recipient listed in the Global account |
| 3 | mint | The coin's mint | |
| 4 | bonding_curve | W | PDA: "bonding-curve", mint |
| 5 | associated_bonding_curve | W | PDA: bonding_curve, token_program, mint (Associated Token program) |
| 6 | associated_user | W | Your token account (ATA) for the mint |
| 7 | user | W S | Your wallet (signer, pays) |
| 8 | system_program | 11111111111111111111111111111111 | |
| 9 | creator_vault | W | PDA: "creator-vault", bonding_curve.creator |
| 10 | token_program | SPL Token or Token-2022, matching the mint | |
| 11 | event_authority | PDA: "__event_authority" | |
| 12 | program | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P | |
| 13 | fee_config | PDA: "fee_config", (32-byte const) (program: fee_program) | |
| 14 | fee_program | pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ |
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.
| Code | Hex | Name | Meaning |
|---|---|---|---|
| 6002 | 0x1772 | TooMuchSolRequired | slippage: Too much SOL required to buy the given amount of tokens. |
| 6003 | 0x1773 | TooLittleSolReceived | slippage: Too little SOL received to sell the given amount of tokens. |
| 6005 | 0x1775 | BondingCurveComplete | The bonding curve has completed and liquidity migrated to raydium. |
| 6020 | 0x1784 | BuyZeroAmount | Buy zero amount |
| 6021 | 0x1785 | NotEnoughTokensToBuy | Not enough tokens to buy |
| 6023 | 0x1787 | NotEnoughTokensToSell | Not enough tokens to sell |
| 6040 | 0x1798 | BuyNotEnoughSolToCoverRent | Buy: Not enough SOL to cover for rent exemption. |
| 6041 | 0x1799 | BuyNotEnoughSolToCoverFees | Buy: Not enough SOL to cover for fees. |
| 6042 | 0x179a | BuySlippageBelowMinTokensOut | Slippage: Would buy less tokens than expected min_tokens_out |
| 6043 | 0x179b | NameTooLong | |
| 6044 | 0x179c | SymbolTooLong | |
| 6045 | 0x179d | UriTooLong |
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.
| Code | Hex | Name | Message |
|---|---|---|---|
| 6000 | 0x1770 | NotAuthorized | The given account is not authorized to execute this instruction. |
| 6001 | 0x1771 | AlreadyInitialized | The program is already initialized. |
| 6002 | 0x1772 | TooMuchSolRequired | slippage: Too much SOL required to buy the given amount of tokens. |
| 6003 | 0x1773 | TooLittleSolReceived | slippage: Too little SOL received to sell the given amount of tokens. |
| 6004 | 0x1774 | MintDoesNotMatchBondingCurve | The mint does not match the bonding curve. |
| 6005 | 0x1775 | BondingCurveComplete | The bonding curve has completed and liquidity migrated to raydium. |
| 6006 | 0x1776 | BondingCurveNotComplete | The bonding curve has not completed. |
| 6007 | 0x1777 | NotInitialized | The program is not initialized. |
| 6008 | 0x1778 | WithdrawTooFrequent | Withdraw too frequent |
| 6009 | 0x1779 | NewSizeShouldBeGreaterThanCurrentSize | new_size should be > current_size |
| 6010 | 0x177a | AccountTypeNotSupported | Account type not supported |
| 6011 | 0x177b | InitialRealTokenReservesShouldBeLessThanTokenTotalSupply | initial_real_token_reserves should be less than token_total_supply |
| 6012 | 0x177c | InitialVirtualTokenReservesShouldBeGreaterThanInitialRealTokenReserves | initial_virtual_token_reserves should be greater than initial_real_token_reserves |
| 6013 | 0x177d | FeeBasisPointsGreaterThanMaximum | fee_basis_points greater than maximum |
| 6014 | 0x177e | AllZerosWithdrawAuthority | Withdraw authority cannot be set to System Program ID |
| 6015 | 0x177f | PoolMigrationFeeShouldBeLessThanFinalRealSolReserves | pool_migration_fee should be less than final_real_sol_reserves |
| 6016 | 0x1780 | PoolMigrationFeeShouldBeGreaterThanCreatorFeePlusMaxMigrateFees | pool_migration_fee should be greater than creator_fee + MAX_MIGRATE_FEES |
| 6017 | 0x1781 | DisabledWithdraw | Migrate instruction is disabled |
| 6018 | 0x1782 | DisabledMigrate | Migrate instruction is disabled |
| 6019 | 0x1783 | InvalidCreator | Invalid creator pubkey |
| 6020 | 0x1784 | BuyZeroAmount | Buy zero amount |
| 6021 | 0x1785 | NotEnoughTokensToBuy | Not enough tokens to buy |
| 6022 | 0x1786 | SellZeroAmount | Sell zero amount |
| 6023 | 0x1787 | NotEnoughTokensToSell | Not enough tokens to sell |
| 6024 | 0x1788 | Overflow | Overflow |
| 6025 | 0x1789 | Truncation | Truncation |
| 6026 | 0x178a | DivisionByZero | Division by zero |
| 6027 | 0x178b | NotEnoughRemainingAccounts | Not enough remaining accounts |
| 6028 | 0x178c | AllFeeRecipientsShouldBeNonZero | All fee recipients should be non-zero |
| 6029 | 0x178d | UnsortedNotUniqueFeeRecipients | Unsorted or not unique fee recipients |
| 6030 | 0x178e | CreatorShouldNotBeZero | Creator should not be zero |
| 6031 | 0x178f | StartTimeInThePast | |
| 6032 | 0x1790 | EndTimeInThePast | |
| 6033 | 0x1791 | EndTimeBeforeStartTime | |
| 6034 | 0x1792 | TimeRangeTooLarge | |
| 6035 | 0x1793 | EndTimeBeforeCurrentDay | |
| 6036 | 0x1794 | SupplyUpdateForFinishedRange | |
| 6037 | 0x1795 | DayIndexAfterEndIndex | |
| 6038 | 0x1796 | DayInActiveRange | |
| 6039 | 0x1797 | InvalidIncentiveMint | |
| 6040 | 0x1798 | BuyNotEnoughSolToCoverRent | Buy: Not enough SOL to cover for rent exemption. |
| 6041 | 0x1799 | BuyNotEnoughSolToCoverFees | Buy: Not enough SOL to cover for fees. |
| 6042 | 0x179a | BuySlippageBelowMinTokensOut | Slippage: Would buy less tokens than expected min_tokens_out |
| 6043 | 0x179b | NameTooLong | |
| 6044 | 0x179c | SymbolTooLong | |
| 6045 | 0x179d | UriTooLong | |
| 6046 | 0x179e | CreateV2Disabled | |
| 6047 | 0x179f | CpitializeMayhemFailed | |
| 6048 | 0x17a0 | MayhemModeDisabled | |
| 6049 | 0x17a1 | CreatorMigratedToSharingConfig | creator has been migrated to sharing config |
| 6050 | 0x17a2 | UnableToDistributeCreatorVaultMigratedToSharingConfig | creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead |
| 6051 | 0x17a3 | SharingConfigNotActive | Sharing config is not active |
| 6052 | 0x17a4 | UnableToDistributeCreatorFeesToExecutableRecipient | The recipient account is executable, so it cannot receive lamports, remove it from the team first |
| 6053 | 0x17a5 | BondingCurveAndSharingConfigCreatorMismatch | Bonding curve creator does not match sharing config |
| 6054 | 0x17a6 | ShareholdersAndRemainingAccountsMismatch | Remaining accounts do not match shareholders, make sure to pass exactly the same pubkeys in the same order |
| 6055 | 0x17a7 | InvalidShareBps | Share bps must be greater than 0 |
| 6056 | 0x17a8 | CashbackNotEnabled | Cashback is not enabled |
| 6057 | 0x17a9 | BuybackFeeRecipientNotAuthorized | Buyback fee recipient not authorized |
| 6058 | 0x17aa | AllBuybackFeeRecipientsShouldBeNonZero | |
| 6059 | 0x17ab | NotUniqueBuybackFeeRecipients | |
| 6060 | 0x17ac | BuybackBasisPointsOutOfRange | buyback_basis_points must be <= 10_000 |
| 6061 | 0x17ad | WrongBuybackFeeRecipientsCount | buyback fee recipients require exactly 8 remaining accounts (or none) |
| 6062 | 0x17ae | BuybackFeeRecipientMissing | |
| 6063 | 0x17af | UnsupportedQuoteMint | Unsupported quote mint |
| 6064 | 0x17b0 | InvalidQuoteTokenProgram | Create v2: quote token program must be SPL Token or Token-2022 |
| 6065 | 0x17b1 | InvalidAssociatedQuoteBondingCurve | Create v2: associated quote bonding curve address does not match derivation |
| 6066 | 0x17b2 | QuoteMintWhitelistFull | Quote mint whitelist is full |
| 6067 | 0x17b3 | QuoteMintAlreadyWhitelisted | Quote mint is already whitelisted |
| 6068 | 0x17b4 | QuoteMintNotWhitelisted | Quote mint is not in the whitelist |
| 6069 | 0x17b5 | QuoteMintNotEligibleForWhitelist | Quote mint cannot be added or removed via whitelist (default or native SOL mint) |
| 6070 | 0x17b6 | UnableToDistributeCreatorFeesToUninitializedAccount | Unable to distribute creator fees to uninitialized account |
| 6071 | 0x17b7 | MayhemModeQuoteMintNotAllowed | Mayhem mode quote mint not allowed |
| 6072 | 0x17b8 | MissingCashbackAccounts | Cashback trade is missing the required remaining accounts |
| 6073 | 0x17b9 | InvalidCashbackAccumulator | Cashback user_volume_accumulator account is invalid |
| 6074 | 0x17ba | InvalidBondingCurveV2 | bonding_curve_v2 remaining account is missing or invalid |
| 6075 | 0x17bb | InvalidQuoteControl | quote_control remaining account does not match derivation or is uninitialized |
| 6076 | 0x17bc | InvalidCashbackRecipient | Cashback recipient token account is not owned by user |
| 6077 | 0x17bd | CreatorFeeNotConfigurable | Configurable creator fees are disabled |
| 6078 | 0x17be | CreatorFeeBpsOutOfRange | Creator fee basis points must be between 1 and the configured maximum |
| 6079 | 0x17bf | CreatorFeeNotEditable | Creator fee is not editable for this bonding curve |
| 6080 | 0x17c0 | CreatorFeeNotAllowedForCashbackCoin | Creator fee cannot be configured for a cashback coin |
| 6081 | 0x17c1 | BondingCurveAlreadyMigrated | Bonding curve has already migrated |
| 6082 | 0x17c2 | CashbackDeprecated | Cashback coins can no longer be created |
| 6083 | 0x17c3 | HolderRewardCreatorImmutable | The creator of a holder-reward coin cannot be changed |
| 6084 | 0x17c4 | HolderRewardDisabled | Holder-reward coins are disabled |
| 6085 | 0x17c5 | HolderRewardRecipientsMismatch | Holder-reward amounts and recipient accounts do not match |
| 6086 | 0x17c6 | HolderRewardsRentFloor | The holder-rewards PDA cannot be left below its rent-exempt minimum |
| 6087 | 0x17c7 | HolderRewardTokenAccountMissing | A holder-rewards token account is required on a token quote |
| 6088 | 0x17c8 | CtoNotAllowedForMayhemCoin | CTO is not allowed on a mayhem-mode coin |
| 6089 | 0x17c9 | CtoNewCreatorRequired | new_creator is required unless converting to holder rewards |
| 6090 | 0x17ca | CtoNewCreatorNotAllowed | new_creator must be omitted when converting to holder rewards |
| 6091 | 0x17cb | CreatorFeeNotConfigurableForQuote | Creator fee is not configurable on a SOL or whitelisted quote; the fee schedule applies |
| 6092 | 0x17cc | CtoCreatorAccountNotWritable | current_creator must be passed writable so the outgoing creator can be paid |
| 6093 | 0x17cd | CtoSharedVaultFrozen | A frozen sharing-config vault account holds a balance; thaw it before the holder conversion |
| 6094 | 0x17ce | CashbackCoinNotSupported | v3 trades do not support cashback coins; use the v2 instructions |
| 6095 | 0x17cf | CreatorFeesNotSwept | creator_fee must be swept before the creator changes or the vault is distributed |
| 6096 | 0x17d0 | FeeTiersEmpty | The fee config tier table is empty |
| 6097 | 0x17d1 | FeeConfigTooShort | The fee config account is shorter than its initialize size |
| 6098 | 0x17d2 | MultiHopDiscontinuousPath | multi-hop: a hop's input mint is neither side of its bonding curve |
| 6099 | 0x17d3 | InvalidQuoteBondingCurve | Quote bonding curve remaining account does not match derivation or is uninitialized |
| 6100 | 0x17d4 | QuoteBondingCurveNotEligible | Quote 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 |
| 6101 | 0x17d5 | QuotePoolAccountsRequired | A quote-chain bonding curve has migrated: its pool and vault remaining accounts are required |
| 6102 | 0x17d6 | QuotePoolNotFound | Quote pool remaining account is not an initialized pump-amm pool |
| 6103 | 0x17d7 | InvalidQuotePool | Quote pool or vault remaining accounts do not match derivation or are invalid |
| 6104 | 0x17d8 | QuoteReservesOutOfRange | Derived quote reserves are zero |
| 6105 | 0x17d9 | CurveDepthExceeded | The new curve's depth (quote coin depth plus one) exceeds Global.max_curve_depth or the program's cap of 5 |
| 6106 | 0x17da | MultiHopHopFeesMismatch | multi-hop: hop_fees must carry one flag byte per curve hop using only the protocol and creator bits |
| 6107 | 0x17db | QuoteCurveAwaitingMigration | A quote-chain coin's curve is complete but not yet migrated; retry once migrate_v2 creates its pool |
| 6108 | 0x17dc | MultiHopMayhemCurveNotSupported | multi-hop: mayhem-mode curves are not routable; use the v2 instructions |
| 6109 | 0x17dd | QuoteChainAccountsRequired | The 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
| Code | Hex | Name | Message |
|---|---|---|---|
| 6000 | 0x1770 | FeeBasisPointsExceedsMaximum | |
| 6001 | 0x1771 | ZeroBaseAmount | |
| 6002 | 0x1772 | ZeroQuoteAmount | |
| 6003 | 0x1773 | TooLittlePoolTokenLiquidity | |
| 6004 | 0x1774 | ExceededSlippage | |
| 6005 | 0x1775 | InvalidAdmin | |
| 6006 | 0x1776 | UnsupportedBaseMint | |
| 6007 | 0x1777 | UnsupportedQuoteMint | |
| 6008 | 0x1778 | InvalidBaseMint | |
| 6009 | 0x1779 | InvalidQuoteMint | |
| 6010 | 0x177a | InvalidLpMint | |
| 6011 | 0x177b | AllProtocolFeeRecipientsShouldBeNonZero | |
| 6012 | 0x177c | UnsortedNotUniqueProtocolFeeRecipients | |
| 6013 | 0x177d | InvalidProtocolFeeRecipient | |
| 6014 | 0x177e | InvalidPoolBaseTokenAccount | |
| 6015 | 0x177f | InvalidPoolQuoteTokenAccount | |
| 6016 | 0x1780 | BuyMoreBaseAmountThanPoolReserves | |
| 6017 | 0x1781 | DisabledCreatePool | |
| 6018 | 0x1782 | DisabledDeposit | |
| 6019 | 0x1783 | DisabledWithdraw | |
| 6020 | 0x1784 | DisabledBuy | |
| 6021 | 0x1785 | DisabledSell | |
| 6022 | 0x1786 | SameMint | |
| 6023 | 0x1787 | Overflow | |
| 6024 | 0x1788 | Truncation | |
| 6025 | 0x1789 | DivisionByZero | |
| 6026 | 0x178a | NewSizeLessThanCurrentSize | |
| 6027 | 0x178b | AccountTypeNotSupported | |
| 6028 | 0x178c | OnlyCanonicalPumpPoolsCanHaveCoinCreator | |
| 6029 | 0x178d | InvalidAdminSetCoinCreatorAuthority | |
| 6030 | 0x178e | StartTimeInThePast | |
| 6031 | 0x178f | EndTimeInThePast | |
| 6032 | 0x1790 | EndTimeBeforeStartTime | |
| 6033 | 0x1791 | TimeRangeTooLarge | |
| 6034 | 0x1792 | EndTimeBeforeCurrentDay | |
| 6035 | 0x1793 | SupplyUpdateForFinishedRange | |
| 6036 | 0x1794 | DayIndexAfterEndIndex | |
| 6037 | 0x1795 | DayInActiveRange | |
| 6038 | 0x1796 | InvalidIncentiveMint | |
| 6039 | 0x1797 | BuyNotEnoughQuoteTokensToCoverFees | buy: Not enough quote tokens to cover for fees. |
| 6040 | 0x1798 | BuySlippageBelowMinBaseAmountOut | buy: slippage - would buy less tokens than expected min_base_amount_out |
| 6041 | 0x1799 | MayhemModeDisabled | |
| 6042 | 0x179a | OnlyPumpPoolsMayhemMode | |
| 6043 | 0x179b | MayhemModeInDesiredState | |
| 6044 | 0x179c | NotEnoughRemainingAccounts | |
| 6045 | 0x179d | InvalidSharingConfigBaseMint | |
| 6046 | 0x179e | InvalidSharingConfigCoinCreator | |
| 6047 | 0x179f | CoinCreatorMigratedToSharingConfig | coin creator has been migrated to sharing config |
| 6048 | 0x17a0 | CreatorVaultMigratedToSharingConfig | creator_vault has been migrated to sharing config, use pump:distribute_creator_fees instead |
| 6049 | 0x17a1 | CashbackNotEnabled | Cashback is disabled |
| 6050 | 0x17a2 | OnlyPumpPoolsCashback | |
| 6051 | 0x17a3 | CashbackNotInDesiredState | |
| 6052 | 0x17a4 | TokensInVaultLessThanCashbackEarned | |
| 6053 | 0x17a5 | BuybackFeeRecipientNotAuthorized | Buyback fee recipient not authorized |
| 6054 | 0x17a6 | AllBuybackFeeRecipientsShouldBeNonZero | |
| 6055 | 0x17a7 | NotUniqueBuybackFeeRecipients | |
| 6056 | 0x17a8 | BuybackBasisPointsOutOfRange | buyback_basis_points must be <= 10_000 |
| 6057 | 0x17a9 | WrongBuybackFeeRecipientsCount | buyback fee recipients require exactly 8 remaining accounts (or none) |
| 6058 | 0x17aa | BuybackFeeRecipientMissing | |
| 6059 | 0x17ab | MissingCashbackAccounts | Cashback trade is missing the required remaining accounts |
| 6060 | 0x17ac | InvalidCashbackAccumulator | Cashback user_volume_accumulator account is invalid |
| 6061 | 0x17ad | InvalidCashbackAccumulatorAta | Cashback user_volume_accumulator ATA is missing or invalid |
| 6062 | 0x17ae | InvalidPoolV2 | pool_v2 remaining account is missing or invalid |
| 6063 | 0x17af | InsufficientRealQuoteReserves | BOOST: 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) |
| 6064 | 0x17b0 | BoostPoolLiquidityUnsupported | BOOST: deposit/withdraw don't apply to boost pools |
| 6065 | 0x17b1 | PoolCannotBoost | BOOST: pool cannot be boosted (no virtual reserves) |
| 6066 | 0x17b2 | BoostDisabled | BOOST: boost is disabled |
| 6067 | 0x17b3 | SeedLockViolation | BOOST: lp_supply must never drop below the circulating LP mint supply |
| 6068 | 0x17b4 | CreatorFeeNotConfigurable | Configurable creator fee is disabled |
| 6069 | 0x17b5 | CreatorFeeBpsOutOfRange | Creator fee basis points must be between 1 and the configured maximum |
| 6070 | 0x17b6 | CreatorFeeNotEditable | Creator fee is not editable for this pool |
| 6071 | 0x17b7 | CreatorFeeNotAllowedForCashbackCoin | Cashback coins cannot have a creator fee |
| 6072 | 0x17b8 | SharingConfigNotActive | Sharing config is not active |
| 6073 | 0x17b9 | NotAuthorized | Not authorized |
| 6074 | 0x17ba | HolderRewardCreatorImmutable | The coin creator of a holder-reward pool cannot be changed |
| 6075 | 0x17bb | CtoNotAllowedForMayhemPool | CTO is not allowed on a mayhem-mode pool |
| 6076 | 0x17bc | InvalidHolderRewardCoinCreator | A holder-reward pool's coin creator must be the holder-rewards PDA |
| 6077 | 0x17bd | CreatorFeeNotConfigurableForQuote | Creator fee is not configurable on a SOL or USDC quote; the fee schedule applies |
| 6078 | 0x17be | OnlyPumpPools | Only canonical pump pools are supported by this instruction |
| 6079 | 0x17bf | CashbackCoinNotSupported | v2 trades do not support cashback coins; use the v1 instructions |
| 6080 | 0x17c0 | MayhemPoolNotSupported | v2 trades do not support mayhem-mode pools; use the v1 instructions |
| 6081 | 0x17c1 | CreatorFeesNotSwept | creator_fees must be swept before the coin creator changes |
| 6082 | 0x17c2 | FeeTiersEmpty | The fee config tier table is empty |
| 6083 | 0x17c3 | FeeConfigTooShort | The fee config account is shorter than its initialize size |
| 6084 | 0x17c4 | MultiHopDiscontinuousPath | multi-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 |
| 6085 | 0x17c5 | MultiHopCurveRunMismatch | multi-hop: the balances around the bonding-curve hops do not match the amounts pump reported |
| 6086 | 0x17c6 | MultiHopMixedDirection | multi-hop: every hop must trade in the same direction, all buys or all sells |
| 6087 | 0x17c7 | SelfTransferNotAllowed | A 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.