| Account Type | Key Features | |
|---|---|---|
| Light-Mint | Compressed account |
|
| Light-Token | Solana account |
|
| Compressed Token | Compressed account |
|
Light-Mint Accounts
- Light-mints are compressed accounts and cannot be decompressed.
- SPL mints can not be compressed to light-mints.
- Light-mint accounts are rent-free.
- Tokens created from light-mints are light-tokens.
- Token metadata (name, symbol, URI) is stored as an extension in the struct.
- Diagram
- Source Code

Find the source code of light-mints here.
metadata field is used by the Compressed Token Program to store the internal state of a light-mint.
The BaseMint field replicates the field layout and serialization format of SPL Mint accounts. The struct is serialized with Borsh to match the on-chain format of SPL tokens and mints.
Here is how light-mints and SPL mints compare:
- Basemint vs SPL mint
- BaseMint Struct
| Field | Light-Mint | SPL Mint |
|---|---|---|
| mint_authority | ✓ | ✓ |
| supply | ✓ | ✓ |
| decimals | ✓ | ✓ |
| is_initialized | ✓ | ✓ |
| freeze_authority | ✓ | ✓ |
| Light-Mint Data | ✓ | - |
| Extensions | ✓ | via Token-2022 |
Light-Token Account
Light-token accounts are Solana accounts, not compressed accounts.
- A wallet needs a light-token account for each light-mint, SPL mint, or Token 2022 mint it wants to hold, with the wallet address set as the light-token account owner.
- Each wallet can own multiple light-token accounts for the same light-mint.
- A light-token account can only have one owner and hold units of one light-mint.
- Diagram
- Source Code

Find the source code of light-tokens here.
| Field | Light-Token | SPL Token Account |
|---|---|---|
| mint | ✓ | ✓ |
| owner | ✓ | ✓ |
| amount | ✓ | ✓ |
| delegate | unimplemented | ✓ |
| state | ✓ | ✓ |
| is_native | ✓ | ✓ |
| delegated_amount | unimplemented | ✓ |
| close_authority | ✓ | ✓ |
| extensions | ✓ | via Token-2022 |
Rent Config for Light-Tokens
- The rent-exemption for light-token account creation is sponsored by Light Protocol.
- Transaction payer’s pay rent
to keep accounts “active”. - “Inactive” accounts, where rent is below one epoch, are compressed
and the rent-exemption can be claimed by the rent sponsor. - Transfers to inactive accounts (decompress).
| Event | Total Cost | Payer | Time of Rent funded |
|---|---|---|---|
| Account Creation | Transaction payer | Funds 24h rent | |
| Automatic Top ups (when rent < 3h) | 776 lamports | Transaction payer | Funds 3h rent |
| Load Account (when inactive) | Transaction payer | Funds 24h rent |
Associated Light-Token Account
Associated light-token accounts (light-ATAs) follow the same pattern as associated token accounts (ATA):- Each wallet needs its own light-token account to hold tokens from the same light-mint.
- The address for light-ATAs is deterministically derived with the owner’s address, light-token program ID, and mint address.
Compressed Token Account
Compressed token accounts store token balance, owner, and other information like SPL and light-tokens. Any light-token or SPL token can be compressed/decompressed at will. We recommend to use compressed tokens for token distribution or storage of inactive tokens.- Diagram
- Source Code
