diff --git a/.gitignore b/.gitignore index 90c6824..41272ce 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ mintlify mintlify-docs/ /CLAUDE.md .windsurf.context/ +.claude +.context diff --git a/compressed-token-program/Extensions/compressible.mdx b/compressed-token-program/Extensions/compressible.mdx new file mode 100644 index 0000000..2f7fcca --- /dev/null +++ b/compressed-token-program/Extensions/compressible.mdx @@ -0,0 +1,251 @@ +--- +title: Compressible +description: The compressible extension sponsors rent-exemption for any type of Solana account except mints. +--- + +
| + | Supported Accounts | +Description | +
|---|---|---|
| **Compressible** | ++ cToken accounts + | ++ * **Sponsored rent-exemption** + * 200x cheaper than SPL tokens + * Must be **added at account creation** + | +
| Component | +Amount | +Paid By | +Description | +
|---|---|---|---|
| Solana rent exemption | +~2,700,480 lamports | +Rent sponsor PDA | +Rent-exemption balance | +
| Prepaid rent | +388 × N epochs* | +Payer (Account creator) |
+ Rent for N epochs | +
| Compression incentive | +10,000 lamports + 1,000 lamports |
+ Payer (Account creator) |
+ Base compression cost + protocol incentive |
+
| Transaction fee | +5,000-10,000 lamports | +Payer (Account creator) |
+ Standard Solana tx fees | +
| Account State | +Payer Cost | +Example | +
|---|---|---|
| Funded for 2+ epochs | +0 lamports | +No top-up required | +
| Funded for less than 2 epochs | +`lamports_per_write` | +Configured as 5,000 lamports → payer pays 5,000 lamports |
+
| Compressible (ran out of rent) |
+ `lamports_per_write + rent_deficit` | +Configured top-up: 5,000 lamports Rent deficit: 3,000 lamports Total payer cost: 8,000 lamports |
+
| Component and Amount | +Recipient | +
|---|---|
| Rent exemption + completed epoch rent | +Rent sponsor | +
| Remaining lamports from top-up (partial epoch) | +Account Owner | +
| Component and Amount | +Recipient | +
|---|---|
| Rent exemption + remaining lamports (all account lamports) |
+ Rent sponsor | +
| Compression incentive (11,000 lamports) |
+ Forester node | +
| + | Supported Accounts | +Description | +
|---|---|---|
| **Token Metadata** | +cMint accounts | ++ * Rent-free mints with Token Metadata + * Stores information like name, symbol, URI, and custom fields. + * Must be added at creation of cMint + | +
| + | Account Type | +Key Features | +
|---|---|---|
| **[cMint](#cmint-accounts)** | +Compressed account | +
+
|
+
| **[cToken](#ctoken-account)** | +Solana account | +
+
|
+
| **[Compressed Token](#compressed-token-account)** | +Compressed account | +
+
|
+
+
+ | Field | +cMint | +SPL Mint | +
|---|---|---|
| mint_authority | +✓ | +✓ | +
| supply | +✓ | +✓ | +
| decimals | +✓ | +✓ | +
| is_initialized | +✓ | +✓ | +
| freeze_authority | +✓ | +✓ | +
| cMint Data | +✓ | +- | +
| Extensions | +✓ | +via Token-2022 | +
+
+ | Field | +cToken | +SPL Token Account | +
|---|---|---|
| mint | +✓ | +✓ | +
| owner | +✓ | +✓ | +
| amount | +✓ | +✓ | +
| delegate | +unimplemented | +✓ | +
| state | +✓ | +✓ | +
| is_native | +✓ | +✓ | +
| delegated_amount | +unimplemented | +✓ | +
| close_authority | +✓ | +✓ | +
| extensions | +✓ | +via Token-2022 | +
+
+ | + | Type | +Key Features | +
|---|---|---|
| **[cMint](#cmint-accounts)** | +Compressed account | +
+
|
+
| **Token Metadata** | +Extension | ++ * Stores information like name, symbol, URI, and custom fields. + * Must be added at creation of cMint + | +
| + | Account Type | +Key Features | +
|---|---|---|
| **[Compressed Token](#compressed-token-account)** | +Compressed account | +
+
|
+
| + | SPL Token | +Compressed Token | +
|---|---|---|
| 100,000 Token Accounts | +~ 200 SOL | +~ 0.004 SOL | +
| + | Type | +Key Features | +
|---|---|---|
| **[cMint](#cmint-accounts)** | +Solana account | +
+
|
+
| **[Compressible](#compressible)** | +Extension | +
+
|
+
| + | + |
|---|---|
| [Combine Instructions in One Transaction](/compressed-token-program/compressed-tokens/advanced-guides/how-to-combine-operations-in-one-transaction) | +Execute multiple token instructions within a single transaction | +
| [Add Wallet Support for Compressed Tokens](/compressed-token-program/compressed-tokens/advanced-guides/add-wallet-support-for-compressed-tokens) | +Add compressed token support in your wallet application | +
| [Use Token-2022 with Compression](/compressed-token-program/compressed-tokens/advanced-guides/use-token-2022-with-compression) | +Create compressed Token-2022 mints with metadata and other extensions | +
| + | + |
|---|---|
| [Create an Airdrop without Claim](/compressed-token-program/compressed-tokens/advanced-guides/create-an-airdrop) | +Distribute tokens that appear directly in recipients' wallets (via WebApp or CLI) |
+
| [Example Airdrop with Claim](/compressed-token-program/compressed-tokens/advanced-guides/create-an-airdrop-with-claim) | +Demo for time-locked airdrop. Users can claim after vesting. | +
| [Example Web Client](/compressed-token-program/compressed-tokens/advanced-guides/example-web-client) | +Demo to @lightprotocol/stateless.js in a browser environment | +
| [Example Node.js Client](/compressed-token-program/compressed-tokens/advanced-guides/example-node-js) | +Script to execute basic compression/decompression/transfers | +
| + | + |
|---|---|
| [Create Compressed Token Accounts](/compressed-token-program/compressed-tokens/basic-guides/how-to-create-compressed-token-accounts) | +Create compressed and learn difference to regular token accounts | +
| [Mint Compressed Tokens](/compressed-token-program/compressed-tokens/basic-guides/how-to-mint-compressed-tokens) | +Create new compressed tokens to existing mint | +
| [Transfer Compressed Tokens](/compressed-token-program/compressed-tokens/basic-guides/how-to-transfer-compressed-token) | +Move compressed tokens between compressed accounts | +
| [Decompress and Compress Tokens](/compressed-token-program/compressed-tokens/basic-guides/how-to-compress-and-decompress-spl-tokens) | +Convert SPL tokens between regular and compressed format | +
| [Compress Complete SPL Token Accounts](/compressed-token-program/compressed-tokens/basic-guides/how-to-compress-complete-spl-token-accounts) | +Compress complete SPL token accounts and reclaim rent afterwards | +
| [Create a Mint Account with Token Pool for Compression](/compressed-token-program/compressed-tokens/basic-guides/how-to-create-and-register-a-mint-account-for-compression) | +Create new SPL mint with token pool for compression | +
| [Create Token Pools for Mint Accounts](/compressed-token-program/compressed-tokens/basic-guides/how-to-create-compressed-token-pools-for-mint-accounts) | +Create token pool for compression for existing SPL mints | +
| [Merge Compressed Accounts](/compressed-token-program/compressed-tokens/basic-guides/how-to-merge-compressed-token-accounts) | +Consolidate multiple compressed accounts of the same mint into one | +
| [Approve and Revoke Delegate Authority](/compressed-token-program/compressed-tokens/basic-guides/how-to-approve-and-revoke-delegate-authority) | +Approve or revoke delegates for compressed token accounts | +
| Component | +Amount | +Description | +|
|---|---|---|---|
| Prepaid rent | +388 × N epochs* | +Rent for N epochs | +|
| + | + | + | + |
| Compression cost & incentive | +10,000 lamports + 1,000 lamports |
+ Transaction cost for compression + protocol incentive |
+ |
| Transaction fee | +5,000-10,000 lamports | +Standard Solana tx fees | +
| Account State | +Payer Cost | +Example | +
|---|---|---|
| Funded for 2+ epochs | +0 lamports | +No top-up required | +
| Funded for less than 2 epochs | +`lamports_per_write` | +Configured as 5,000 lamports → payer pays 5,000 lamports |
+
| Compressible (ran out of rent) |
+ `lamports_per_write + rent_deficit` | +Configured top-up: 5,000 lamports Rent deficit: 3,000 lamports Total payer cost: 8,000 lamports |
+
| Component and Amount | +Recipient | +
|---|---|
| Rent exemption + completed epoch rent | +Rent sponsor | +
| Remaining lamports from top-up (partial epoch) | +Account Owner | +
| Component and Amount | +Recipient | +
|---|---|
| Rent exemption + remaining epoch rent |
+ Rent sponsor | +
| Compression incentive (11,000 lamports) |
+ Forester node | +