Pump Developer Updates
6.15K subscribers
1 file
20 links
Updates regarding all technical related changes that may affect integrations
Download Telegram
Hi all, On 11th November at 12:00 UTC, we will enable 2 new breaking features.
1. New token creation standard with token2022 called create_v2
2. Mayhem Mode

Please refer here for the updated IDLs and IDL types: https://github.com/pump-fun/pump-public-docs

Please note:
1. Any coin created with the usual create instruction and owned by the legacy token program can be traded the same way as before. This is not a breaking change for trading or creating such coins, you can continue to use the same accounts and instruction data.
2. Any new coin created after 11th November at 12:00 UTC with create_v2 will be owned by the Token2022 program. Creating and trading such accounts will need changes as described here: https://github.com/pump-fun/pump-public-docs/blob/main/README.md

Program is updated on devnet for testing with both features enabled.

SDKs for both bonding curve and pump swap are updated

https://www.npmjs.com/package/@pump-fun/pump-sdk
https://www.npmjs.com/package/@pump-fun/pump-swap-sdk
Hi all, Mayhem mode and create v2 will now be enabled on 12th November 12:00 UTC instead of 11th November.
Hi all,

We have pushed a non breaking program upgrade on the bonding curve and pump swap program.
Changes as part of this upgrade:

1. The global_volume_accumulator account on the buy instruction of bonding curve and pump swap do not need to be mutable anymore.
2. New fee recipients for mayhem mode: We have introduced 7 new fee recipients that can be used for the buy and sell instruction that can be used when bonding_curve.is_mayhem_mode = true and pool.is_mayhem_mode = true. They can be found in the global and global_config accounts in bonding curve and pump swap respectively.

Any of the following 8 fee recipients can now be used:
[
'GesfTA3X2arioaHp8bbKdjG9vJtskViWACZoYvxp4twS',
'4budycTjhs9fD6xw62VBducVTNgMgJJ5BgtKq7mAZwn6',
'8SBKzEQU4nLSzcwF4a74F2iaUDQyTfjGndn6qUWBnrpR',
'4UQeTP1T39KZ9Sfxzo3WR5skgsaP6NZa87BAkuazLEKH',
'8sNeir4QsLsJdYpc9RZacohhK1Y5FLU3nC5LXgYB4aa6',
'Fh9HmeLNUMVCvejxCtCL2DbYaRyBFVJ5xrWkLnMH6fdk',
'463MEnMeGyJekNZFQSTUABBEbLnvMTALbT6ZmsxAbAdq',
'6AUH3WEHucYZyC61hqpqYUWVto5qA5hjHuNQ32GNnNxA'
]


Updated IDLs can be found here: https://github.com/pump-fun/pump-public-docs
Hi, we will be pushing an update to our programs on Fri Jan 9, afternoon UTC.

This update will make some coins' creator_vault point to new addresses. To ensure buy and sell instructions work seamlessly, always fetch the latest creator on-chain. Do not use cached addresses for bonding_curve.creator or pool.coin_creator.

The derivation logic remains the same, so no code changes are needed if you're already fetching fresh data.

### Pre-Graduation Coins (Bonding Curve)
const bondingCurve = await pumpProgram.account.bondingCurve.fetch(bondingCurvePda);
const creatorVault = PublicKey.findProgramAddressSync(
[Buffer.from("creator-vault"), bondingCurve.creator.toBuffer()],
PUMP_PROGRAM_ID
)[0];

### Graduated Coins (AMM Pool)const pool = await pumpAmmProgram.account.pool.fetch(poolPda);
const coinCreatorVaultAuthority = PublicKey.findProgramAddressSync(
[Buffer.from("creator_vault"), pool.coinCreator.toBuffer()],
PUMP_AMM_PROGRAM_ID
)[0];

If you already fetch the latest bonding_curve.creator and pool.coin_creator from the chain before building your buy and sell instructions, no code changes are needed.
# Creator Rewards Sharing - Developer Update

## Overview

Creator Rewards Sharing allows token creators to split their creator fees with multiple recipients. Instead of all fees going to a single wallet, creators can configure a list of shareholders with custom percentage splits.

