Skip to main content
This page summarizes the cp-amm account model. For exact layouts, use the published IDL and generated TypeScript types exported by @meteora-ag/cp-amm-sdk.

PDA Map

Pool and customizable pool PDAs sort the two mint public keys lexicographically in the seed list.

Constants

Enums

Config

Use fetchConfigState, getStaticConfigs, or getAllConfigs to read configs from TypeScript. Use isConfigPermissionAllow with ConfigPermission.CreatePoolWithoutMintValidation to detect configs that skip permissionless mint and token-badge checks.

PoolFeesConfig

Pool

Use fetchPoolState for state and fetchPoolFees when you need decoded pool fee bytes.

PoolMetrics

RewardInfo

Position

The position NFT is the ownership handle. A position operation that changes liquidity or claims fees verifies the owner through the NFT token account.

PositionMetrics

UserRewardInfo

InnerVesting

Rewards And Vesting

Each pool has up to two RewardInfo slots. Once initialized, a reward slot remains initialized. Each position has matching UserRewardInfo checkpoints. External Vesting accounts are still supported and are 176 byte zero-copy accounts keyed by position. inner_vesting stores one vesting schedule inside the Position account and lets integrations lock liquidity without creating a separate vesting account. Use the SDK lock and refresh helpers unless you are building low-level instructions.

Token Badges

TokenBadge is a 160 byte account that records an operator-approved Token 2022 mint. Pool creation and reward initialization require this account when the mint is not permissionless-supported, unless the pool is created from a private config with CreatePoolWithoutMintValidation. A badge cannot be created for a mint that is already permissionlessly supported, and it cannot override the native Token 2022 mint rejection. A DBC token badge is not a DAMM v2 token badge. DBC-migrated Stock Tokens use private DAMM v2 configs with CreatePoolWithoutMintValidation instead of a per-mint DAMM v2 badge. See Token 2022 support for the permissionless allowlist, badge review path, and config permission rules.