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.
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.
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
A registry account that stores compression policy for a set of Light Token accounts. Controls rent configuration, compression authority, and address space allocation.
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.
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.
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
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: 1Internal type: CMint
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
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.
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.
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
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 TokenCodebase aliases: light-token (Rust crate), c-token (JS/TS package), CToken (Rust types), compressed-token (npm package)
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-tokenInternal type: CToken
A batch instruction for compressed mint operations. Supports CreateMint, MintTo, MintToCompressed, UpdateMintAuthority, UpdateFreezeAuthority, UpdateMetadataField, UpdateMetadataAuthority, RemoveMetadataKey, DecompressMint, and CompressAndCloseMint.Discriminator: 103
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.
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 programAvoid: “rent-free token”, “rent-free account”
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
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.
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.