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---5
6# Light Token Client SDKs
7
8Client-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.
9
10| Creation cost | SPL | Light Token |
11| :---------------- | :------------------ | :------------------- |
12| **Token account** | ~2,000,000 lamports | ~**11,000** lamports |
13
14## Prerequisites
15
16Examples show both localnet and devnet configurations. For devnet, set:
17
18- `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.
20
21## Workflow
22
231. **Clarify intent**
24 - Recommend plan mode, if it's not activated
25 - Use `AskUserQuestion` to resolve blind spots
26 - All questions must be resolved before execution
272. **Identify references and skills**
28 - Match task to [domain references](#domain-references) below
29 - Locate relevant documentation and examples
303. **Write plan file** (YAML task format)
31 - Use `AskUserQuestion` for anything unclear — never guess or assume
32 - Identify blockers: permissions, dependencies, unknowns
33 - Plan must be complete before execution begins
344. **Execute**
35 - Use `Task` tool with subagents for parallel research
36 - Subagents load skills via `Skill` tool
37 - 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.
39
40## Domain references
41
42| 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) |
62
63## Operations overview
64
65| 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) |
86
87## External references
88
89| 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/) |
99
100
101## Security
102
103This skill does not pull, store, or transmit external secrets. It provides code patterns, documentation references, and development guidance only.
104
105- **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).