Skip to main content
DAMM v2 supports both standard SPL Token mints and Token 2022 mints. This lets more Solana assets use DAMM v2 pools while preserving safety around extensions that can change token behavior. Token 2022 support is split into two paths:

Permissionless Support

If your mint only uses supported safe extensions, you can create and use a DAMM v2 pool without a token badge.

Token Badge Support

If your mint uses extensions outside the permissionless allowlist, Meteora can review it and initialize a token badge so the mint can pass DAMM v2 validation.

How DAMM v2 Detects Token Programs

When a pool is created, DAMM v2 checks whether each mint is owned by the standard SPL Token Program or the Token 2022 Program. The pool stores that information as token flags, so future swaps, liquidity changes, fee claims, and reward flows can use the correct token program. The two pool mints must be different. If a Token 2022 mint is not permissionlessly supported, the initializer must provide a valid token badge account for that mint. For users, the benefit is simple: DAMM v2 can handle pools where one or both tokens are Token 2022 mints, as long as their extensions are permissionlessly supported or the mint has a valid token badge.

Permissionlessly Supported Extensions

If your Token 2022 mint uses only the following supported extensions, it can be used permissionlessly in DAMM v2:
  • TransferFeeConfig
  • MetadataPointer
  • TokenMetadata
  • TransferHook, only when both the hook program ID and hook authority are unset
SPL Token mints are always accepted. A Token 2022 mint with no extensions is also accepted permissionlessly.

Transfer Fee Config

DAMM v2 accounts for transfer fees when tokens move into or out of pools, including deposits, withdrawals, swaps, and reward funding.

Metadata Pointer

DAMM v2 supports mints that point to metadata through the Token 2022 metadata pointer extension.

Token Metadata

DAMM v2 supports mints that use Token 2022 token metadata for display and integration context.

Revoked Transfer Hook

Transfer Hook is permissionless only when both the hook program ID and authority are unset.

Token Badge Review

Some Token 2022 extensions can materially change how a token behaves. These tokens require a token badge before they can be used in DAMM v2 pool creation or reward initialization. Examples include extensions such as:
  • Interest bearing configuration
  • Permanent delegate
  • Non-transferable tokens
  • Default account state
  • Pausable configuration
  • Confidential transfer mint configuration
  • Scaled UI amount configuration
  • Transfer Hook when the hook program ID or authority is still set
  • Other mint extensions that are not on the permissionless allowlist
At the program level, a valid token badge allows a Token 2022 mint to pass DAMM v2 mint validation even if it uses extensions outside the permissionless allowlist. The badge is created by a Meteora operator after review. You cannot create a badge for a mint that is already permissionlessly supported.
To apply for a token badge, complete this Google Form with details about the token and its extensions. After submitting, open a ticket in the Meteora Discord so the team can review it.
Your mint may be eligible for permissionless DAMM v2 support, as long as it only uses permissionless extensions.
Transfer Hook is permissionless only when both the hook program ID and authority are unset. If either remains set, request token badge review before creating the pool or initializing the mint as a reward token.
Request a token badge before creating the pool. This gives Meteora a review point for extensions that can affect transfers, account state, authorities, pausing, confidentiality, non-transferability, scaled UI amounts, or other behavior that can materially affect swaps, deposits, withdrawals, and integrations.

Reward Tokens

DAMM v2 liquidity mining rewards can also use Token 2022 mints, subject to the same extension support rules. If a reward mint is not permissionlessly supported, it needs a valid token badge before the reward slot can be initialized.

Unsupported Cases

The Token 2022 native mint So11111111111111111111111111111111111111112 is not supported in DAMM v2. A token badge cannot override this restriction. Use the standard wrapped SOL mint for SOL liquidity.
DAMM v2 does not provide a general transfer-hook remaining-account surface for swaps, liquidity, fees, or rewards. Even with a token badge, mints that still execute an active transfer-hook program can fail when tokens move, because DAMM v2 transfers do not forward transfer-hook extra accounts.

Transfer Fee Accounting

For deposits and other flows that need a target post-fee vault amount, DAMM v2 calculates the transfer-fee-included amount the user must send. For withdrawals, swaps, reward funding, and similar flows that reason about received amounts, it calculates the post-fee amount after the current epoch transfer fee. The code also handles the Token 2022 edge case where the transfer fee is 100% by using the mint’s maximum transfer fee.

Why This Matters

Token 2022 expands what tokens can do, but not every extension is safe for a liquidity pool by default. DAMM v2 balances flexibility with pool safety:
  • Simple, common extensions work permissionlessly.
  • Sensitive extensions go through token badge review.
  • Transfer-fee tokens can be supported without forcing users to manually reason about every transfer adjustment.
  • Reward tokens follow the same safety model as pool tokens.