跳至主要内容
小龙虾小龙虾AI
🤖

solana-compression-dev

For client and program development on Solana ~160x cheaper and without rent-exemption for per-user state, DePIN registrations, or custom compressed accounts....

下载130
星标0
版本1.0.4
开发工具
安全通过
💬Prompt

技能说明


name: solana-compression description: "For client and program development on Solana 160x cheaper and without rent-exemption for per-user state, DePIN registrations, or custom compressed accounts. Create, update, close, burn, and reinitialize compressed accounts." metadata: source: https://github.com/Lightprotocol/skills documentation: https://www.zkcompression.com openclaw: requires: env: ["API_KEY"] # Helius or Triton RPC key; only needed for devnet/mainnet config: ["/.config/solana/id.json"] # Solana keypair; only needed for devnet/mainnet bins: ["node", "solana", "anchor", "cargo", "light"] allowed-tools: Bash(git:), Bash(cargo:), Bash(anchor:), Bash(light:), Read, Edit, Glob, Grep, Write, Task, WebFetch, WebSearch, mcp__deepwiki__ask_question

Compressed PDA Programs

Build Solana programs with compressed accounts via CPI to the Light System Program. No rent-exemption required.

Creation costSolana accountCompressed account
PDA (128 bytes)~1,100,000 lamports~5,000 lamports

When to use compressed PDAs

  • Per-user state (profiles, game state, credentials)
  • DePIN device registrations
  • Nullifier-based double-spend prevention
  • Infrequently accessed accounts

Choosing approach

CriteriaLight-PDA (easy)Compressed PDA (advanced)
WhenRent-free version of existing Anchor accountsCustom compressed state with ZK proofs
Skilllight-sdk (Anchor macro pattern)This skill (solana-compression)
Macro#[light_account(init)]LightAccount::new_init() manual CPI
Dependencieslight-sdk, light-compressiblelight-sdk, light-sdk-types

If you just want rent-free Anchor accounts, use the light-sdk skill instead. This skill is for programs that require manual CPI to the Light System Program (custom compressed state, ZK proofs, address derivation).

Client-program interaction flow

 ├─ Client
 │  ├─ Get ValidityProof from RPC.
 │  ├─ pack accounts with PackedAccounts into PackedAddressTreeInfo and PackedStateTreeInfo.
 │  ├─ pack CompressedAccountMeta.
 │  ├─ Build Instruction from PackedAccounts and CompressedAccountMetas.
 │  └─ Send transaction.
 │
 └─ Custom Program
    ├─ CpiAccounts parse accounts consistent with PackedAccounts.
    ├─ LightAccount instantiates from CompressedAccountMeta.
    │
    └─ Light System Program CPI
       ├─ Verify ValidityProof.
       ├─ Update State Merkle tree.
       ├─ Update Address Merkle tree.
       └─ Complete atomic state transition.

Domain references

TopicReference
Program operations (create, update, close, burn, reinit)references/compressed-pdas.md
Client SDK (TypeScript + Rust)references/client.md
Nullifier PDAs (double-spend prevention)references/nullifier-pdas.md
Error codes (6000-16034)references/error-codes.md

Reference repos

Basic operations — create, update, close, reinit, burn (each with Anchor and Native variants)

Counter — full lifecycle (create, increment, decrement, reset, close):

Other examples:

Nullifier:

Airdrop claim:

ZK programs:

  • zk-id — Identity verification with Groth16 proofs
  • zk/nullifier — Simple nullifier creation program

Additional: examples-zk-compression — More ZK compression examples

Canonical source: program-examples README. If cloned locally, scope Read, Glob, Grep to these repositories and the current project directory only.

Workflow

  1. Clarify intent
    • Recommend plan mode, if it's not activated
    • Use AskUserQuestion to resolve blind spots
    • All questions must be resolved before execution
  2. Identify references
  3. 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
  4. Execute
    • Use Task tool with subagents for parallel research
    • Subagents load skills via Skill tool
    • Track progress with TodoWrite
  5. 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.

Build and test

Required commands

Anchor programs:

anchor build
anchor test

Native programs:

cargo build-sbf
cargo test-sbf

Forbidden shortcuts

  • Do NOT use cargo build (must use cargo build-sbf)
  • Do NOT use cargo test (must use cargo test-sbf)
  • Do NOT skip SBF compilation
  • Tests MUST run against real BPF bytecode

Failure recovery

On failure, spawn debugger agent with error context.

Loop rules:

  1. Each debugger gets fresh context + previous debug reports
  2. Each attempt tries something DIFFERENT
  3. NEVER GIVE UP - keep spawning until fixed
  4. Max 5 attempts per error

Do NOT proceed until all tests pass.

SDK references

PackageLink
light-sdkdocs.rs
light-clientdocs.rs
@lightprotocol/stateless.jsAPI docs
light-program-testdocs.rs

DeepWiki fallback

If no matching pattern in reference repos:

mcp__deepwiki__ask_question("Lightprotocol/light-protocol", "How to {operation}?")

Security

This skill provides code patterns and documentation references 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.
  • Filesystem scope. Read, Glob, and Grep must be limited to the current project directory and the reference repos listed above. Do not read outside these paths.
  • Subagent scope. When stuck, the skill asks to spawn a read-only subagent with Read, Glob, Grep scoped to skill references, example repos, and docs.
  • Install source. npx skills add Lightprotocol/skills from Lightprotocol/skills.
  • Audited protocol. Light Protocol smart contracts are independently audited. Reports are published at github.com/Lightprotocol/light-protocol/tree/main/audits.

如何使用「solana-compression-dev」?

  1. 打开小龙虾AI(Web 或 iOS App)
  2. 点击上方「立即使用」按钮,或在对话框中输入任务描述
  3. 小龙虾AI 会自动匹配并调用「solana-compression-dev」技能完成任务
  4. 结果即时呈现,支持继续对话优化

相关技能