> ## Documentation Index
> Fetch the complete documentation index at: https://www.zkcompression.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Token 2022 Extensions with Light Token

> Most Token 2022 extensions are supported by Light Token to add features through extra instructions to a token mint or token account.

## How extensions work with Light Token

1. **Create** a Token-2022 mint with one or more extensions
2. **[Register an interface PDA](/light-token/cookbook/add-interface-pda)** to hold balances from that mint in Light Token accounts
3. **Use** the same Light Token APIs (`transferInterface`, `wrap`, `unwrap`) as any other token

Each extension adds specific state that's generally initialized during mint or token account creation.
When initializing either account, you can enable specific extensions simultaneously for different functionality.
Most extensions can't be added after an account is initialized. Use the Solana documentation to learn more about Token 2022 extensions.

## Supported extensions

| Extension                         | Restriction                                   | Description                                                                               | Links                                                                                                                                                                                                           |
| --------------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **MetadataPointer**               | -                                             | Points a mint to the account that stores its metadata.                                    | [Solana Docs](https://solana.com/developers/guides/token-extensions/metadata-pointer) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/metadata-and-metadata-pointer.ts)  |
| **TokenMetadata**                 | -                                             | Stores token name, symbol, and URI directly on the mint.                                  | [Solana Docs](https://solana.com/developers/guides/token-extensions/metadata-pointer) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/metadata-and-metadata-pointer.ts)  |
| **TransferFeeConfig**             | Fees must be zero                             | Withholds a percentage of each transfer as a fee.                                         | [Solana Docs](https://solana.com/developers/guides/token-extensions/transfer-fee) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/transfer-fees.ts)                      |
| **TransferHook**                  | `program_id` must be nil                      | Invokes a custom program on every transfer via CPI.                                       | [Solana Docs](https://solana.com/developers/guides/token-extensions/transfer-hook) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/transfer-hook.ts)                     |
| **InterestBearingConfig**         | -                                             | Displays a UI-adjusted balance that accrues interest over time.                           | [Solana Docs](https://solana.com/developers/guides/token-extensions/interest-bearing-tokens) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/interest-bearing-tokens.ts) |
| **DefaultAccountState**           | Set `compression_only` flag on token accounts | Sets the initial state (e.g., frozen) for newly created token accounts.                   | [Solana Docs](https://solana.com/developers/guides/token-extensions/default-account-state) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/default-account-state.ts)     |
| **PermanentDelegate**             | Set `compression_only` flag on token accounts | Grants an authority unrestricted transfer and burn rights over all accounts for the mint. | [Solana Docs](https://solana.com/developers/guides/token-extensions/permanent-delegate) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/permanent-delegate.ts)           |
| **MintCloseAuthority**            | Set `compression_only` flag on token accounts | Allows a designated authority to close a mint account.                                    | [Solana Docs](https://solana.com/developers/guides/token-extensions/mint-close-authority) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/close-mint.ts)                 |
| **GroupPointer**                  | -                                             | Points a mint to the account that stores group configuration.                             | [Solana Docs](https://solana.com/docs/tokens/extensions/group-member) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/token-groups-and-members.ts)                       |
| **GroupMemberPointer**            | -                                             | Points a mint to the account that stores group member configuration.                      | [Solana Docs](https://solana.com/docs/tokens/extensions/group-member) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/token-groups-and-members.ts)                       |
| **TokenGroup**                    | -                                             | Stores group configuration directly on the mint (e.g., NFT collections).                  | [Solana Docs](https://solana.com/docs/tokens/extensions/group-member) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/token-groups-and-members.ts)                       |
| **TokenGroupMember**              | -                                             | Stores group member configuration directly on the mint.                                   | [Solana Docs](https://solana.com/docs/tokens/extensions/group-member) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/token-groups-and-members.ts)                       |
| **Pausable**                      | Set `compression_only` flag on token accounts | Allows an authority to pause all minting, burning, and transfers.                         | [Solana Docs](https://solana.com/docs/tokens/extensions/pausable) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/pausable-mint.ts)                                      |
| **ConfidentialTransferMint**      | Initialized but not enabled                   | Configures auditor keys for confidential (encrypted) transfers.                           | [Solana Docs](https://www.solana-program.com/docs/confidential-balances) · [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/extensions/confidential-transfer.ts)                       |
| **ConfidentialTransferFeeConfig** | Initialized but not enabled                   | Encrypts withheld transfer fees under an auditor's public key.                            | [Solana Docs](https://www.solana-program.com/docs/confidential-balances)                                                                                                                                        |
| **ConfidentialMintBurn**          | Initialized but not enabled                   | Allows minting and burning of tokens with encrypted amounts.                              | [Solana Docs](https://www.solana-program.com/docs/confidential-balances)                                                                                                                                        |

## Not supported

The following Token-2022 extensions are not supported by Light Token: Scaled UI Amount, Non-Transferable Tokens, Memo Transfer, Immutable Owner, CPI Guard.

***

## Didn't find what you were looking for?

<Callout type="info">
  Reach out! [Telegram](https://t.me/swen_light) | [email](mailto:support@lightprotocol.com) | [Discord](https://discord.com/invite/7cJ8BhAXhu)
</Callout>
