Meteora Dev Updates
700 subscribers
1 photo
1 video
45 links
Important updates for anyone building with Meteora.

Docs: https://docs.meteora.ag/
Download Telegram
https://x.com/MeteoraAG/status/1925538484971769972

Heads up — DAMM V2 is live on Dexscreener, if you use DBC, consider migrating to DAMM V2 going forward!
2🔥2🦄1
❗️Heads up for DBC Builders

The latest version of the SDK is live now

@meteora-ag/dynamic-bonding-curve-sdk@1.1.6


Breaking changes to note:
- If you are using any of the buildCurveAndCreateConfig or buildCurveByMarketCapAndCreateConfig functions, those are deprecated now. The new flow would be as such:
--> 1. Call any of the build curve functions (`buildCurve`, buildCurveWithMarketCap, buildCurveWithLiquidityWeights, buildCurveWithCreatorFirstBuy, `buildCurveWithTwoSegments`)
--> 2. Then call client.partner.createConfig to create the config
--> Full Flow:

const curveConfig = buildCurveWithMarketCap({
...
)}

const transaction = await client.partner.createConfig({
config: new PublicKey('1234567890abcdefghijklmnopqrstuvwxyz'),
feeClaimer: new PublicKey('boss1234567890abcdefghijklmnopqrstuvwxyz'),
leftoverReceiver: new PublicKey('boss1234567890abcdefghijklmnopqrstuvwxyz'),
payer: new PublicKey('boss1234567890abcdefghijklmnopqrstuvwxyz'),
quoteMint: new PublicKey('So11111111111111111111111111111111111111112'),
...buildCurveResponse,
})


Changelog: https://github.com/MeteoraAg/ts-sdk/blob/main/packages/dynamic-bonding-curve/CHANGELOG.md

Documentation: https://github.com/MeteoraAg/ts-sdk/blob/main/packages/dynamic-bonding-curve/docs.md

Happy building! Feel free to reach out to me @dannweeeee if you have any questions / bugs / feedback on any of our SDKs.
3💯1
❗️Program Update for DBC Builders

The latest version of the DBC Program and Typescript SDK is live now:

DBC Program Update:
- Added the functionality to transfer pool creator to a new creator
- Added the functionality to collect a migration fee from migration quote threshold (this can be fee shared to pool creator)
- Added the functionality to indicate whether token update authority is mutable or immutable

This will mean that there are 2 additional parameters when you create your config key:

tokenUpdateAuthority: number // 0 - Mutable, 1 - Immutable,
migrationFee: {
// Optional migration fee (set as 0 for feePercentage and creatorFeePercentage for no migration fee)
feePercentage: number // The percentage of fee taken from migration quote threshold (0-50)
creatorFeePercentage: number // The fee share percentage for the creator from the migration fee (0-100)
}


Additional functions:
- client.creator.transferPoolCreator - to transfer poolCreator to a new wallet address
- client.creator.withdrawMigrationFee - creator to withdraw migration fee
- client.partner.withdrawMigrationFee - partner to withdraw migration fee

For Typescript SDK users, please check the CHANGELOG.md to see if this change affects you.

CHANGELOG.md: https://github.com/MeteoraAg/ts-sdk/blob/main/packages/dynamic-bonding-curve/CHANGELOG.md

docs.md: https://github.com/MeteoraAg/ts-sdk/blob/main/packages/dynamic-bonding-curve/docs.md

Happy building! Feel free to reach out to me @dannweeeee if you have any questions / bugs / feedback on any of our SDKs.
3💯1
Important for integrators / indexers / trading platforms & bots:
New endpoint for DAMM v2 pool creation
! initialize_pool_with_dynamic_config

- Using this new endpoint, partners have more flexibility; they can use the same private config key to create multiple pools with different params (e.g. for fee scheduler, fee collection token), instead of requiring multiple config keys.
- Also, with this new endpoint, only the pool creator authority is allowed to create a pool and this authority is set in a private config key. As such, even if the token is leaked, the pool creator authority can still create the pool normally.
- Another use case is to allow partners to use their own private config key to seed or migrate to a DAMM v2 pool which has a specific price range.
- More details here: https://github.com/MeteoraAg/cp-amm-sdk/blob/main/docs.md#createcustompoolwithdynamicconfig

