{
  "schemaVersion": "1.0",
  "item": {
    "slug": "solana-compression-dev",
    "name": "solana-compression-dev",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/tilo-14/solana-compression-dev",
    "canonicalUrl": "https://clawhub.ai/tilo-14/solana-compression-dev",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/solana-compression-dev",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=solana-compression-dev",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/error-codes.md",
      "references/nullifier-pdas.md",
      "references/compressed-pdas.md",
      "references/client.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "solana-compression-dev",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-12T16:43:44.853Z",
      "expiresAt": "2026-05-19T16:43:44.853Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=solana-compression-dev",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=solana-compression-dev",
        "contentDisposition": "attachment; filename=\"solana-compression-dev-1.0.4.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "solana-compression-dev"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/solana-compression-dev"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/solana-compression-dev",
    "agentPageUrl": "https://openagent3.xyz/skills/solana-compression-dev/agent",
    "manifestUrl": "https://openagent3.xyz/skills/solana-compression-dev/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/solana-compression-dev/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Compressed PDA Programs",
        "body": "Build Solana programs with compressed accounts via CPI to the Light System Program. No rent-exemption required.\n\nCreation costSolana accountCompressed accountPDA (128 bytes)~1,100,000 lamports~5,000 lamports"
      },
      {
        "title": "When to use compressed PDAs",
        "body": "Per-user state (profiles, game state, credentials)\nDePIN device registrations\nNullifier-based double-spend prevention\nInfrequently accessed accounts"
      },
      {
        "title": "Choosing approach",
        "body": "CriteriaLight-PDA (easy)Compressed PDA (advanced)WhenRent-free version of existing Anchor accountsCustom compressed state with ZK proofsSkilllight-sdk (Anchor macro pattern)This skill (solana-compression)Macro#[light_account(init)]LightAccount::new_init() manual CPIDependencieslight-sdk, light-compressiblelight-sdk, light-sdk-types\n\nIf 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)."
      },
      {
        "title": "Client-program interaction flow",
        "body": "├─ Client\n │  ├─ Get ValidityProof from RPC.\n │  ├─ pack accounts with PackedAccounts into PackedAddressTreeInfo and PackedStateTreeInfo.\n │  ├─ pack CompressedAccountMeta.\n │  ├─ Build Instruction from PackedAccounts and CompressedAccountMetas.\n │  └─ Send transaction.\n │\n └─ Custom Program\n    ├─ CpiAccounts parse accounts consistent with PackedAccounts.\n    ├─ LightAccount instantiates from CompressedAccountMeta.\n    │\n    └─ Light System Program CPI\n       ├─ Verify ValidityProof.\n       ├─ Update State Merkle tree.\n       ├─ Update Address Merkle tree.\n       └─ Complete atomic state transition."
      },
      {
        "title": "Domain references",
        "body": "TopicReferenceProgram operations (create, update, close, burn, reinit)references/compressed-pdas.mdClient SDK (TypeScript + Rust)references/client.mdNullifier PDAs (double-spend prevention)references/nullifier-pdas.mdError codes (6000-16034)references/error-codes.md"
      },
      {
        "title": "Reference repos",
        "body": "Basic operations — create, update, close, reinit, burn (each with Anchor and Native variants)\n\nCounter — full lifecycle (create, increment, decrement, reset, close):\n\ncounter/anchor — Anchor with Rust and TypeScript tests\ncounter/native — Native with light-sdk and Rust tests\ncounter/pinocchio — Pinocchio with light-sdk-pinocchio and Rust tests\n\nOther examples:\n\ncreate-and-update — Create and update with a single validity proof in one instruction\nread-only — Create and read a compressed account onchain\naccount-comparison — Compressed vs regular Solana accounts\n\nNullifier:\n\nnullifier-program — Rent-free PDA for duplicate execution prevention. SDK: light-nullifier-program | example client\n\nAirdrop claim:\n\nsimple-claim — Compressed tokens decompressed to SPL on claim with cliff\nmerkle-distributor — SPL tokens with compressed PDA claim tracking, linear vesting, partial claims, clawback\nexample-token-distribution — Simple client-side distribution\n\nZK programs:\n\nzk-id — Identity verification with Groth16 proofs\nzk/nullifier — Simple nullifier creation program\n\nAdditional: examples-zk-compression — More ZK compression examples\n\nCanonical source: program-examples README. If cloned locally, scope Read, Glob, Grep to these repositories and the current project directory only."
      },
      {
        "title": "Workflow",
        "body": "Clarify intent\n\nRecommend plan mode, if it's not activated\nUse AskUserQuestion to resolve blind spots\nAll questions must be resolved before execution\n\n\nIdentify references\n\nMatch task to domain references and reference repos\nLocate relevant documentation and examples\n\n\nWrite plan file (YAML task format)\n\nUse AskUserQuestion for anything unclear — never guess or assume\nIdentify blockers: permissions, dependencies, unknowns\nPlan must be complete before execution begins\n\n\nExecute\n\nUse Task tool with subagents for parallel research\nSubagents load skills via Skill tool\nTrack progress with TodoWrite\n\n\nWhen 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."
      },
      {
        "title": "Required commands",
        "body": "Anchor programs:\n\nanchor build\nanchor test\n\nNative programs:\n\ncargo build-sbf\ncargo test-sbf"
      },
      {
        "title": "Forbidden shortcuts",
        "body": "Do NOT use cargo build (must use cargo build-sbf)\nDo NOT use cargo test (must use cargo test-sbf)\nDo NOT skip SBF compilation\nTests MUST run against real BPF bytecode"
      },
      {
        "title": "Failure recovery",
        "body": "On failure, spawn debugger agent with error context.\n\nLoop rules:\n\nEach debugger gets fresh context + previous debug reports\nEach attempt tries something DIFFERENT\nNEVER GIVE UP - keep spawning until fixed\nMax 5 attempts per error\n\nDo NOT proceed until all tests pass."
      },
      {
        "title": "SDK references",
        "body": "PackageLinklight-sdkdocs.rslight-clientdocs.rs@lightprotocol/stateless.jsAPI docslight-program-testdocs.rs"
      },
      {
        "title": "DeepWiki fallback",
        "body": "If no matching pattern in reference repos:\n\nmcp__deepwiki__ask_question(\"Lightprotocol/light-protocol\", \"How to {operation}?\")"
      },
      {
        "title": "Security",
        "body": "This skill provides code patterns and documentation references only.\n\nDeclared 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.\nFilesystem 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.\nSubagent scope. When stuck, the skill asks to spawn a read-only subagent with Read, Glob, Grep scoped to skill references, example repos, and docs.\nInstall source. npx skills add Lightprotocol/skills from Lightprotocol/skills.\nAudited protocol. Light Protocol smart contracts are independently audited. Reports are published at github.com/Lightprotocol/light-protocol/tree/main/audits."
      }
    ],
    "body": "Compressed PDA Programs\n\nBuild Solana programs with compressed accounts via CPI to the Light System Program. No rent-exemption required.\n\nCreation cost\tSolana account\tCompressed account\nPDA (128 bytes)\t~1,100,000 lamports\t~5,000 lamports\nWhen to use compressed PDAs\nPer-user state (profiles, game state, credentials)\nDePIN device registrations\nNullifier-based double-spend prevention\nInfrequently accessed accounts\nChoosing approach\nCriteria\tLight-PDA (easy)\tCompressed PDA (advanced)\nWhen\tRent-free version of existing Anchor accounts\tCustom compressed state with ZK proofs\nSkill\tlight-sdk (Anchor macro pattern)\tThis skill (solana-compression)\nMacro\t#[light_account(init)]\tLightAccount::new_init() manual CPI\nDependencies\tlight-sdk, light-compressible\tlight-sdk, light-sdk-types\n\nIf 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).\n\nClient-program interaction flow\n ├─ Client\n │  ├─ Get ValidityProof from RPC.\n │  ├─ pack accounts with PackedAccounts into PackedAddressTreeInfo and PackedStateTreeInfo.\n │  ├─ pack CompressedAccountMeta.\n │  ├─ Build Instruction from PackedAccounts and CompressedAccountMetas.\n │  └─ Send transaction.\n │\n └─ Custom Program\n    ├─ CpiAccounts parse accounts consistent with PackedAccounts.\n    ├─ LightAccount instantiates from CompressedAccountMeta.\n    │\n    └─ Light System Program CPI\n       ├─ Verify ValidityProof.\n       ├─ Update State Merkle tree.\n       ├─ Update Address Merkle tree.\n       └─ Complete atomic state transition.\n\nDomain references\nTopic\tReference\nProgram operations (create, update, close, burn, reinit)\treferences/compressed-pdas.md\nClient SDK (TypeScript + Rust)\treferences/client.md\nNullifier PDAs (double-spend prevention)\treferences/nullifier-pdas.md\nError codes (6000-16034)\treferences/error-codes.md\nReference repos\n\nBasic operations — create, update, close, reinit, burn (each with Anchor and Native variants)\n\nCounter — full lifecycle (create, increment, decrement, reset, close):\n\ncounter/anchor — Anchor with Rust and TypeScript tests\ncounter/native — Native with light-sdk and Rust tests\ncounter/pinocchio — Pinocchio with light-sdk-pinocchio and Rust tests\n\nOther examples:\n\ncreate-and-update — Create and update with a single validity proof in one instruction\nread-only — Create and read a compressed account onchain\naccount-comparison — Compressed vs regular Solana accounts\n\nNullifier:\n\nnullifier-program — Rent-free PDA for duplicate execution prevention. SDK: light-nullifier-program | example client\n\nAirdrop claim:\n\nsimple-claim — Compressed tokens decompressed to SPL on claim with cliff\nmerkle-distributor — SPL tokens with compressed PDA claim tracking, linear vesting, partial claims, clawback\nexample-token-distribution — Simple client-side distribution\n\nZK programs:\n\nzk-id — Identity verification with Groth16 proofs\nzk/nullifier — Simple nullifier creation program\n\nAdditional: examples-zk-compression — More ZK compression examples\n\nCanonical source: program-examples README. If cloned locally, scope Read, Glob, Grep to these repositories and the current project directory only.\n\nWorkflow\nClarify intent\nRecommend plan mode, if it's not activated\nUse AskUserQuestion to resolve blind spots\nAll questions must be resolved before execution\nIdentify references\nMatch task to domain references and reference repos\nLocate relevant documentation and examples\nWrite plan file (YAML task format)\nUse AskUserQuestion for anything unclear — never guess or assume\nIdentify blockers: permissions, dependencies, unknowns\nPlan must be complete before execution begins\nExecute\nUse Task tool with subagents for parallel research\nSubagents load skills via Skill tool\nTrack progress with TodoWrite\nWhen 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.\nBuild and test\nRequired commands\n\nAnchor programs:\n\nanchor build\nanchor test\n\n\nNative programs:\n\ncargo build-sbf\ncargo test-sbf\n\nForbidden shortcuts\nDo NOT use cargo build (must use cargo build-sbf)\nDo NOT use cargo test (must use cargo test-sbf)\nDo NOT skip SBF compilation\nTests MUST run against real BPF bytecode\nFailure recovery\n\nOn failure, spawn debugger agent with error context.\n\nLoop rules:\n\nEach debugger gets fresh context + previous debug reports\nEach attempt tries something DIFFERENT\nNEVER GIVE UP - keep spawning until fixed\nMax 5 attempts per error\n\nDo NOT proceed until all tests pass.\n\nSDK references\nPackage\tLink\nlight-sdk\tdocs.rs\nlight-client\tdocs.rs\n@lightprotocol/stateless.js\tAPI docs\nlight-program-test\tdocs.rs\nDeepWiki fallback\n\nIf no matching pattern in reference repos:\n\nmcp__deepwiki__ask_question(\"Lightprotocol/light-protocol\", \"How to {operation}?\")\n\nSecurity\n\nThis skill provides code patterns and documentation references only.\n\nDeclared 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.\nFilesystem 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.\nSubagent scope. When stuck, the skill asks to spawn a read-only subagent with Read, Glob, Grep scoped to skill references, example repos, and docs.\nInstall source. npx skills add Lightprotocol/skills from Lightprotocol/skills.\nAudited protocol. Light Protocol smart contracts are independently audited. Reports are published at github.com/Lightprotocol/light-protocol/tree/main/audits."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tilo-14/solana-compression-dev",
    "publisherUrl": "https://clawhub.ai/tilo-14/solana-compression-dev",
    "owner": "tilo-14",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/solana-compression-dev",
    "downloadUrl": "https://openagent3.xyz/downloads/solana-compression-dev",
    "agentUrl": "https://openagent3.xyz/skills/solana-compression-dev/agent",
    "manifestUrl": "https://openagent3.xyz/skills/solana-compression-dev/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/solana-compression-dev/agent.md"
  }
}