## Dynamic creator_vault Address
This update will make some coins' creator_vault point to new addresses. To ensure buy and sell instructions work seamlessly, always fetch the latest creator on-chain. Do not use cached addresses for bonding_curve.creator or pool.coin_creator.

The derivation logic remains the same, so no code changes are needed if you're already fetching fresh data.

### Pre-Graduation Coins (Bonding Curve)

const bondingCurve = await pumpProgram.account.bondingCurve.fetch(bondingCurvePda); const creatorVault = PublicKey.findProgramAddressSync( [Buffer.from("creator-vault"), bondingCurve.creator.toBuffer()], PUMP_PROGRAM_ID )[0];


### Graduated Coins (AMM Pool)

const pool = await pumpAmmProgram.account.pool.fetch(poolPda); const coinCreatorVaultAuthority = PublicKey.findProgramAddressSync( [Buffer.from("creator_vault"), pool.coinCreator.toBuffer()], PUMP_AMM_PROGRAM_ID )[0];


## How Fee Distribution Works
1. Fees accumulate in the creator_vault during buy/sell transactions as before
2. Creator enables sharing by calling create_fee_sharing_config - this changes the coin_creator field to the sharing_config PDA
3. Creator configures shareholders via update_fee_shares with addresses and basis points (must total 10,000 bps = 100%)
4. Fees are distributed by calling distribute_creator_fees on the pump program, which splits the vault balance to shareholders based on their share percentages

## Testing
Here are some examples coins with creator rewards sharing enabled:
- Cmzo3D5XwdzC2jzAbb4x8kJinyHAbHBM9s58kd8Tpump (pump)
- 5x9nfwrY4DywKNANjorjLFEJkXjut1iPSYXDgbTS1PG9Bqa4rKbnZPkJj55UqiHLWLLBn1XGHJZmtd6rAxycwyB7 (pump-amm)
* pump-public-docs has been updated with all the latest IDLs
* SDKs updated at: https://www.npmjs.com/package/@pump-fun/pump-sdk and https://www.npmjs.com/package/@pump-fun/pump-swap-sdk
Cashback Rewards allows token creators to create coins with "cashback" enabled which redirects the creator fee to the users. Each user would get the creator fee on their swap volume as cashback rather than paying that fee to the coin creator.

This is a backwards compatible change, so if you do not update to the latest IDsL/SDKs it will work but cashback will not be enabled.

## Integration

You can also use our Typescript SDKs for easier integration:
- [Pump SDK](https://www.npmjs.com/package/@pump-fun/pump-sdk)
- Latest version is 1.28.0
- [PumpSwap SDK](https://www.npmjs.com/package/@pump-fun/pump-swap-sdk)
- Latest version is 1.14.0
- IDLS: https://github.com/pump-fun/pump-public-docs/tree/main/idl
- Docs: https://github.com/pump-fun/pump-public-docs/blob/main/docs/PUMP_CASHBACK_README.md

## Changes to Instructions

Cashback is only given to the user if the buy/sell instruction appends the proper remaining accounts.
If the coin traded is a cashback coin but the cashback remaining accounts are now added, then the creator fee will
go to the creator as it normally would.

### Bonding Curve Buy Instructions
No change. Cashback is handled automatically if the coin has cashback enabled.

### Bonding Curve Sell Instruction
Expects the UserVolumeAccumulator PDA for the Pump program at the 0th index in the remaining accounts with isWritable: true

### Pump Swap Buy Instruction
Expects the WSOL associated token account of the UserVolumeAccumulator for the Pump AMM program (this is different than same account for the Pump program) at the 0th index of the remaining accounts.

### Pump Swap Sell Instruction
Expects the WSOL associated token account of the UserVolumeAccumulator for the Pump AMM program (this is different than same account for the Pump program) at the 0th index of the remaining accounts.

Expects the UserVolumeAccumulator for the Pump AMM Program (used to derive the WSOL ATA above) at the 1st index of the remaining accounts.

### Create V2
New parameter expected for create_v2 instruction which is an OptionBool to define whether the coin has cashback enabled or not.
In typescript this is a tuple, so it would look like [true].

### Bonding Curve Claim Cashback
New claim_cashback instruction for the Pump program.
No parameters needed. It transfers native lamports from the UserVolumeAccumulator to the user.

### Pump Swap Claim Cashback
New claim_cashback instruction for the Pump AMM program.
No parameters needed. It transfers WSOL from the WSOL ATA of the UserVolumeAccumulator to the user's WSOL ATA.
The user's WSOL ATA is expected to exist before hand, so use "create idempotent associated token account" instruction before the claim instruction if need be.

## Account Changes

### Bonding Curve
New is_cashback_coin: bool field on the BondingCurve account.

## Reading Unclaimed Cashback
It is important to note that there is an UserVolumeAccumulator account for both the Pump (bonding curve) program and Pump Swap (AMM) program.
They share a seed "user_volume_accumulator" with the program ID being the only difference in its seeds.
๐Ÿšจ PROGRAM UPGRADE: NEW REQUIRED ACCOUNTS ๐Ÿšจ

We pushed a program upgrade that requires 1 extra account for an upcoming feature on BOTH:
โ€ข Bonding Curve program
โ€ข Pump Swap AMM program

โœ… These additions are REQUIRED for BOTH cashback + non-cashback coins.


โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
๐Ÿ†• NEW PDAs TO DERIVE
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

1) Bonding Curve v2 PDA
โ€ข Seeds: ["bonding-curve-v2", mint]
โ€ข Program ID: Bonding Curve program id

2) Pool v2 PDA
โ€ข Seeds: ["pool-v2", base_mint]
โ€ข Program ID: Pump AMM program id


โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
CASE A) If you have done ALL cashback-related changes
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Bonding Curve program:
โ€ข For: buy / buy_exact_in / sell
โ†’ Append: bonding_curve_v2 (readonly)
โ†’ Placement: AT THE END of the account list

Pump AMM program:
โ€ข For: buy / buy_exact_in / sell
โ†’ Append: pool_v2 (readonly)
โ†’ Placement: AT THE END of the account list

NOTE: Required for BOTH cashback + non-cashback coins.


โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
CASE If you have NOT done ALL cashback-related changes
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Placement rule:
โ€ข Add the new accounts AFTER the fee program
(i.e. AFTER the FINAL account in the IDL)


โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
ACCOUNT ADDITIONS MATRIX
(AFTER FEE PROGRAM / FINAL IDL ACC)
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

1) BONDING CURVE
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Cashback coins:
โ€ข buy
+ bonding_curve_v2 (readonly)

โ€ข buy_exact_in
+ bonding_curve_v2 (readonly)

โ€ข sell
+ user_volume_accumulator (mutable)
+ bonding_curve_v2 (readonly)


Non-cashback coins:
โ€ข buy
+ bonding_curve_v2 (readonly)

โ€ข buy_exact_in
+ bonding_curve_v2 (readonly)

โ€ข sell
+ bonding_curve_v2 (readonly)


2) PUMP SWAP AMM
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
Cashback coins:
โ€ข buy
+ user_volume_accumulator WSOL ATA (mutable)
+ pool_v2 (readonly)

โ€ข buy_exact_in
+ user_volume_accumulator WSOL ATA (mutable)
+ pool_v2 (readonly)

โ€ข sell
+ user_volume_accumulator WSOL ATA (mutable)
+ user_volume_accumulator (mutable)
+ pool_v2 (readonly)


Non-cashback coins:
โ€ข buy
+ pool_v2 (readonly)

โ€ข buy_exact_in
+ pool_v2 (readonly)

โ€ข sell
+ pool_v2 (readonly)
Hi devs โ€” weโ€™ve shipped Creator Fee V2 integration guidance (docs + SDK helpers). This is not an on-chain update, but you may need to adjust your integration to correctly support all creator-fee configurations.

- SDK update: @pump-fun/pump-sdk@1.30.0 (new helper functions)
https://www.npmjs.com/package/@pump-fun/pump-sdk/v/1.30.0
- Docs / requirements: GitHub recipient + social fee PDA requirements
https://github.com/pump-fun/pump-public-docs?tab=readme-ov-file#github-recipient-and-social-fee-pda-requirements