Please help to support this new endpoint, as well as the previous 2 endpoints for DAMM v2:
- initialize_pool : Create a new pool from a config key
- initialize_customizable_pool : Create a new pool with customizable parameters. When using this endpoint, there's no config key. The pool address is unique to each token mint pair. So it should only be used by the token deployer and the token can't be leaked. If the token is leaked and someone created a pool for it, another new pool can't be created using this endpoint.

Thank you!
💯21
❗️ DBC Program Update: Rate Limiter & Breaking Changes
We’re rolling out a major update to the Dynamic Bonding Curve (DBC) program, including a Rate Limiter feature and 99% max fee.

📆 ETA: Thursday, 12th June 2025, 5pm UTC+8 (in ~1 week)
Ideally, you should deploy your update a short period before our program deployment (e.g. by 12th June, ~10am UTC+8)
We’ll notify if the timeline shifts and when the program is deployed.

[1] Changelogs
Changelogs for Program release [0.1.3] can be found [here](https://jupiterexchange.notion.site/Changelog-Rate-Limiter-and-99-Fee-20a9650318e9818f97bdc6084183a9d6?pvs=143)

[1] Breaking Change:
- Maximum cliff_fee_numerator has been bumped up from 50% (5000 bps / 500_000_000) to 99% (9900 bps / 990_000_000)
- If is_rate_limiter_applied, then swap instruction will need to submit instruction_sysvar_account in remaining_accounts, otherwise transaction will fail.
- swap_quote function will need to account for the rate limiter math calculation and 99% max fee.
- Important: This means that your swap quotes will show slight inaccuracy if you update now, if fees are >50%.

[2] Changes:
- base_fee parameters in pool_config has been updated to first_factor, second_factor, third_factor
- Updated fee_scheduler_mode to base_fee_mode to account for rate limiter base fee mode
- 0 = Fee Scheduler - Linear
- 1 = Fee Scheduler - Exponential
- 2 = Rate Limiter

- Old `base_fee` Parameters:
base_fee = {
cliff_fee_numerator: BN
number_of_period: number
period_frequency: BN
reduction_factor: BN
fee_scheduler_mode: FeeSchedulerMode // 0 or 1
}


- New `base_fee` Parameters:
base_fee = {
cliff_fee_numerator: BN
first_factor: number // feeScheduler: numberOfPeriod, rateLimiter: feeIncrementBps
second_factor: BN // feeScheduler: periodFrequency, rateLimiter: maxLimiterDuration
third_factor: BN // feeScheduler: reductionFactor, rateLimiter: referenceAmount
base_fee_mode: BaseFeeMode // 0, 1, or 2
}


Note:
- Base Fee can still be derived from cliff_fee_numerator if there is no fee_scheduler or rate_limiter
- Math formulas can be found in [here](https://jupiterexchange.notion.site/dbc-integrators-handbook).
- Program is live on DEVNET where you can test with.
- The Rate Limiter & Fee Scheduler may apply additional taxes based on size or time, we are happy to discuss how best to implement a smooth UX in your products

Program PR can be found here:
https://github.com/MeteoraAg/dynamic-bonding-curve/pull/89

Typescript SDK PR can be found here:
https://github.com/MeteoraAg/ts-sdk/pull/47
7💯1
Meteora Dev Updates
❗️ DBC Program Update: Rate Limiter & Breaking Changes We’re rolling out a major update to the Dynamic Bonding Curve (DBC) program, including a Rate Limiter feature and 99% max fee. 📆 ETA: Thursday, 12th June 2025, 5pm UTC+8 (in ~1 week) Ideally, you should…
👆Reminder: Upcoming DBC program update
🕔 ~
Thur, 12 June, 5pm UTC+8. Details here:
https://t.me/meteora_dev/14

For partners using our TS SDK, 99% max fee & Rate Limiter features are available in Typescript SDK v1.2.4 (beta)
https://www.npmjs.com/package/@meteora-ag/dynamic-bonding-curve-sdk/v/1.2.4
Program update is already live on devnet to test with!

Note:
If you update now, there’ll be a breaking change. If fees are >50% at any point, the current program will cap the fee at 50%, which will lead to an inaccurate swapQuote value. So ideally, you should only support the program update a short period (e.g. a few hours) before our deployment at 5pm UTC+8.
🫡1
IMPORTANT: The Rate Limiter & 99% Fee Scheduler PR will be deployed at 10 AM SGT, on Thursday instead.

Prepare your updated Swap Integrations and deploy a few hours before. Feel free to test on Devnet.

More Info: https://t.me/meteora_dev/14
🫡1
REMINDER: Our Rate Limiter and 99% Max Fee update will be tomorrow (Thursday, 12th June, 10am SGT)

Things to note for Trading Terminals:
Base Fee (Fee Scheduler & Rate Limiter)
- Max fee is bumped up to 99% instead of the max cap 50%.

Rate Limiter
- In swap instruction, if rate limiter is enabled, user need to submit `instruction_sysvar_account` in remaining account, otherwise transaction will be failed.
- Swap quote function will need to be updated to the latest include MAX_FEE and Rate Limiter fee.
- Crucial for all trading terminals to timely update their services by Thursday, 12th June, 10am SGT onwards.

How you can display rate limiter on your UI
`tax: For [duration], [base_fee]% for <= [Reference Amount], >=[base_fee]% for > [Reference Amount]`

Latest change logs, https://jupiterexchange.notion.site/Changelog-Rate-Limiter-and-99-Fee-20a9650318e9818f97bdc6084183a9d6

Happy to answer any question y’all might have around these set of changes
You can refer to the graphics for reference around how you can best display this on your UI
New API endpoints for DAMM v1 and DAMM v2

We will continue to maintain the old endpoints as well for approximately ~2 weeks to facilitate this transition. But please switch to the new API endpoints as soon as possible. Thank you!

DAMM v1 API
New endpoints
- Mainnet: https://damm-api.meteora.ag/swagger-ui/
- Devnet: https://damm-api.devnet.meteora.ag/

Old endpoints (deprecated soon)
- Mainnet: https://amm-v2.meteora.ag/swagger-ui/
- Devnet: https://devnet-amm-v2.meteora.ag/

DAMM v2 API
New endpoints
- Mainnet: https://dammv2-api.meteora.ag/swagger-ui/
- Devnet: https://dammv2-api.devnet.meteora.ag/

Old endpoints (deprecated soon)
- Mainnet: https://cp-amm-api.meteora.ag/swagger-ui/

You can view Meteora's main API endpoints here: https://docs.meteora.ag/resources/meteora-apis
👍7
DAMM v2 Program Update containing Permissionless Liquidity Management (Farming Rewards) is LIVE

Pool creators can now permissionlessly set up a DAMM v2 Pool Farm

Added:
⁃ Pool state add a new field creator, that records address for pool creator

Changes:
⁃ Allow pool creator to initialize reward at index 0 permissionlessly

Full program changelog: https://github.com/MeteoraAg/damm-v2/blob/main/CHANGELOG.md#cp_amm-012

Summary: https://meteoraag.notion.site/Changelog-Permissionless-Rewards-21fcd1ff211180959426f3b16c1968e0?pvs=74
🔥5
DBC Program Update containing Token Update Authority and Mint Authority is LIVE

You can now specify mutable / immutable token metadata authority and mint authority

feat:
- added 3 new options: PartnerUpdateAuthority [2], CreatorUpdateAndMintAuthority [3], PartnerUpdateAndMintAuthority [4]

❗️Update your typescript SDK to v1.2.9 to use this latest feature

minor:
- CollectFeeMode enums in TS SDK changed from QuoteOnly and Both to QuoteToken and OutputToken

Full program changelog: https://github.com/MeteoraAg/dynamic-bonding-curve/blob/main/CHANGELOG.md#dynamic_bonding_curve-014-pr-100

Full TS SDK changelog: https://github.com/MeteoraAg/dynamic-bonding-curve-sdk/blob/main/packages/dynamic-bonding-curve/CHANGELOG.md#129---2025-06-27

Summary: https://meteoraag.notion.site/Changelog-Token-Update-Authority-and-Mint-Authority-219cd1ff21118190be05d05a2c7346e1
4
DLMM Program Update containing Dynamic Positions (Extendable & Rebalance Positions) is GOING LIVE THIS WEEK

This week, we are rolling out a major update to the DLMM program - Dynamic Positions. This update will allow liquidity providers to increase or decrease their DLMM position length, as well as rebalance their DLMM position dynamically.

NOTE: Integrators can start to prepare for the upcoming deployment. After we execute the program, we will update you again and you can pump the changes.

Added:
⁃ Endpoint claim_fee and claim_fee2 emit event ClaimFee2Event, that includes active_bin_id.
⁃ Endpoint claim_reward and claim_reward2 emit event ClaimReward2Event, that includes active_bin_id.
⁃ Add new endpoints increase_position_length and decrease_position_length, that helps to modify the position's length.
⁃ Add new endpoint rebalance_liquidity, that help position's owner to manage position better (can combine multiple modifying liquidity instructions and resize position underneath).

Changes:
⁃ Update to anchor 0.31.1 and solana 2.1.*
⁃ Support dynamic position, new position bin data will be added in extended bytes data of position account, can support up to 1400 bin data in a position account.
⁃ Remove the constraints 70 bins in endpoints add_liquidity_by_strategy, add_liquidity_by_weight, add_liquidity_by_weight_one_side
⁃ Endpoint initialize_bin_array_bitmap_extension won't return error if the bitmap_extension account has been initialized.

Full typescript SDK changelog: https://github.com/MeteoraAg/dlmm-sdk/blob/feat/extendable-position/CHANGELOG.md#meteora-agdlmm-160---pr-196

Summary: https://meteoraag.notion.site/Changelog-Dynamic-Positions-233cd1ff211181c8922be4d7989330db
🔥7👍1💯1
DLMM Program Update containing Dynamic Positions (Extendable & Rebalance Positions) is LIVE

Integrators can start deploying their changes.

Check the Changelog + Pre-announcement here: https://t.me/meteora_dev/26

Happy building ☄️
🔥3👍1
DBC Program Update containing Customizable Graduated Pool Fee (for DAMM v2 graduated pools) is LIVE

You can now specify customizable fees in DBC -> DAMM v2 pools.

feat:
⁃ customizable fees (between 0.01% to 10%)
⁃ dynamic fees (enabled or disabled)
⁃ specify quote only or quote + base token collect fee modes
⁃ Emit new event when partner create a new config key, that includes more information: EvtCreateConfigV2

❗️FOR AUTO MIGRATORS: Migrators needs to check the new value for migration_fee_option, if the value is 6 (Customizable), then need to use the new config key for DammV2 migration (A8gMrEPJkacWkcb3DGwtJwTe16HktSEfvwtuDh2MCtck)

❗️Update your typescript SDK to v1.3.5 to use this latest feature

minor:
- buildCurve, buildCurveWithMarketCap, buildCurveWithTwoSegments, buildCurveWithLiquidityWeights functions now have an optional migrationFeeOption parameter

Full program changelog: https://github.com/MeteoraAg/dynamic-bonding-curve/blob/main/CHANGELOG.md#dynamic_bonding_curve-015-pr-113

Full TS SDK changelog: https://github.com/MeteoraAg/dynamic-bonding-curve-sdk/blob/main/packages/dynamic-bonding-curve/CHANGELOG.md#135---2025-07-31

Summary: https://meteoraag.notion.site/Changelog-Customizable-Graduated-Pool-Fees-219cd1ff21118190be05d05a2c7346e1?pvs=74
🫡3🔥2
DAMM v2 Program Update containing Split LP Position and Changes to EvtInitializeReward is LIVE

You can now dynamically split LP position onchain via the program endpoint.

Added:
⁃ Add new endpoint split_position that allows position's owner to split position.

Changes:
⁃ Update quote function in rust sdk, added a condition for swap enabled

Breaking Changes:
EvtInitializeReward emit more fields: creator, reward_duration_end, pre_reward_rate and post_reward_rate

Full program changelog: https://github.com/MeteoraAg/damm-v2/blob/main/CHANGELOG.md#cp_amm-013

Full TS SDK changelog: https://github.com/MeteoraAg/damm-v2-sdk/blob/main/CHANGELOG.md#damm_v2_sdk-110-pr-59

Summary: https://meteoraag.notion.site/Changelog-Split-LP-Position-241cd1ff211180b5beabfb717689b694?pvs=74
DBC Program Update containing Swap2 is LIVE

You can now process swaps via 3 different swap modes: Exact In, Partial Fill or Exact Out

❗️NOTE: ALL Trading Terminals are to change to swap2`endpoint - `swapMode: 1 (PartialFill)
The previous swap function was a swap ExactIn function that processes swaps based on the exact amount in, not taking into account how much baseMint tokens are left available in the curve to be sold. With swap2, we introduced 2 additional modes, PartialFill and ExactOut that trading terminals can use to accurately process trader swaps without causing traders to overpay for the last swap in the curve due to lack of baseMint tokens.

P.S.: We will not be processing any refund requests from traders who overpaid from DBC last swap, in 1 weeks’ time.

For the DBC Program:

Added:
- Added new endpoint swap2, that includes 3 different swap_mode: 0 (ExactIn), 1 (PartialFill) and 2 (ExactOut)
- Emit new event in 2 swap endpoints EvtSwap2, that includes more information about quote_reserve_amount, migration_threshold and included_fee_input_amount


❗️the previous swap function is still available and all changes are backwards compatible

For the DBC Typescript SDK:

Added:
- Added new endpoint swap2, that includes 3 different swap_mode: 0 (ExactIn), 1 (PartialFill) and 2 (ExactOut)
- Added new endpoint swapQuote2 that includes 3 different swap_mode: 0 (ExactIn), 1 (PartialFill) and 2 (ExactOut) and returns SwapResult2
- Added prepareSwapAmountParam helper that calculates your token amountIn in lamports
- Added getCurrentPoint helper that helps you to getSlot() or getBlockTime() depending on your activationType

Changed:
- swapQuote now returns SwapResult instead of QuoteResult
- Deprecated swapQuoteExactIn
- Deprecated swapQuoteExactOut


Full program changelog: https://github.com/MeteoraAg/dynamic-bonding-curve/blob/main/CHANGELOG.md

Full TS SDK changelog: https://github.com/MeteoraAg/dynamic-bonding-curve-sdk/blob/main/packages/dynamic-bonding-curve/CHANGELOG.md

Summary: https://meteoraag.notion.site/Changelog-Swap2-219cd1ff21118190be05d05a2c7346e1?pvs=74
5
Meteora Dev Updates
DBC Program Update containing Swap2 is LIVE You can now process swaps via 3 different swap modes: Exact In, Partial Fill or Exact Out ❗️NOTE: ALL Trading Terminals are to change to swap2`endpoint - `swapMode: 1 (PartialFill) The previous swap function…
Adding on to the DBC Program Update - Swap2 feature:

ALL trading terminals to take note:

- ensure that you index swap2 and EvtSwap2
- ONLY change the swap ix from swap to swap2 with swapMode: 1 (partialFill) on 22nd August, Friday (9am UTC) (you can test this on mainnet already)

+ For Trading Terminals to take NOTE: it is crucial for all trading terminals to only change their swap ix from `swap` to `swap2` to ensure that the charts across all trading terminals are synchronous

dbc idl: https://github.com/MeteoraAg/dynamic-bonding-curve-sdk/blob/main/packages/dynamic-bonding-curve/src/idl/dynamic-bonding-curve/idl.json

P.S. we will be extending the refunds for last swap till Friday 29th August, 9am UTC
👍2🫡1