Rent-Free Solana Programs
The Light SDK pays rent-exemption for PDAs, token accounts, and mints. Program logic stays mostly untouched.
| Rent cost (per account) |
Solana / SPL |
Light SDK |
| Token account |
~2,000,000 lamports |
~11,000 lamports |
| Avg. DeFi pool |
~$2 |
~$0.02 |
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
- Match task to domain references below
- Locate relevant documentation and examples
- 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: spawn subagent with
Read, Glob, Grep, DeepWiki MCP access and load skills/ask-mcp
Domain References
| Audience |
Reference |
| Anchor pattern |
references/anchor.md |
| Pinocchio pattern |
references/pinocchio.md |
| Client SDK (LightProgramInterface) |
references/client-sdk.md |
| Testing |
references/testing.md |
| CPI instructions |
references/instructions.md |
| FAQ |
references/faq.md |
| Router integration |
references/router.md |
When to use which
| Criteria |
Anchor |
Pinocchio |
| Framework |
anchor-lang 0.31, #[light_program] macro |
pinocchio 0.9, LightProgramPinocchio derive |
| State struct |
Option<CompressionInfo> + LightAccount derive |
CompressionInfo (non-optional) + bytemuck::Pod + Zeroable + #[repr(C)] |
| Account creation |
#[light_account(init, ...)] attribute or CreateTokenAccountCpi |
CreateTokenAccountCpi, CreateMints batch pattern |
| Compress/decompress handlers |
Auto-generated by #[light_program] macro |
Route ProgramAccounts::COMPRESS_ACCOUNTS_IDEMPOTENT etc. in entrypoint |
| Program ID constant |
Not needed (macro derives it) |
pub const ID: Pubkey = pubkey_array!(...) + LIGHT_CPI_SIGNER required |
| Dependencies |
light-sdk, light-sdk-macros, light-token, light-anchor-spl |
light-account-pinocchio, light-token-pinocchio, bytemuck |
DeFi integration
For DeFi programs (AMMs, lending, vaults): the Anchor and Pinocchio patterns above apply directly. DeFi-specific references:
| Task |
Reference |
| Router/aggregator integration (cold account loading) |
references/router.md |
| LightProgramInterface trait (client SDK for routers) |
references/client-sdk.md |
Hot vs Cold Model
After extended inactivity (multiple epochs without writes), accounts auto-compress to cold state. Programs only interact with hot accounts. Clients load cold accounts back on-chain via create_load_instructions.
|
Hot (active) |
Cold (inactive) |
| Storage |
On-chain |
Compressed |
| Latency |
Normal |
+0-200ms |
| Tx size |
Normal |
+100-2400 bytes |
| CU |
Normal |
+15k-400k CU |
| Program code |
No change |
No change |
The hot path has zero overhead.
External References
| Resource |
Link |
| Anchor AMM reference |
cp-swap-reference |
| Pinocchio swap reference |
pinocchio-swap |
| Anchor counter (rent-free PDA) |
basic-macros/counter |
| Pinocchio counter (zero-copy PDA) |
pinocchio/counter |
SDK references
| Package |
Link |
light-sdk |
docs.rs |
light-sdk-macros |
docs.rs |
light-sdk-pinocchio |
docs.rs |
light-token |
docs.rs |
light-token-pinocchio |
docs.rs |
light-account-pinocchio |
docs.rs |
light-token-client |
docs.rs |
light-client |
docs.rs |
light-program-test |
docs.rs |
Security
This skill does not pull, store, or transmit external secrets. It provides code patterns, documentation references, and development guidance only.
- No credentials consumed. The skill requires no API keys, private keys, or signing secrets.
env: [] is declared explicitly.
- User-provided configuration. RPC endpoints, wallet keypairs, and authentication tokens (Privy, wallet adapters) are configured in the user's own application code — the skill only demonstrates how to use them.
- Install source.
npx skills add Lightprotocol/skills installs from the public GitHub repository (Lightprotocol/skills). Verify the source before running.
- Subagent scope. This skill may spawn read-only subagents that use
Read, Glob, and Grep to search the local repository. Restrict the working directory to your project.
- Audited protocol. Light Protocol smart contracts are independently audited. Reports are published at github.com/Lightprotocol/light-protocol/tree/main/audits.