Skip to main content

Token 2022 Support

DAMM v2 supports pools and positions using Token 2022 SPL tokens, including those with various Token 2022 extensions. The program automatically detects the mint’s owner program and applies correct behaviors for Pool, Swap, and LP reward flows.

Pool State: Token Program Flags

  • The token_a_flag and token_b_flag fields on the pool state indicate which token program each mint uses:
    • 0 = SPL Token Program (legacy)
    • 1 = SPL Token 2022 Program

Permissionlessly Supported Extensions

The following Token 2022 extensions are supported permissionlessly (no badge or special registration required):
  • Transfer Fee (TransferFeeConfig)
    • Trading and liquidity operations automatically calculate and adjust for transfer fees using both transfer_fee_included and transfer_fee_excluded logic.
    • Fees are validated across all swaps, deposits/withdrawals, and farming rewards.
  • Metadata Pointer (MetadataPointer)
    • Supported for proper metadata display and integration.
  • Token Metadata (TokenMetadata)
    • Token 2022 mints using Token Metadata extension are fully supported.

Permissioned Extensions

Mints with other Token 2022 extensions require a token badge to be supported in DAMM v2 pools. These include, but are not limited to:
  • Interest Bearing (InterestBearingConfig)
  • Permanent Delegate (PermanentDelegate)
  • Non-transferable
  • Memo Transfer, etc.
To enable such tokens:
To apply for a token badge, start by completing this Google Form describing your token and any extensions in use. After submitting the form, open a ticket in the Meteora Discord to notify the team for review.

Unsupported Extensions

Some Token 2022 extensions are not supported or are only supported in limited form:
  • Transfer Hook (TransferHook): Only supported if both the program ID and authority are None (no active hook). Otherwise, the mint is treated as unsupported.
  • Token 2022 Native mint (So11111111111111111111111111111111111111112) is not supported (UnsupportNativeMintToken2022 error).
If you try to create a pool or position with a Token 2022 mint that is not permissionlessly or permissionedly supported, pool creation will fail.