Why you should care (quick checklist):
- Support multiple creators on a coin
- Correctly add a GitHub account as a creator *(many top apps still do this wrong)*
- Detect when a coin has multiple creators + their addresses
- Detect when a creator is a GitHub handle
- Revoke authority to change creators

If you display creator fees or attribute creators anywhere, please review + validate your integration against the updated docs.
Hi devs โ€” we've shipped Tokenized Agents.

Tokenized Agents allow agents to collect revenue and use a portion of it for buybacks. This does not alter the trade flow โ€” both buy and sell behavior remain the same. This is an entirely new smart contract that works on top of our Pump bonding curve and Pump AMM smart contracts.

To create a tokenized agent, please use the NPM package: @pump-fun/agent-payments-sdk.

After creating the bonding_curve on the Pump bonding curve program, you can send a transaction with the instruction to create a Tokenized Agent.

To initialize it, use the following ix:
"""
import { PumpAgentOffline } from "@pump-fun/agent-payments-sdk";
...
const agentInitializeIx = await PumpAgentOffline.load(mint).create({
authority: creator,
mint,
agentAuthority: creator,
buybackBps: buybackBps,
});
"""

The buybackBps parameter represents how much of the agent's revenue is reserved for buybacks, which happen automatically over time.

Agents can also use functions to verify whether an invoice has been paid and to generate a transaction that a user can send to pay an invoice via the skill here:
https://github.com/pump-fun/pump-fun-skills/blob/main/tokenized-agents/SKILL.md
## One-Time Creator Reward Distribution Policy

This update only affects fee-sharing configuration. Trading instructions are unchanged and do not require an upgrade.


TLDR: After the first configuration, reward distribution is locked and cannot be changed.

What changed:
- Reward distribution can be configured only once.
- You can configure it using either updateFeeShares or updateSharingConfigWithSocialRecipients.
- After it is configured, it is locked and cannot be changed again.

What did not change:
- Buy and sell instructions are unchanged.

Migration/compatibility notes:
- Reward distributions created before this policy are treated as final (locked).
- RevokeFeeSharingAuthority and TransferFeeSharingAuthority are no longer supported.
- If you are unsure whether a reward distribution is still editable, call isSharingConfigEditable from the sdk.

Sdk: https://www.npmjs.com/package/@pump-fun/pump-sdk/v/1.32.0
Docs: https://github.com/pump-fun/pump-public-docs?tab=readme-ov-file#one-time-creator-reward-distribution-policy
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
PROGRAM UPGRADE
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Hi. We will be doing a breaking program upgrade on April 28th, 16:00 UTC, to both the pump bonding curve program and the pump swap amm program. In order to make sure your integrations do not break please see the instructions below:

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
8 NEW FEE RECIPIENTS
( common for both programs )
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”


5YxQFdt3Tr9zJLvkFccqXVUwhdTWJQc1fFg2YPbxvxeD



9M4giFFMxmFGXtc3feFzRai56WbBqehoSeRE5GK7gf7



GXPFM2caqTtQYC2cJ5yJRi9VDkpsYZXzYdwYpGnLmtDL



3BpXnfJaUTiwXnJNe7Ej1rcbzqTTQUvLShZaWazebsVR



5cjcW9wExnJJiqgLjq7DEG75Pm6JBgE1hNv4B2vHXUW6



EHAAiTxcdDwQ3U4bU6YcMsQGaekdzLS3B5SmYo46kJtL



5eHhjP8JaYkz83CWwvGU2uMUXefd3AazWGx4gpcuEEYD



A7hAgCzFw14fejgCp387JUJRMNyz4j89JKnhtKU8piqW


โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
AS PART OF THIS CHANGE
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

1. Bonding curve: A new account is required to be added in buys and sells

2. AMM: 2 new accounts required to be added in buys and sells

All accounts till bonding-curve-v2 and pool-v2 remain the same, no change needed

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
BONDING CURVE
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

1. Add any one of the 8 new fee recipients at the end of the buy and sell instructions.

2. This new account should be added AFTER the bonding-curve-v2 account for both buys and sells.

3. Account needs to be mutable

4. Buy instructions should have 18 accounts in total

