> ## Documentation Index
> Fetch the complete documentation index at: https://luminouslabs-cc5545c6-indexing-tokens.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Light Token terminology

> Terminology for Light Token concepts and operations

For ZK Compression terms, see [Terminology](/references/terminology).

## Claim

An instruction to recover rent from expired compressible accounts. When a Light Token account's prepaid rent period expires, any user can claim the rent-exemption lamports stored in the account.

## Compressibility

The state when a Light Token account can be compressed permissionlessly. An account becomes compressible when its prepaid rent period expires. The `is_compressible()` function checks the current slot against the account's rent configuration.

## Compressible extension

An extension on decompressed Light Token accounts that tracks compression configuration and rent data. Fields include `decimals`, `compression_only`, `is_ata`, and embedded `CompressionInfo`. Accounts with this extension become eligible for permissionless compression when their rent expires.

Discriminator: 32

## CompressibleConfig

A registry account that stores compression policy for a set of Light Token accounts. Controls rent configuration, compression authority, and address space allocation.

* **PDA seeds**: `["compressible_config", version_bytes]`
* **States**: Inactive (0), Active (1), Deprecated (2)

## Compress

An operation that moves tokens from a decompressed Light Token account into a compressed account stored in a state tree. The token data becomes a leaf in the Merkle tree, and the on-chain Solana account can be closed.

## CompressAndClose

An instruction that atomically compresses a Light Token account's balance and closes the Solana account. Rent-exemption lamports return to the rent sponsor. Requires the Compressible extension.

## Compressed (cold) state

A Light Token state where token data exists as a leaf in a state Merkle tree. No on-chain Solana account exists. Requires a validity proof to read or modify. Uses ZK Compression state trees.

Internal identifier: `ctoken-cold`

## Compressed Mint

A mint account for Light Tokens stored in a state tree. Contains SPL-compatible fields (`mint_authority`, `supply`, `decimals`, `freeze_authority`) plus Light Protocol metadata. Can be decompressed to a Solana account.

Discriminator: 1

Internal type: `CMint`

<Info>
  **Source**: [https://github.com/Lightprotocol/light-protocol/tree/main/programs/compressed-token](https://github.com/Lightprotocol/light-protocol/tree/main/programs/compressed-token)
</Info>

## CompressedOnly extension

An extension on compressed token accounts indicating they can only be decompressed, not transferred. Created when a Light Token account with this extension is compressed-and-closed. Fields include `delegated_amount`, `withheld_transfer_fee`, and `is_ata`.

Discriminator: 31

## CompressionInfo

A structure embedded in the Compressible extension that tracks rent and compression configuration. Fields include `config_account_version`, `compress_to_pubkey`, `lamports_per_write`, `compression_authority`, `rent_sponsor`, `last_claimed_slot`, `rent_exemption_paid`, and `rent_config`.

## Decompress

An operation that moves tokens from a compressed account in a state tree to a decompressed Light Token account on-chain. Creates or updates a Solana account with the token data.

## Decompressed (hot) state

A Light Token state where token data exists in an on-chain Solana account with the Compressible extension. Supports direct read/write access without validity proofs. Standard Solana rent-exemption applies and is reclaimable on compression.

Internal identifier: `ctoken-hot`

## Light Token

A token system built on ZK Compression with sponsored rent-exemption. Token data can exist in Merkle trees (compressed state) or on-chain Solana accounts (decompressed state). Uses ZK Compression state trees and validity proofs.

**Canonical name**: Light Token

**Codebase aliases**: `light-token` (Rust crate), `c-token` (JS/TS package), `CToken` (Rust types), `compressed-token` (npm package)

<Info>
  **Source**: [https://github.com/Lightprotocol/light-protocol/tree/main/programs/compressed-token](https://github.com/Lightprotocol/light-protocol/tree/main/programs/compressed-token)
</Info>

## Light Token account

A decompressed token account on-chain with SPL Token layout plus the Compressible extension. Stores mint, owner, amount, delegate, and state fields.

Discriminator: 2 (matches SPL Token)

Program owner: `light-compressed-token`

Internal type: `CToken`

## MintAction

A batch instruction for compressed mint operations. Supports `CreateMint`, `MintTo`, `MintToCompressed`, `UpdateMintAuthority`, `UpdateFreezeAuthority`, `UpdateMetadataField`, `UpdateMetadataAuthority`, `RemoveMetadataKey`, `DecompressMint`, and `CompressAndCloseMint`.

Discriminator: 103

## Non-unified path

An SDK import path (`@lightprotocol/compressed-token`) that decompresses compressed tokens without wrapping SPL or Token-2022 balances. Uses `wrap=false` by default. Output can be SPL, Token-2022, or Light Token. Suited for DeFi integrations where downstream applications may not support Light Token.

## Sponsored rent-exemption

The rent model for Light Tokens. Compressed tokens require no lamports because data lives in state Merkle trees. Decompressed tokens pay standard Solana rent-exemption, which the owner reclaims when compressing the account.

**Canonical term**: Sponsored rent-exemption by the light-token program

**Avoid**: "rent-free token", "rent-free account"

## Token pool

An SPL token account that holds SPL tokens corresponding to compressed tokens in circulation. Tokens deposit during compression and withdraw during decompression.

* **PDA seeds**: `["pool", mint_pubkey]` or `["pool", mint_pubkey, "restricted"]` for mints with restricted extensions
* **Max pools**: 5 per mint (indices 0-4)

## TokenData

The data structure for a compressed Light Token stored in a state tree leaf. Contains `mint`, `owner`, `amount`, `delegate`, and `state` fields. State values: Initialized (0), Frozen (1). Supports optional TLV extensions.

## TokenMetadata extension

A metadata extension for compressed mints storing name, symbol, uri, and additional key-value pairs.

Discriminator: 19

Fields: `update_authority`, `mint`, `name`, `symbol`, `uri`, `additional_metadata` array

## Transfer2

A batch instruction for compression operations supporting multiple modes:

* **Compress** (0): Decompressed account to compressed account in state tree
* **Decompress** (1): State tree to decompressed account
* **CompressAndClose** (2): Compress and close atomically, rent to sponsor

Discriminator: 101

## Unified path

An SDK import path (`@lightprotocol/compressed-token/unified`) that aggregates balances from hot Light Token, cold Light Token, SPL, and Token-2022 into a single canonical ATA. Enforces `wrap=true`. Output is a single Light Token ATA derived from `CTOKEN_PROGRAM_ID`. Suited for closed-loop payment systems where you control the complete transaction flow.
