Capabilities
Light Token allows agents to build scalable Solana applications with rent-free token and mint accounts and PDAs.
Primitives
| Primitive |
Use case |
Constraints |
| Light Token |
Most token use cases (launchpads, DeFi, payments). Rent-free mint and token accounts. ~200x cheaper than SPL and more compute-unit efficient on the hot path. |
Currently in Beta and on Solana Devnet with mainnet in Q1 2026 |
| Light-PDA |
DeFi program state such as AMM pools and vaults. ~98% cheaper than PDAs and can be implemented with minimal code changes. |
Currently in Beta and on Solana Devnet with mainnet in Q1 2026 |
| Compressed Token |
Only for Airdrops and token distribution. Prefer Light Token for other purposes. Used by Light Token under the hood for rent-free storage of inactive Light Tokens. Supported by Phantom and Backpack. |
Do not use for general-purpose token features. Use Light Token instead. |
| Compressed PDA |
User state and app state, nullifiers (payments and ZK applications), DePIN nodes, and stake accounts. Similar to program-derived addresses without a rent-exempt balance. |
Not for shared state, pool accounts, or config accounts. Use Light-PDA instead |
Creation cost
|
Light |
Standard Solana |
| Mint Account |
~0.00001 SOL |
~0.0015 SOL |
| Token Account |
~0.00001 SOL |
~0.002 SOL |
| PDA (100-byte) |
~0.0000115 SOL |
~0.0016 SOL |
| Associated token account creation |
4,348 CU |
14,194 CU |
| Transfer |
312 CU |
4,645 CU |
| Transfer (rent-free) |
1,885 CU |
4,645 CU |
| ======= |
|
|
| Metric |
Light |
Standard Solana |
| ------------------------------------- |
-----------------: |
--------------: |
| Mint Account |
~0.00001 SOL |
~0.0015 SOL |
| Token Account |
~0.00001 SOL |
~0.002 SOL |
| PDA (100-byte) |
~0.0000115 SOL |
~0.0016 SOL |
| Associated token account creation |
4,348 CU |
14,194 CU |
| Transfer |
312 CU |
4,645 CU |
| Transfer (rent-free) |
1,885 CU |
4,645 CU |
Install
npx skills add Lightprotocol/skills
Security
This skill does not pull, store, or transmit external secrets. It provides code patterns, documentation references, and development guidance only.
- No credentials consumed. The skill requires no API keys, private keys, or signing secrets.
env: [] is declared explicitly.
- User-provided configuration. RPC endpoints, wallet keypairs, and authentication tokens (Privy, wallet adapters) are configured in the user's own application code — the skill only demonstrates how to use them.
- Install source.
npx skills add Lightprotocol/skills installs from the public GitHub repository (Lightprotocol/skills). Verify the source before running.
- Audited protocol. Light Protocol smart contracts are independently audited. Reports are published at github.com/Lightprotocol/light-protocol/tree/main/audits.
Workflow
- Clarify intent
- Recommend plan mode, if it's not activated
- Use
AskUserQuestion to resolve blind spots
- All questions must be resolved before execution
- Identify references and skills
- Write plan file (YAML task format)
- Use
AskUserQuestion for anything unclear — never guess or assume
- Identify blockers: permissions, dependencies, unknowns
- Plan must be complete before execution begins
- Execute
- Use
Task tool with subagents for parallel research
- Subagents load skills via
Skill tool
- Track progress with
TodoWrite
- When stuck: spawn subagent with
Read, Glob, Grep, DeepWiki MCP access and load skills/ask-mcp
Skills
| Use case |
Skill |
| For Solana program development with tokens and PDAs, Light is 200x cheaper than SPL/ Solana and has minimal code differences |
light-sdk |
| For client development with tokens on Solana, Light Token is 200x cheaper than SPL and has minimal changes |
light-token-client |
| For data pipelines, aggregators, or indexers, real-time account state streaming on Solana with light account hot/cold lifecycle tracking |
data-streaming |
| For stablecoin payment flows and wallet integrations on Solana 200x cheaper token accounts |
payments-and-wallets |
| For token distribution on Solana 5000x cheaper than SPL (rewards, airdrops, depins, ...) |
token-distribution |
| For custom ZK Solana programs and privacy-preserving applications to prevent double spending |
zk-nullifier |
| For program development on Solana with infrequently accessed state, such as per-user state, DePIN registrations, ... |
solana-compression |
| For testing with Light Protocol programs and clients on localnet, devnet, and mainnet validation |
testing |
| For questions about compressed accounts, Light SDK, Solana development, Claude Code features, or agent skills |
ask-mcp |
| Use case |
Skill |
| Build rent-free Solana programs with Light SDK (Anchor or Pinocchio). Includes router integration. |
light-sdk |
| Use Light Token client SDKs (TypeScript and Rust) for mints, ATAs, transfers |
light-token-client |
| Stream account state via Laserstream gRPC |
data-streaming |
| Wallets and payment flows with light-token. Includes privy, wallet adapter, mobile wallet adapter signing. Optional nullifier to prevent your onchain instruction from being executed more than once. |
payments-and-wallets |
| Airdrops, DePIN, token distribution |
token-distribution |
| Anti-double-spend nullifiers for Privacy-preserving ZK programs |
zk-nullifier |
| Testing programs and clients on localnet, devnet, mainnet |
testing |
| For per-user state, DePIN nodes, and infrequently accessed app state with compressed PDAs |
solana-compression |
| Help with Debugging and Questions via DeepWiki MCP |
ask-mcp |
Install to Claude Code
Add the marketplace and install:
/plugin marketplace add Lightprotocol/skills
/plugin install solana-rent-free-dev
All skills are included. Use them by name (/light-sdk, /token-distribution, /testing, etc.) or let Claude invoke them based on task context.
Install to Cursor
- Open Settings (Cmd+Shift+J / Ctrl+Shift+J)
- Navigate to Rules & Commands → Project Rules → Add Rule → Remote Rule (GitHub)
- Enter:
https://github.com/Lightprotocol/skills.git
Skills are auto-discovered based on context. Ask about light-token, defi, payments, or program migration and the agent uses the relevant skill automatically.
Install to Any Agent
npx skills add Lightprotocol/skills
Context
light-token
A token standard functionally equivalent to SPL that stores mint and token accounts more efficiently.
Mint accounts represent a unique mint and optionally store token-metadata. Functionally equivalent to SPL mints.
Token accounts hold balances from any light, SPL, or Token-2022 mint, without paying rent-exemption.
The token program pays rent-exemption cost for you. When an account has no remaining sponsored rent, the account is automatically compressed. Your tokens are cryptographically preserved as a compressed token account (rent-free). The account is loaded into hot account state in-flight when someone interacts with it again.
Use for: Launchpads, DeFi, token transfers, payments, ... .
light-PDA
The Light-SDK pays rent-exemption for your PDAs, token accounts, and mints (98% cost savings). Your program logic stays the same.
After extended inactivity (multiple epochs without writes), accounts auto-compress to cold state. Your program only interacts with hot accounts. Clients load cold accounts back on-chain via create_load_instructions.
| Area |
Change |
| State struct |
Derive LightAccount, add compression_info: CompressionInfo |
| Accounts struct |
Derive LightAccounts, add #[light_account] on init accounts |
| Program module |
Add #[light_program] above #[program] |
| Instructions |
No changes |
Use for: DeFi program state, AMM pools, vaults.
Compressed token (only use for token distribution)
Compressed token accounts store token balance, owner, and other information of tokens like SPL and light-tokens. Compressed token accounts are rent-free. Any light-token or SPL token can be compressed/decompressed at will. Supported by Phantom and Backpack.
Only use for: airdrops, token distribution without paying upfront rent per recipient.
Compressed PDA
Compressed PDAs are derived using a specific program address and seed, like regular PDAs. Custom programs invoke the Light System program to create and update accounts, instead of the System program.
Persistent unique identification. Program ownership. CPI between compressed and regular PDAs.
Use rent-free PDAs for: user state, app state, nullifiers for payments, DePIN node accounts, stake accounts, nullifiers for zk applications. Not for shared state, pool, and config accounts.
Guidelines
- light-token ≠ compressed token. light-token is a Solana account in hot state. Compressed token is a compressed account, always compressed, rent-free.
- light-PDA ≠ compressed PDA. light-PDA is a Solana PDA that transitions to compressed state when inactive. Compressed PDA is always compressed, derived like a PDA and requires a validity proof.
- light-token accounts hold SPL and Token-2022 balances, not just light-mint balances.
- When sponsored rent on a light-token or light-PDA runs out, the account compresses. It decompresses on next interaction.
Examples
Toolkits
TypeScript client (@lightprotocol/compressed-token)
Rust client (light-token-client)
Program examples (light_token)
|
Description |
| escrow |
Peer-to-peer light-token swap with offer/accept flow |
| fundraiser |
Token fundraiser with target, deadline, and refunds |
| light-token-minter |
Create light-mints with metadata, mint tokens |
| token-swap |
AMM with liquidity pools and swaps (Anchor) |
| cp-swap-reference |
Fork of Raydium AMM that creates markets without paying rent-exemption |
| pinocchio-swap |
AMM with liquidity pools and swaps (Pinocchio) |
| create-and-transfer |
Create account via macro and transfer via CPI |
|
|
Program macros (light_token)
CPI instructions (light_token)
CPI calls can be combined with existing and/or light macros. The API is a superset of SPL-token.
SDK references
TypeScript packages
| Package |
npm |
@lightprotocol/stateless.js |
npm |
@lightprotocol/compressed-token |
npm |
Rust crates
For additional documentation and navigation, see: https://www.zkcompression.com/llms.txt
For additional skills, see: https://github.com/Lightprotocol/skills
1---2name: solana-rent-free-dev3description: Skill for Solana development using rent-free primitives from Light Protocol. Covers client development (TypeScript, Rust) and program development (Rust) across Anchor, native Rust, and Pinocchio. Focus areas include DeFi and Payments (Light Token, Light-PDA). Other use cases include airdrops and token distribution (Compressed Token), and user/app state plus nullifiers for payments and ZK applications (Compressed PDA).4---56## Capabilities78Light Token allows agents to build scalable Solana applications with rent-free token and mint accounts and PDAs.910### Primitives1112| Primitive | Use case | Constraints |13| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |14| Light Token | Most token use cases (launchpads, DeFi, payments). Rent-free mint and token accounts. \~200x cheaper than SPL and more compute-unit efficient on the hot path. | Currently in Beta and on Solana Devnet with mainnet in Q1 2026 |15| Light-PDA | DeFi program state such as AMM pools and vaults. \~98% cheaper than PDAs and can be implemented with minimal code changes. | Currently in Beta and on Solana Devnet with mainnet in Q1 2026 |16| Compressed Token | Only for Airdrops and token distribution. Prefer Light Token for other purposes. Used by Light Token under the hood for rent-free storage of inactive Light Tokens. Supported by Phantom and Backpack. | Do not use for general-purpose token features. Use Light Token instead. |17| Compressed PDA | User state and app state, nullifiers (payments and ZK applications), DePIN nodes, and stake accounts. Similar to program-derived addresses without a rent-exempt balance. | Not for shared state, pool accounts, or config accounts. Use Light-PDA instead |1819### Creation cost2021| | Light | Standard Solana |22| :----------------------- | --------------: | --------------: |23| **Mint Account** | **~0.00001 SOL** | ~0.0015 SOL |24| **Token Account** | **~0.00001 SOL** | ~0.002 SOL |25| **PDA (100-byte)** | **~0.0000115 SOL** | ~0.0016 SOL |26| **Associated token account creation** | **4,348 CU** | 14,194 CU |27| **Transfer** | **312 CU** | 4,645 CU |28| **Transfer** (rent-free) | **1,885 CU** | 4,645 CU |29=======30| Metric | Light | Standard Solana |31| ------------------------------------- | -----------------: | --------------: |32| **Mint Account** | **~0.00001 SOL** | ~0.0015 SOL |33| **Token Account** | **~0.00001 SOL** | ~0.002 SOL |34| **PDA (100-byte)** | **~0.0000115 SOL** | ~0.0016 SOL |35| **Associated token account creation** | **4,348 CU** | 14,194 CU |36| **Transfer** | **312 CU** | 4,645 CU |37| **Transfer** (rent-free) | **1,885 CU** | 4,645 CU |3839### Install4041```bash theme={null}42npx skills add Lightprotocol/skills43```4445## Security4647This skill does not pull, store, or transmit external secrets. It provides code patterns, documentation references, and development guidance only.4849- **No credentials consumed.** The skill requires no API keys, private keys, or signing secrets. `env: []` is declared explicitly.50- **User-provided configuration.** RPC endpoints, wallet keypairs, and authentication tokens (Privy, wallet adapters) are configured in the user's own application code — the skill only demonstrates how to use them.51- **Install source.** `npx skills add Lightprotocol/skills` installs from the public GitHub repository ([Lightprotocol/skills](https://github.com/Lightprotocol/skills)). Verify the source before running.52- **Audited protocol.** Light Protocol smart contracts are independently audited. Reports are published at [github.com/Lightprotocol/light-protocol/tree/main/audits](https://github.com/Lightprotocol/light-protocol/tree/main/audits).5354## Workflow55561. **Clarify intent**57 - Recommend plan mode, if it's not activated58 - Use `AskUserQuestion` to resolve blind spots59 - All questions must be resolved before execution602. **Identify references and skills**61 - Match task to available [skills](#defi) below62 - Locate relevant [documentation and examples](#documentation-and-examples)633. **Write plan file** (YAML task format)64 - Use `AskUserQuestion` for anything unclear — never guess or assume65 - Identify blockers: permissions, dependencies, unknowns66 - Plan must be complete before execution begins674. **Execute**68 - Use `Task` tool with subagents for parallel research69 - Subagents load skills via `Skill` tool70 - Track progress with `TodoWrite`715. **When stuck**: spawn subagent with `Read`, `Glob`, `Grep`, DeepWiki MCP access and load `skills/ask-mcp`7273## Skills7475| Use case | Skill |76| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |77| For Solana program development with tokens and PDAs, Light is 200x cheaper than SPL/ Solana and has minimal code differences | [light-sdk](skills/light-sdk/) |78| For client development with tokens on Solana, Light Token is 200x cheaper than SPL and has minimal changes | [light-token-client](skills/light-token-client/) |79| For data pipelines, aggregators, or indexers, real-time account state streaming on Solana with light account hot/cold lifecycle tracking | [data-streaming](skills/data-streaming/) |80| For stablecoin payment flows and wallet integrations on Solana 200x cheaper token accounts | [payments-and-wallets](skills/payments-and-wallets/) |81| For token distribution on Solana 5000x cheaper than SPL (rewards, airdrops, depins, ...) | [token-distribution](skills/token-distribution/) |82| For custom ZK Solana programs and privacy-preserving applications to prevent double spending | [zk-nullifier](skills/zk-nullifier/) |83| For program development on Solana with infrequently accessed state, such as per-user state, DePIN registrations, ... | [solana-compression](skills/solana-compression/) |84| For testing with Light Protocol programs and clients on localnet, devnet, and mainnet validation | [testing](skills/testing/) |85| For questions about compressed accounts, Light SDK, Solana development, Claude Code features, or agent skills | [ask-mcp](skills/ask-mcp/) |8687| Use case | Skill |88| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |89| Build rent-free Solana programs with Light SDK (Anchor or Pinocchio). Includes router integration. | [light-sdk](https://github.com/Lightprotocol/skills/tree/main/skills/light-sdk) |90| Use Light Token client SDKs (TypeScript and Rust) for mints, ATAs, transfers | [light-token-client](https://github.com/Lightprotocol/skills/tree/main/skills/light-token-client) |91| Stream account state via Laserstream gRPC | [data-streaming](https://github.com/Lightprotocol/skills/tree/main/skills/data-streaming) |92| Wallets and payment flows with light-token. Includes privy, wallet adapter, mobile wallet adapter signing. Optional nullifier to prevent your onchain instruction from being executed more than once. | [payments-and-wallets](https://github.com/Lightprotocol/skills/tree/main/skills/payments-and-wallets) |93| Airdrops, DePIN, token distribution | [token-distribution](https://github.com/Lightprotocol/skills/tree/main/skills/token-distribution) |94| Anti-double-spend nullifiers for Privacy-preserving ZK programs | [zk-nullifier](https://github.com/Lightprotocol/skills/tree/main/skills/zk-nullifier) |95| Testing programs and clients on localnet, devnet, mainnet | [testing](https://github.com/Lightprotocol/skills/tree/main/skills/testing) |96| For per-user state, DePIN nodes, and infrequently accessed app state with compressed PDAs | [solana-compression](https://github.com/Lightprotocol/skills/tree/main/skills/solana-compression) |97| Help with Debugging and Questions via DeepWiki MCP | [ask-mcp](https://github.com/Lightprotocol/skills/tree/main/skills/ask-mcp) |9899### Install to Claude Code100101Add the marketplace and install:102103```104/plugin marketplace add Lightprotocol/skills105/plugin install solana-rent-free-dev106```107108All skills are included. Use them by name (`/light-sdk`, `/token-distribution`, `/testing`, etc.) or let Claude invoke them based on task context.109110### Install to Cursor1111121. Open Settings (**Cmd+Shift+J** / **Ctrl+Shift+J**)1132. Navigate to **Rules & Commands** → **Project Rules** → **Add Rule** → **Remote Rule (GitHub)**1143. Enter: `https://github.com/Lightprotocol/skills.git`115116Skills are auto-discovered based on context. Ask about light-token, defi, payments, or program migration and the agent uses the relevant skill automatically.117118### Install to Any Agent119120```121npx skills add Lightprotocol/skills122```123124## Context125126### light-token127128A token standard functionally equivalent to SPL that stores mint and token accounts more efficiently.129130**Mint accounts** represent a unique mint and optionally store token-metadata. Functionally equivalent to SPL mints.131132**Token accounts** hold balances from any light, SPL, or Token-2022 mint, without paying rent-exemption.133134The token program pays rent-exemption cost for you. When an account has no remaining sponsored rent, the account is automatically compressed. Your tokens are cryptographically preserved as a compressed token account (rent-free). The account is loaded into hot account state in-flight when someone interacts with it again.135136Use for: Launchpads, DeFi, token transfers, payments, ... .137138### light-PDA139140The Light-SDK pays rent-exemption for your PDAs, token accounts, and mints (98% cost savings). Your program logic stays the same.141142After extended inactivity (multiple epochs without writes), accounts auto-compress to cold state. Your program only interacts with hot accounts. Clients load cold accounts back on-chain via `create_load_instructions`.143144| Area | Change |145| --------------- | --------------------------------------------------------------- |146| State struct | Derive `LightAccount`, add `compression_info: CompressionInfo` |147| Accounts struct | Derive `LightAccounts`, add `#[light_account]` on init accounts |148| Program module | Add `#[light_program]` above `#[program]` |149| Instructions | No changes |150151Use for: DeFi program state, AMM pools, vaults.152153### Compressed token (only use for token distribution)154155Compressed token accounts store token balance, owner, and other information of tokens like SPL and light-tokens. Compressed token accounts are rent-free. Any light-token or SPL token can be compressed/decompressed at will. Supported by Phantom and Backpack.156157Only use for: airdrops, token distribution without paying upfront rent per recipient.158159### Compressed PDA160161Compressed PDAs are derived using a specific program address and seed, like regular PDAs. Custom programs invoke the Light System program to create and update accounts, instead of the System program.162163Persistent unique identification. Program ownership. CPI between compressed and regular PDAs.164165Use rent-free PDAs for: user state, app state, nullifiers for payments, DePIN node accounts, stake accounts, nullifiers for zk applications. Not for shared state, pool, and config accounts.166167### Guidelines168169- **light-token ≠ compressed token.** light-token is a Solana account in hot state. Compressed token is a compressed account, always compressed, rent-free.170- **light-PDA ≠ compressed PDA.** light-PDA is a Solana PDA that transitions to compressed state when inactive. Compressed PDA is always compressed, derived like a PDA and requires a validity proof.171- **light-token accounts hold SPL and Token-2022 balances**, not just light-mint balances.172- When sponsored rent on a light-token or light-PDA runs out, the account compresses. It decompresses on next interaction.173174## Examples175176### Toolkits177178| | Description |179|---------|-------------|180| [Payments and Wallets](https://github.com/Lightprotocol/examples-light-token/tree/main/toolkits/payments-and-wallets) | All you need for wallet integrations and payment flows. Minimal API differences to SPL. |181| [Streaming Tokens](https://github.com/Lightprotocol/examples-light-token/tree/main/toolkits/streaming-tokens/) | Stream mint events using Laserstream |182| [Sign with Privy](https://github.com/Lightprotocol/examples-light-token/tree/main/toolkits/sign-with-privy/) | Light-token operations signed with Privy wallets (Node.js + React) |183| [Sponsor Rent Top-Ups](https://github.com/Lightprotocol/examples-light-token/tree/main/toolkits/sponsor-rent-top-ups/) | Sponsor rent top-ups for users by setting your application as the fee payer |184185### TypeScript client (`@lightprotocol/compressed-token`)186187| Operation | Docs guide | GitHub example |188| --------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |189| `createMintInterface` | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/create-mint.ts) |190| `createAtaInterface` | [create-ata](https://zkcompression.com/light-token/cookbook/create-ata) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/create-ata.ts) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/instructions/create-ata.ts) |191| `mintToInterface` | [mint-to](https://zkcompression.com/light-token/cookbook/mint-to) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/mint-to.ts) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/instructions/mint-to.ts) |192| `transferInterface` | [transfer-interface](https://zkcompression.com/light-token/cookbook/transfer-interface) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/transfer-interface.ts) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/instructions/transfer-interface.ts) |193| `approve` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/delegate-approve.ts) |194| `revoke` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/delegate-revoke.ts) |195| `wrap` | [wrap-unwrap](https://zkcompression.com/light-token/cookbook/wrap-unwrap) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/wrap.ts) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/instructions/wrap.ts) |196| `unwrap` | [wrap-unwrap](https://zkcompression.com/light-token/cookbook/wrap-unwrap) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/unwrap.ts) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/instructions/unwrap.ts) |197| `loadAta` | [load-ata](https://zkcompression.com/light-token/cookbook/load-ata) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/actions/load-ata.ts) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/typescript-client/instructions/load-ata.ts) |198199### Rust client (`light-token-client`)200201| Operation | Docs guide | GitHub example |202| -------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |203| `CreateMint` | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/create_mint.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/create_mint.rs) |204| `CreateAta` | [create-ata](https://zkcompression.com/light-token/cookbook/create-ata) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/create_associated_token_account.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/create_associated_token_account.rs) |205| `CreateTokenAccount` | [create-token-account](https://zkcompression.com/light-token/cookbook/create-token-account) | [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/create_token_account.rs) |206| `MintTo` | [mint-to](https://zkcompression.com/light-token/cookbook/mint-to) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/mint_to.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/mint_to.rs) |207| `TransferInterface` | [transfer-interface](https://zkcompression.com/light-token/cookbook/transfer-interface) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/transfer_interface.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/transfer_interface.rs) |208| `TransferChecked` | [transfer-checked](https://zkcompression.com/light-token/cookbook/transfer-checked) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/transfer_checked.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/transfer_checked.rs) |209| `Approve` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/approve.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/approve.rs) |210| `Revoke` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/revoke.rs) \| [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/revoke.rs) |211| `Burn` | [burn](https://zkcompression.com/light-token/cookbook/burn) | [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/burn.rs) |212| `BurnChecked` | [burn](https://zkcompression.com/light-token/cookbook/burn) | [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/burn_checked.rs) |213| `Freeze` | [freeze-thaw](https://zkcompression.com/light-token/cookbook/freeze-thaw) | [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/freeze.rs) |214| `Thaw` | [freeze-thaw](https://zkcompression.com/light-token/cookbook/freeze-thaw) | [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/thaw.rs) |215| `Close` | [close-token-account](https://zkcompression.com/light-token/cookbook/close-token-account) | [instruction](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/instructions/close.rs) |216| `Wrap` | [wrap-unwrap](https://zkcompression.com/light-token/cookbook/wrap-unwrap) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/wrap.rs) |217| `Unwrap` | [wrap-unwrap](https://zkcompression.com/light-token/cookbook/wrap-unwrap) | [action](https://github.com/Lightprotocol/examples-light-token/blob/main/rust-client/actions/unwrap.rs) |218219### Program examples (`light_token`)220221222| | Description |223|---------|-------------|224| [escrow](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/escrow) | Peer-to-peer light-token swap with offer/accept flow |225| [fundraiser](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/fundraiser) | Token fundraiser with target, deadline, and refunds |226| [light-token-minter](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/light-token-minter) | Create light-mints with metadata, mint tokens |227| [token-swap](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/token-swap) | AMM with liquidity pools and swaps (Anchor) |228| [cp-swap-reference](https://github.com/Lightprotocol/cp-swap-reference) | Fork of Raydium AMM that creates markets without paying rent-exemption |229| [pinocchio-swap](https://github.com/Lightprotocol/examples-light-token/tree/main/pinocchio/swap) | AMM with liquidity pools and swaps (Pinocchio) |230| [create-and-transfer](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/create-and-transfer) | Create account via macro and transfer via CPI |231| | |232233### Program macros (`light_token`)234235| | Description |236| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |237| [counter](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/basic-macros/counter) | Create PDA with sponsored rent-exemption |238| [create-ata](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/basic-macros/create-ata) | Create associated light-token account |239| [create-mint](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/basic-macros/create-mint) | Create light-token mint |240| [create-token-account](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/basic-macros/create-token-account) | Create light-token account |241242### CPI instructions (`light_token`)243244CPI calls can be combined with existing and/or light macros. The API is a superset of SPL-token.245246| Operation | Docs guide | GitHub example |247| ---------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |248| `CreateAssociatedAccountCpi` | [create-ata](https://zkcompression.com/light-token/cookbook/create-ata) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/create-ata/src/lib.rs) |249| `CreateTokenAccountCpi` | [create-token-account](https://zkcompression.com/light-token/cookbook/create-token-account) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/create-token-account/src/lib.rs) |250| `CreateMintCpi` | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/create-mint/src/lib.rs) |251| `MintToCpi` | [mint-to](https://zkcompression.com/light-token/cookbook/mint-to) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/mint-to/src/lib.rs) |252| `MintToCheckedCpi` | [mint-to](https://zkcompression.com/light-token/cookbook/mint-to) | [src](https://github.com/Lightprotocol/examples-light-token/tree/main/program-examples/anchor/basic-instructions/mint-to-checked) |253| `BurnCpi` | [burn](https://zkcompression.com/light-token/cookbook/burn) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/burn/src/lib.rs) |254| `TransferCheckedCpi` | [transfer-checked](https://zkcompression.com/light-token/cookbook/transfer-checked) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/transfer-checked/src/lib.rs) |255| `TransferInterfaceCpi` | [transfer-interface](https://zkcompression.com/light-token/cookbook/transfer-interface) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/transfer-interface/src/lib.rs) |256| `ApproveCpi` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/approve/src/lib.rs) |257| `RevokeCpi` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/revoke/src/lib.rs) |258| `FreezeCpi` | [freeze-thaw](https://zkcompression.com/light-token/cookbook/freeze-thaw) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/freeze/src/lib.rs) |259| `ThawCpi` | [freeze-thaw](https://zkcompression.com/light-token/cookbook/freeze-thaw) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/thaw/src/lib.rs) |260| `CloseAccountCpi` | [close-token-account](https://zkcompression.com/light-token/cookbook/close-token-account) | [src](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/close/src/lib.rs) |261262## SDK references263264### TypeScript packages265266| Package | npm |267| --------------------------------- | -------------------------------------------------------------------- |268| `@lightprotocol/stateless.js` | [npm](https://www.npmjs.com/package/@lightprotocol/stateless.js) |269| `@lightprotocol/compressed-token` | [npm](https://www.npmjs.com/package/@lightprotocol/compressed-token) |270271### Rust crates272273| Crate | docs.rs |274| ---------------------------- | -------------------------------------------------------------------------------- |275| `light-sdk` | [docs.rs/light-sdk](https://docs.rs/light-sdk) |276| `light-sdk-pinocchio` | [docs.rs/light-sdk-pinocchio](https://docs.rs/light-sdk-pinocchio) |277| `light-token` | [docs.rs/light-token](https://docs.rs/light-token) |278| `light-token-client` | [docs.rs/light-token-client](https://docs.rs/light-token-client) |279| `light-compressed-token-sdk` | [docs.rs/light-compressed-token-sdk](https://docs.rs/light-compressed-token-sdk) |280| `light-client` | [docs.rs/light-client](https://docs.rs/light-client) |281| `light-program-test` | [docs.rs/light-program-test](https://docs.rs/light-program-test) |282| `light-account-pinocchio` | [docs.rs/light-account-pinocchio](https://docs.rs/light-account-pinocchio) |283| `light-token-pinocchio` | [docs.rs/light-token-pinocchio](https://docs.rs/light-token-pinocchio) |284| `light-hasher` | [docs.rs/light-hasher](https://docs.rs/light-hasher) |285| `light-account` | [docs.rs/light-account](https://docs.rs/light-account) |286287---288289> For additional documentation and navigation, see: [https://www.zkcompression.com/llms.txt](https://www.zkcompression.com/llms.txt)290> For additional skills, see: [https://github.com/Lightprotocol/skills](https://github.com/Lightprotocol/skills)