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.

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 the mint for Token 2022 mints requiring review. See Token 2022 support for product behavior and supported extension categories.