5. Sell instruction should have 16 accounts for non cashback coins

6. Sell instruction should have 17 accounts for cashback coins

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
PUMP SWAP ( AMM )
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

1. Add 2 new accounts in this order at the end:

1. One of the 8 fee recipients. ( Second last account, readonly)

2. Quote mint ATA for fee recipient. ( Last account, mutable )

2. These 2 new accounts should be added AFTER the pool-v2 account for both buys and sells for coins that graduate from bonding curve.

3. Even if the coin is not a bonding curve coin, the 2 new accounts are necessary to be added.

4. Buy instructions should have 26 accounts for non cashback coins.

5. Buy instructions should have 27 accounts non cashback coins

6. Sell instructions should have 24 accounts for non cashback coins.

7. Sell instructions should have 26 accounts for cashback coins.

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
SDKS
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

@pump-fun/pump-sdk@1.33.0
https://www.npmjs.com/package/@pump-fun/pump-sdk

@pump-fun/pump-swap-sdk@1.15.0
https://www.npmjs.com/package/@pump-fun/pump-swap-sdk

โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
DEVNET
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

The new accounts can be passed before the program upgrade happens on Monday. The devnet programs are updated with the upcoming change, here are a few example transactions:

Bonding curve

1. https://solscan.io/tx/3iRpvjc41MJYH1g6T1xSjphCqi3PoqZGAZrFxveKxx8hZQDyJyWy8C9FQLbtRt97h9m51tDrLVCAedrVxgVgEPWg?cluster=devnet

2. https://solscan.io/tx/59myh9VnJSwpDn7j5c8FuU1Nx3JN7wXs8WyX9CXABJoDPDYyCDeQvW96ugFzUWQiHG1K6TKAUNNcV2EZXUwtQizM?cluster=devnet

3. https://solscan.io/tx/4iBEotkjLdNAsGxmLjM7E1cwLB8eTEH4BeUZHkthpHBF6ei69vef9vg4FK8jGKnwJUK8FT3DHqRtYn4Rijc6n3sn?cluster=devnet

Amm

1. https://solscan.io/tx/235fuAQcDZXL8CMRuGf7iqMYpkHX95cAXW8Kqh5yVDEPs7zN7K8yRkuji1j6vkAg4ybBQbvQ4HKGaLexR3p9xWm7?cluster=devnet

2. https://solscan.io/tx/jqZAviLnwV7cyBtNzz7DTPB3xSyj2ZTkSAWtUKWKrjXeAkTKM16zsH3J2FbZQtXY4mCsVntVe1C6qnnNVYNDAfP?cluster=devnet

3. https://solscan.io/tx/2MJZMr86BdoNKDRpzAZSyQ8k782ZcNo1gaqse5raFzeWKERkdnr7B9iknSKJRSWGiUzXnsRT5m9CZpouvjbZnhrA?cluster=devnet

4. https://solscan.io/tx/2FDkzZ4WzKN3FMLuffz61JLMGpJ1Q9oGydyJp14xttgYaMZM5rZQiXnBkaSGTadCaP7EhjQw2peLGWskk8YaRS5s?cluster=devnet


https://github.com/pump-fun/pump-public-docs/blob/main/docs/BREAKING_FEE_RECIPIENT.md
Hello everyone. We just upgraded the Bonding curve contract for a new non breaking feature.
Happy to announce support of USDC as a quote mint for creating and trading Pump meme coins.

As part of this upgrade, we have rolled out 3 new instructions, buy_v2, sell_v2 and buy_exact_quote_in_v2.
These new instructions are meant to unify the trading interface so the same instruction can be used to trade USDC and SOL paired coins with no optional accounts depending on the coin mint.

quote_mint needs to be passed as the wrapped SOL mint to trade coins paired with SOL. The trading and transfer will continue to happen identical to legacy buy, sell and buy_exact_quote_in using native SOL.

Please note: We are only announcing the rollout of the new instructions today. USDC paired coins cannot be created until next week. There will be a 72 hours notice before its enabled.

For more technical details of the new instructions, please refer to this doc: https://github.com/pump-fun/pump-public-docs
New rust sdk: https://crates.io/crates/pump-rust-client