Light Token Client SDKs
Client-side cookbook for @lightprotocol/compressed-token (TypeScript) and light_token_client (Rust). Covers all token operations: create mints, associated token accounts, transfer, approve, revoke, burn, wrap, unwrap, freeze, thaw, close, and load.
| Creation cost |
SPL |
Light Token |
| Token account |
~2,000,000 lamports |
~11,000 lamports |
Prerequisites
Examples show both localnet and devnet configurations. For devnet, set:
API_KEY env var — Helius or Triton RPC API key. In production, load from a secrets manager.
~/.config/solana/id.json — local Solana keypair (solana-keygen new). In production, load from a secrets manager.
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: ask to spawn a read-only subagent with
Read, Glob, Grep, and DeepWiki MCP access, loading skills/ask-mcp. Scope reads to skill references, example repos, and docs.
Domain references
| Task |
Reference |
| Create a mint |
create-mint.md |
| Create SPL interface PDA |
create-interface-pda.md |
| Create associated token account |
create-associated-token-account.md |
| Create token account |
create-token-account.md |
| Mint tokens |
mint-to.md |
| Transfer tokens |
transfer-interface.md |
| Transfer checked |
transfer-checked.md |
| Approve delegate |
approve.md |
| Revoke delegate |
revoke.md |
| Wrap SPL to Light |
wrap.md |
| Unwrap Light to SPL |
unwrap.md |
| Load associated token account |
load-associated-token-account.md |
| Burn tokens |
burn.md |
| Burn checked |
burn-checked.md |
| Freeze token account |
freeze.md |
| Thaw token account |
thaw.md |
| Close token account |
close-token-account.md |
| Mint SPL, wrap, and transfer |
spl-mint-wrap-transfer.md |
Operations overview
External references
Security
This skill does not pull, store, or transmit external secrets. It provides code patterns, documentation references, and development guidance only.
- Declared dependencies. Devnet and mainnet examples require
API_KEY (Helius or Triton RPC key) and read ~/.config/solana/id.json for the payer keypair. Neither is needed on localnet. In production, load both from a secrets manager.
- User-provided configuration. RPC endpoints, wallet keypairs, and authentication tokens are configured in the user's application code. The skill demonstrates patterns — it does not store or transmit secrets.
- Install source.
npx skills add Lightprotocol/skills installs from the public GitHub repository (Lightprotocol/skills). Verify the source before running.
- Subagent scope. When stuck, the skill asks to spawn a read-only subagent with
Read, Glob, and Grep scoped to skill references, example repos, and docs.
- Audited protocol. Light Protocol smart contracts are independently audited. Reports are published at github.com/Lightprotocol/light-protocol/tree/main/audits.
1---2name: light-token-client3description: For client development with tokens on Solana, Light Token is 200x cheaper than SPL and has minimal changes. Skill includes guides for create mints, associated token accounts, transfer, approve, burn, wrap, and more. @lightprotocol/compressed-token (TypeScript) and light_token_client (Rust).4---56# Light Token Client SDKs78Client-side cookbook for `@lightprotocol/compressed-token` (TypeScript) and `light_token_client` (Rust). Covers all token operations: create mints, associated token accounts, transfer, approve, revoke, burn, wrap, unwrap, freeze, thaw, close, and load.910| Creation cost | SPL | Light Token |11| :---------------- | :------------------ | :------------------- |12| **Token account** | ~2,000,000 lamports | ~**11,000** lamports |1314## Prerequisites1516Examples show both localnet and devnet configurations. For devnet, set:1718- `API_KEY` env var — Helius or Triton RPC API key. In production, load from a secrets manager.19- `~/.config/solana/id.json` — local Solana keypair (`solana-keygen new`). In production, load from a secrets manager.2021## Workflow22231. **Clarify intent**24 - Recommend plan mode, if it's not activated25 - Use `AskUserQuestion` to resolve blind spots26 - All questions must be resolved before execution272. **Identify references and skills**28 - Match task to [domain references](#domain-references) below29 - Locate relevant documentation and examples303. **Write plan file** (YAML task format)31 - Use `AskUserQuestion` for anything unclear — never guess or assume32 - Identify blockers: permissions, dependencies, unknowns33 - Plan must be complete before execution begins344. **Execute**35 - Use `Task` tool with subagents for parallel research36 - Subagents load skills via `Skill` tool37 - Track progress with `TodoWrite`385. **When stuck**: ask to spawn a read-only subagent with `Read`, `Glob`, `Grep`, and DeepWiki MCP access, loading `skills/ask-mcp`. Scope reads to skill references, example repos, and docs.3940## Domain references4142| Task | Reference |43|------|-----------|44| Create a mint | [create-mint.md](references/create-mint.md) |45| Create SPL interface PDA | [create-interface-pda.md](references/create-interface-pda.md) |46| Create associated token account | [create-associated-token-account.md](references/create-associated-token-account.md) |47| Create token account | [create-token-account.md](references/create-token-account.md) |48| Mint tokens | [mint-to.md](references/mint-to.md) |49| Transfer tokens | [transfer-interface.md](references/transfer-interface.md) |50| Transfer checked | [transfer-checked.md](references/transfer-checked.md) |51| Approve delegate | [approve.md](references/approve.md) |52| Revoke delegate | [revoke.md](references/revoke.md) |53| Wrap SPL to Light | [wrap.md](references/wrap.md) |54| Unwrap Light to SPL | [unwrap.md](references/unwrap.md) |55| Load associated token account | [load-associated-token-account.md](references/load-associated-token-account.md) |56| Burn tokens | [burn.md](references/burn.md) |57| Burn checked | [burn-checked.md](references/burn-checked.md) |58| Freeze token account | [freeze.md](references/freeze.md) |59| Thaw token account | [thaw.md](references/thaw.md) |60| Close token account | [close-token-account.md](references/close-token-account.md) |61| Mint SPL, wrap, and transfer | [spl-mint-wrap-transfer.md](references/spl-mint-wrap-transfer.md) |6263## Operations overview6465| Operation | TypeScript | Rust | Docs |66|-----------|-----------|------|------|67| Create Light mint | `createMintInterface` | `CreateMint` | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) |68| Create SPL mint w/ interface PDA | `createMintInterface` + `TOKEN_PROGRAM_ID` | — | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) |69| Create T22 mint w/ interface PDA | `createMintInterface` + `TOKEN_2022_PROGRAM_ID` | — | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) |70| Add interface PDA to existing mint | `createSplInterface` | — | [create-mint](https://zkcompression.com/light-token/cookbook/create-mint) |71| Create associated token account | `createAtaInterface` | `CreateAta` | [create-ata](https://zkcompression.com/light-token/cookbook/create-ata) |72| Create token account | — | `CreateTokenAccount` | [create-token-account](https://zkcompression.com/light-token/cookbook/create-token-account) |73| Mint to | `mintToInterface` | `MintTo` | [mint-to](https://zkcompression.com/light-token/cookbook/mint-to) |74| Transfer | `transferInterface` | `TransferInterface` | [transfer-interface](https://zkcompression.com/light-token/cookbook/transfer-interface) |75| Transfer checked | — | `TransferChecked` | [transfer-checked](https://zkcompression.com/light-token/cookbook/transfer-checked) |76| Approve | `approve` | `Approve` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) |77| Revoke | `revoke` | `Revoke` | [approve-revoke](https://zkcompression.com/light-token/cookbook/approve-revoke) |78| Burn | — | `Burn` | [burn](https://zkcompression.com/light-token/cookbook/burn) |79| Burn checked | — | `BurnChecked` | [burn](https://zkcompression.com/light-token/cookbook/burn) |80| Wrap SPL to Light | `wrap` | `Wrap` | [wrap-unwrap](https://zkcompression.com/light-token/cookbook/wrap-unwrap) |81| Unwrap Light to SPL | `unwrap` | `Unwrap` | [wrap-unwrap](https://zkcompression.com/light-token/cookbook/wrap-unwrap) |82| Load associated token account (cold to hot) | `loadAta` | — | [load-ata](https://zkcompression.com/light-token/cookbook/load-ata) |83| Freeze | — | `Freeze` | [freeze-thaw](https://zkcompression.com/light-token/cookbook/freeze-thaw) |84| Thaw | — | `Thaw` | [freeze-thaw](https://zkcompression.com/light-token/cookbook/freeze-thaw) |85| Close | — | `Close` | [close-token-account](https://zkcompression.com/light-token/cookbook/close-token-account) |8687## External references8889| Resource | Link |90|----------|------|91| Docs cookbook | [zkcompression.com/light-token/cookbook](https://zkcompression.com/light-token/cookbook/) |92| TypeScript examples | [examples-light-token/typescript-client](https://github.com/Lightprotocol/examples-light-token/tree/main/typescript-client) |93| Rust examples | [examples-light-token/rust-client](https://github.com/Lightprotocol/examples-light-token/tree/main/rust-client) |94| `@lightprotocol/stateless.js` | [API docs](https://lightprotocol.github.io/light-protocol/stateless.js/index.html) |95| `@lightprotocol/compressed-token` | [API docs](https://lightprotocol.github.io/light-protocol/compressed-token/index.html) |96| `light-client` | [docs.rs](https://docs.rs/light-client/latest/light_client/) |97| `light-token-client` | [docs.rs](https://docs.rs/light-token-client/latest/light_token_client/) |98| `light-token` | [docs.rs](https://docs.rs/light-token/latest/light_token/) |99100101## Security102103This skill does not pull, store, or transmit external secrets. It provides code patterns, documentation references, and development guidance only.104105- **Declared dependencies.** Devnet and mainnet examples require `API_KEY` (Helius or Triton RPC key) and read `~/.config/solana/id.json` for the payer keypair. Neither is needed on localnet. In production, load both from a secrets manager.106- **User-provided configuration.** RPC endpoints, wallet keypairs, and authentication tokens are configured in the user's application code. The skill demonstrates patterns — it does not store or transmit secrets.107- **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.108- **Subagent scope.** When stuck, the skill asks to spawn a read-only subagent with `Read`, `Glob`, and `Grep` scoped to skill references, example repos, and docs.109- **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).