Automated summary
A Solana development skill that guides building with Light Protocol compressed accounts, both client-side in TypeScript (SPL and Token-2022 tokens) and program-side in Rust (compressed PDAs with Anchor, native Rust, or Pinocchio).
Strengths
- Covers both sides of ZK Compression — compressed tokens on the client and compressed PDAs in programs — including the distinct constraints of each
- Provides concrete cost benchmarks (roughly 5,000 lamports for a compressed token account versus 2,000,000 for a standard one) that help justify architecture decisions
- Defines an explicit workflow: clarify open questions with AskUserQuestion, write a YAML plan file, then execute in parallel through subagents
- Scopes its research surface by listing allowed tools, including WebFetch restricted to zkcompression.com and the Lightprotocol repo plus dedicated zkcompression and DeepWiki MCP servers
Limitations
- The provided file is truncated: the table of available skills is cut off, so the real breadth of use-case coverage is only partly known
- Requires a heavy toolchain (ZK Compression CLI, Solana CLI, Anchor CLI, Cargo, Node.js)
- Tightly coupled to Claude Code primitives (AskUserQuestion, TodoWrite, Task, Skill), which limits drop-in reuse on other platforms
- Assumes prior fluency with Solana, Anchor, and program-derived addresses; no primer on the underlying concepts is included
Reach for it when designing or implementing token distribution, stablecoin payments, or per-user state on Solana while avoiding rent-exempt balances.
Skip it for ordinary Solana work that does not involve compressed accounts, or when the Solana, Anchor, and Light CLIs are not available in the environment.
Security analysis
SafeThe skill is instruction/documentation content only. Declared tools are read-only file access, scoped web fetches to official Light Protocol domains, web search, and two documentation MCP servers — no shell, no write/delete, no network egress of secrets, no obfuscation. The only executable recommendation is the standard `npx skills add` install command, which is user-driven and low risk. No destructive or exfiltrating behavior found.
- •Installs/updates are suggested via `npx skills add <remote URL>`, which pulls third-party content at the user's discretion (documented install path, not executed by this skill).
- •References MCP servers (`zkcompression`, `deepwiki`) and WebFetch/WebSearch, but only against official Light Protocol / zkcompression domains.
Examples
Write a TypeScript client using the Light SDK that mints and distributes a compressed SPL token to 500 recipients, and show me how much this saves in rent compared to standard token accounts.Build an Anchor program on Solana that stores per-user state in a compressed PDA via the Light System Program, including the validity proof handling.I'm building a stablecoin payments app on Solana — should I use compressed token accounts or compressed PDAs, and what are the trade-offs for each?name: solana-rent-free-dev description: > Skill for Solana development using compressed accounts from Light Protocol. Covers compressed token client development (TypeScript) and compressed PDA program development (Rust) across Anchor, native Rust, and Pinocchio. Use cases include token distribution, stablecoin payments, per-user and app state, nullifiers, and ZK applications. compatibility: | Requires ZK Compression CLI, Solana CLI, Anchor CLI, and Node.js. metadata: mintlify-proj: lightprotocol openclaw: requires: env: [] bins: ["node", "solana", "anchor", "cargo", "light"] allowed-tools:
- Read
- Glob
- Grep
- Task
- WebFetch(https://zkcompression.com/*)
- WebFetch(https://github.com/Lightprotocol/*)
- WebSearch
- mcp__zkcompression__SearchLightProtocol
- mcp__deepwiki__ask_question
Capabilities
ZK Compression is a framework on Solana for token distribution, stablecoin payments, consumer apps, and per-user state. The Light SDK and APIs let you create token and PDA accounts without rent-exemption, with a familiar Solana developer experience.
Primitives
| Primitive | Use case | Constraints | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | Compressed Token | Token use cases such as token distribution, stablecoin payments, and storing balances rent-free. Always compressed and rent-free. Works with SPL and Token-2022. Supported by Phantom and Backpack. | The SPL mint and interface PDA pay rent; individual token accounts do not. | | Compressed PDA | Per-user and app state, nullifiers (payments and ZK applications), DePIN nodes, and stake accounts. Derived like a program-derived address, without a rent-exempt balance. | Programs invoke the Light System Program (not the System Program) with a validity proof. |
View the SDK reference: https://www.zkcompression.com/api-reference/sdk.
Creation cost
| Creation cost | Compressed | Standard Solana | | ------------------ | -------------------: | -------------------: | | Token account | ~5,000 lamports | ~2,000,000 lamports | | PDA (100-byte) | ~15,000 lamports | ~1,600,000 lamports |
Install
Install the orchestrator agent skill or view skill.md:
npx skills add https://zkcompression.com
Install or view dedicated agent skills:
npx skills add Lightprotocol/skills
Workflow
- Clarify intent
- Recommend plan mode, if it's not activated
- Use
AskUserQuestionto resolve blind spots - All questions must be resolved before execution
- Identify references and skills
- Match the task to the available skills below
- Locate relevant documentation and examples
- Write plan file (YAML task format)
- Use
AskUserQuestionfor anything unclear — never guess or assume - Identify blockers: permissions, dependencies, unknowns
- Plan must be complete before execution begins
- Use
- Execute
- Use
Tasktool with subagents for parallel research - Subagents load skills via
Skilltool - Track progress with
TodoWrite
- Use
- When stuck: spawn a subagent with
Read,Glob,Grep, DeepWiki MCP access and loadskills/ask-mcp
Skills
| Use case | Skill | | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | For token use cases on Solana, such as token distribution, stablecoin payments and more. Works with Token-2022, Privy, Wallet Adapter similarly to SPL. | compressed-token | | For program development on Solana with infrequently accessed state, such as per-user state, DePIN registrations, nullifiers, or custom compressed accounts | compressed-pda | | For custom ZK Solana programs and privacy-preserving applications to prevent double spending | zk | | 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 |
Context
- SDK reference: https://zkcompression.com/api-reference/sdk
Compressed token
Compressed token accounts store balance, owner, mint, and delegate like SPL token accounts, without paying rent-exemption. Any SPL or Token-2022 token can be compressed and decompressed at will. Wallets like Phantom and Backpack display them alongside SPL tokens.
A compressed token uses a standard SPL (or Token-2022) mint plus an interface PDA. The interface PDA is an omnibus account that locks SPL tokens while they are compressed and releases them on decompression. The SPL mint and interface PDA pay rent like regular SPL accounts; individual compressed token accounts are rent-free.
Use for: token distribution and airdrops, stablecoin payments, and storing token balances rent-free.
Compressed PDA
Compressed PDAs are derived using a program address and seed, like regular PDAs. A program invokes the Light System Program (not the System Program) to create and update them. Creating an account requires a validity proof that the derived address does not yet exist; updates, closes, and burns require a proof that the account exists.
Persistent unique identification. Program ownership. CPI between compressed and regular PDAs.
Use for: per-user state, app state, nullifiers for payments and ZK applications, DePIN node accounts, and stake accounts.
Examples
Compressed token client (@lightprotocol/compressed-token)
Operations use @lightprotocol/compressed-token with createRpc() from @lightprotocol/stateless.js.
| Operation | GitHub example |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| createMint | create-mint |
| createTokenPool | create-token-pool |
| mintTo | mint-to |
| transfer | transfer |
| approve / revoke | approve | revoke |
| compress | compress |
| decompress | decompress |
| compressSplTokenAccount| compress-spl-account |
| mergeTokenAccounts | merge-token-accounts |
Token distribution
| Flow | GitHub example | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | Simple airdrop | simple-airdrop | | Optimized airdrop | optimized-airdrop |
Compressed PDA programs (light-sdk)
| Example | Description | | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | counter | Full lifecycle (create, update, close) in Anchor, native, and Pinocchio | | basic-operations | Create, update, close, reinitialize, burn (Anchor and native) | | create-and-update | Create and update with a single validity proof in one instruction | | account-comparison | Compressed vs regular Solana accounts | | nullifier-program | Rent-free PDA for duplicate-execution prevention | | zk-id | Identity verification with Groth16 proofs |
SDK references
TypeScript packages
| Package | npm |
| --------------------------------- | -------------------------------------------------------------------- |
| @lightprotocol/stateless.js | npm |
| @lightprotocol/compressed-token | npm |
Rust crates
| Crate | docs.rs |
| ---------------------------- | -------------------------------------------------------------------------------- |
| light-sdk | docs.rs/light-sdk |
| light-sdk-pinocchio | docs.rs/light-sdk-pinocchio |
| light-compressed-token-sdk | docs.rs/light-compressed-token-sdk |
| light-client | docs.rs/light-client |
| light-program-test | docs.rs/light-program-test |
| light-hasher | docs.rs/light-hasher |
| light-account | docs.rs/light-account |
For additional documentation and navigation, see: https://www.zkcompression.com/llms.txt For additional skills, see: https://github.com/Lightprotocol/skills
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/solana-rent-free-development-mrwaka85' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/solana-rent-free-development-mrwaka85/download' --output '.skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md.part' && mv '.skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md.part' '.skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Environment declared by the author: Requires ZK Compression CLI, Solana CLI, Anchor CLI, and Node.js.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md' && test -s '.skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/solana-rent-free-dev' && cp -R '.skill-downloads/solana-rent-free-development-mrwaka85' '.claude/skills/solana-rent-free-dev'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/solana-rent-free-development-mrwaka85'openskills read 'solana-rent-free-development-mrwaka85'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/solana-rent-free-development-mrwaka85/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.