| Account Type | Key Features | |
|---|---|---|
| Mint Accounts | Compressed account |
|
| Token Accounts | Solana account |
|
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 |
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.
Additionally Light Token is more performant then SPL on hot paths:
- 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
Under the hood, compressed token accounts store token balance, owner, and other information of inactive light-tokens.- Light token accounts are automatically compressed/decompressed when active/inactive.
- Any light-token or SPL token can be compressed/decompressed at will.
You can still use compressed tokens for token distribution. Learn more about
this here.
- Diagram
- Source Code
