Rent Sponsorship
How does rent-exemption sponsorship work ?
How does rent-exemption sponsorship work ?
| Account Creation Cost | Light | Standard Solana |
|---|---|---|
| Mint account | ~0.00001 SOL | ~0.0015 SOL |
| Associated token account | ~0.00001 SOL | ~0.0029 SOL |
| PDA (100-byte) | ~0.0000115 SOL | ~0.0016 SOL |
feePayer on the transaction bumps a small virtual rent balance (766 lamports by default)
on each write to keep the account active (hot balance).
Set your application as the fee payer so users never interact with SOL.Hot-Cold Lifecycle of Accounts.Accounts get auto-compressed (cold balance) when the virtual rent balance goes below a threshold (eg 24h without write bump).
The cold account’s state is cryptographically preserved on the Solana ledger.
Users only interact with hot accounts and load the cold balance in-flight when using the account again.

How can I make transactions gasless for my users?
How can I make transactions gasless for my users?
payer parameter to the sponsor’s public key on any Light Token instruction. The sponsor pays SOL for rent top-ups and transaction fees while the user only signs to authorize the transfer.Gasless transactions guide
Light Token Program
What is light-token?
What is light-token?
| Light-Token | SPL-Token | |
|---|---|---|
| Mint Account | 0.00001 SOL | 0.0015 SOL |
| Token Account | 0.00001 SOL | 0.0029 SOL |
| Light-Token | SPL-Token | |
|---|---|---|
| ATA Creation | 4,348 | 14,194 |
| Transfer | 312 | 4,645 |
| Transfer (rent-free) | 1,885 | 4,645 |
Can I start using the Light Token Standard?
Can I start using the Light Token Standard?
Do I need to change my client code significantly?
Do I need to change my client code significantly?
light-token-sdk methods are a superset of the SPL-token API — every SPL operation (transfer, approve, revoke, freeze, thaw, burn, close) plus unified balance aggregation, automatic load/decompress, wrap/unwrap, and cross-program dispatch. See “What does ‘superset of the SPL-token API’ mean?” below for details.| Light | SPL | |
|---|---|---|
| Get/Create ATA | getOrCreateAtaInterface() | getOrCreateAssociatedTokenAccount() |
| Derive ATA | getAssociatedTokenAddressInterface() | getAssociatedTokenAddress() |
| Transfer | transferInterface() | transferChecked() |
| Get Balance | getAtaInterface() | getAccount() |
View complete Solana to Light Reference
What does 'superset of the SPL-token API' mean?
What does 'superset of the SPL-token API' mean?
| Category | What it does |
|---|---|
| Cross-program dispatch | Interface methods (e.g., transferInterface) auto-detect the token program and dispatch to SPL, Token 2022, or Light Token. |
| Unified balance | getAtaInterface returns a unified balance for a given mint, aggregating Light Token (hot + cold), SPL, and Token 2022 sources. |
| Wrap / Unwrap | For interoperability with applications that don’t support Light Token yet, you can wrap / unwrap SPL or Token 2022 tokens into Light Token associated token accounts and back. |
View complete Solana to Light reference
Can light-token accounts hold SPL tokens?
Can light-token accounts hold SPL tokens?
transferInterface method.Do light-token accounts require rent?
Do light-token accounts require rent?
- A rent sponsor PDA by Light Protocol pays the rent-exemption cost for the account.
- Transaction fee payers bump a virtual rent balance when writing to the account, which keeps the account “hot”.
- “Cold” accounts virtual rent balance below threshold (eg 24h without write bump) get auto-compressed.
- The cold account’s state is cryptographically preserved on the Solana ledger. Users can load a cold account into hot state in-flight when using the account again.
What happens if my light-token account runs out of rent?
What happens if my light-token account runs out of rent?
Does light-token support extensions?
Does light-token support extensions?
| Extension | Restriction | Description | Links |
|---|---|---|---|
| MetadataPointer | - | Points a mint to the account that stores its metadata. | Solana Docs · Example |
| TokenMetadata | - | Stores token name, symbol, and URI directly on the mint. | Solana Docs · Example |
| TransferFeeConfig | Fees must be zero | Withholds a percentage of each transfer as a fee. | Solana Docs · Example |
| TransferHook | program_id must be nil | Invokes a custom program on every transfer via CPI. | Solana Docs · Example |
| InterestBearingConfig | - | Displays a UI-adjusted balance that accrues interest over time. | Solana Docs · Example |
| DefaultAccountState | Set compression_only flag on token accounts | Sets the initial state (e.g., frozen) for newly created token accounts. | Solana Docs · Example |
| PermanentDelegate | Set compression_only flag on token accounts | Grants an authority unrestricted transfer and burn rights over all accounts for the mint. | Solana Docs · Example |
| MintCloseAuthority | Set compression_only flag on token accounts | Allows a designated authority to close a mint account. | Solana Docs · Example |
| GroupPointer | - | Points a mint to the account that stores group configuration. | Solana Docs · Example |
| GroupMemberPointer | - | Points a mint to the account that stores group member configuration. | Solana Docs · Example |
| TokenGroup | - | Stores group configuration directly on the mint (e.g., NFT collections). | Solana Docs · Example |
| TokenGroupMember | - | Stores group member configuration directly on the mint. | Solana Docs · Example |
| Pausable | Set compression_only flag on token accounts | Allows an authority to pause all minting, burning, and transfers. | Solana Docs · Example |
| ConfidentialTransferMint | Initialized but not enabled | Configures auditor keys for confidential (encrypted) transfers. | Solana Docs · Example |
| ConfidentialTransferFeeConfig | Initialized but not enabled | Encrypts withheld transfer fees under an auditor’s public key. | Solana Docs |
| ConfidentialMintBurn | Initialized but not enabled | Allows minting and burning of tokens with encrypted amounts. | Solana Docs |
View all supported extensions
What is the difference between light-token and compressed token?
What is the difference between light-token and compressed token?
- light-token: Solana account that holds token balances of light-mints, SPL or Token 22 mints.
- Compressed token: Compressed account storing token data. Rent-free, for storage and distribution.
PDA Accounts
What is a Light-PDA?
What is a Light-PDA?
invoke_signed work the same way. Your instruction handlers for reads, updates, and closes don’t change.| Regular PDA | Light-PDA | |
|---|---|---|
| 100-byte account | ~0.0016 SOL | ~0.0000115 SOL |
What is a compressed PDA?
What is a compressed PDA?
| Regular PDA | Compressed PDA | |
|---|---|---|
| 100-byte account | ~0.0016 SOL | ~0.000015 SOL |
When should I use Light-PDA vs compressed PDA?
When should I use Light-PDA vs compressed PDA?
| Light-PDA | Compressed PDA | |
|---|---|---|
| Storage | On-chain; auto-compresses when inactive | Always compressed |
| Validity proof | Not required | Required for every read and write |
| Program changes | Minimal changes. Leaves program logic mostly untouched. | Custom Logic |
| Best for | Shared state: DeFi pools, vaults, config, program-owned accounts | Per-user state: profiles, credentials, DePIN nodes, nullifiers |
PDA accounts overview
Do I need to rewrite my Anchor program to use Light-PDA?
Do I need to rewrite my Anchor program to use Light-PDA?
compression_info: CompressionInfo to your state struct, derive LightAccount and LightAccounts, and add #[light_program] above #[program]. Your instruction logic for reads, updates, and closes stays the same. The client prepends a load instruction if the account is cold.Light-PDA guide
Do Light-PDAs require rent?
Do Light-PDAs require rent?
- A rent sponsor PDA by Light Protocol pays the rent-exemption cost for the account.
- Transaction fee payers bump a virtual rent balance when writing to the account, which keeps the account “hot”.
- “Cold” accounts virtual rent balance below threshold (eg 24h without write bump) get auto-compressed.
- The cold account’s state is cryptographically preserved on the Solana ledger. Users can load a cold account into hot state in-flight when using the account again.
What happens if my Light-PDA runs out of rent?
What happens if my Light-PDA runs out of rent?