Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ Resources for developers to learn and build:
Find more resources here:

- Documentation: [zkcompression.com](https://www.zkcompression.com).
- Index for LLMs and Agents: [llms.txt](https://www.zkcompression.com/llms.txt)
- [Examples](https://github.com/Lightprotocol/examples-light-token)
- [Agent Skills](https://github.com/Lightprotocol/skills/tree/main)
18 changes: 9 additions & 9 deletions ai-tools/agent-skills.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Agent skills"
description: "Install structured agent skill files for Token API's and PDA accounts. Skills tell AI coding agents what they can do with ZK Compression."

Check warning on line 3 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L3

Did you really mean 'API's'?
keywords: ["agent skills light protocol", "AI coding agent solana", "claude code solana skills", "cursor solana skills", "light sdk agent skill", "light token agent skill", "AI agent solana development"]
---

Expand Down Expand Up @@ -29,23 +29,23 @@
</Tab>
<Tab title="Any Agent">
```
npx skills add Lightprotocol/skills

Check warning on line 32 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L32

Did you really mean 'npx'?
```
</Tab>
</Tabs>

| Use case | Skill |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| Build rent-free Solana programs with Light SDK (Anchor or Pinocchio). Includes router integration. | [light-sdk](https://github.com/Lightprotocol/skills/tree/main/skills/light-sdk) |
| Use Light Token client SDKs (TypeScript and Rust) for mints, ATAs, transfers | [light-token-client](https://github.com/Lightprotocol/skills/tree/main/skills/light-token-client) |
| Stream account state via Laserstream gRPC | [data-streaming](https://github.com/Lightprotocol/skills/tree/main/skills/data-streaming) |
| Wallets and payment flows with light-token. Includes privy, wallet adapter, mobile wallet adapter signing. Optional nullifier to prevent your onchain instruction from being executed more than once. | [payments-and-wallets](https://github.com/Lightprotocol/skills/tree/main/skills/payments-and-wallets) |
| Airdrops, DePIN, token distribution | [token-distribution](https://github.com/Lightprotocol/skills/tree/main/skills/token-distribution) |
| Anti-double-spend nullifiers for Privacy-preserving ZK programs | [zk-nullifier](https://github.com/Lightprotocol/skills/tree/main/skills/zk-nullifier) |
| Testing programs and clients on localnet, devnet, mainnet | [testing](https://github.com/Lightprotocol/skills/tree/main/skills/testing) |
| For per-user state, DePIN nodes, and infrequently accessed app state with compressed PDAs | [solana-compression](https://github.com/Lightprotocol/skills/tree/main/skills/solana-compression) |
| Help with Debugging and Questions via DeepWiki MCP | [ask-mcp](https://github.com/Lightprotocol/skills/tree/main/skills/ask-mcp) |
| For stablecoin payment flows and wallet integrations on Solana. | [payments](https://github.com/Lightprotocol/skills/tree/main/skills/payments) |

Check warning on line 39 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L39

Did you really mean 'stablecoin'?

Check warning on line 39 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L39

Did you really mean 'Solana'?
| For client development with Light Token APIs on Solana. | [light-token-client](https://github.com/Lightprotocol/skills/tree/main/skills/light-token-client) |

Check warning on line 40 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L40

Did you really mean 'Solana'?
| For Solana program development with tokens and PDAs. | [light-sdk](https://github.com/Lightprotocol/skills/tree/main/skills/light-sdk) |

Check warning on line 41 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L41

Did you really mean 'Solana'?

Check warning on line 41 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L41

Did you really mean 'PDAs'?
| For data pipelines, aggregators, or indexers, real-time account state streaming on Solana with light account hot/cold lifecycle tracking | [data-streaming](https://github.com/Lightprotocol/skills/tree/main/skills/data-streaming) |

Check warning on line 42 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L42

Did you really mean 'Solana'?
| For token distribution on Solana 5000x cheaper than SPL (rewards, airdrops, depins, ...) | [token-distribution](https://github.com/Lightprotocol/skills/tree/main/skills/token-distribution) |

Check warning on line 43 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L43

Did you really mean 'Solana'?

Check warning on line 43 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L43

Did you really mean 'depins'?
| For custom ZK Solana programs and privacy-preserving applications to prevent double spending | [zk-nullifier](https://github.com/Lightprotocol/skills/tree/main/skills/zk-nullifier) |

Check warning on line 44 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L44

Did you really mean 'Solana'?
| For program development on Solana with infrequently accessed state, such as per-user state, DePIN registrations, ... | [solana-compression](https://github.com/Lightprotocol/skills/tree/main/skills/solana-compression) |

Check warning on line 45 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L45

Did you really mean 'Solana'?
| For testing with Light Protocol programs and clients on localnet, devnet, and mainnet validation | [testing](https://github.com/Lightprotocol/skills/tree/main/skills/testing) |

Check warning on line 46 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L46

Did you really mean 'localnet'?

Check warning on line 46 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L46

Did you really mean 'devnet'?

Check warning on line 46 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L46

Did you really mean 'mainnet'?
| For questions about compressed accounts, Light SDK, Solana development, Claude Code features, or agent skills | [ask-mcp](https://github.com/Lightprotocol/skills/tree/main/skills/ask-mcp) |

Check warning on line 47 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L47

Did you really mean 'Solana'?

> View all skills here: https://github.com/Lightprotocol/skills.

All skills are included and are auto-discovered based on context. Ask about light-token, defi, payments, or program migration and the agent uses the relevant skill automatically.

Check warning on line 51 in ai-tools/agent-skills.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

ai-tools/agent-skills.mdx#L51

Did you really mean 'defi'?
52 changes: 46 additions & 6 deletions api-reference/solana-to-light-comparison.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Solana to Light Reference

Check warning on line 2 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L2

Did you really mean 'Solana'?
sidebarTitle: Reference
description: Side-by-side mapping of every Light Token instruction against its SPL/Solana equivalent. Covers RPC, TypeScript client, Rust client, program CPI, and Anchor macros.
keywords: ["rent-exemption on solana", "solana rent-exemption", "expensive rent solana", "spl to light token migration", "solana spl token vs light token", "light token API reference", "solana token comparison", "spl token alternative solana", "light token typescript SDK", "light token rust SDK", "anchor light token"]
Expand Down Expand Up @@ -73,8 +73,8 @@

### Create an RPC connection

Helius exposes Solana and Photon RPC endpoints through a single URL.

Check warning on line 76 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L76

Did you really mean 'Helius'?

Check warning on line 76 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L76

Did you really mean 'Solana'?
It's a thin wrapper extending Solana's `Connection` class that allows you to query cold Light Token balances.

Check warning on line 77 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L77

Did you really mean 'Solana's'?

<Tabs>
<Tab title="TypeScript">
Expand Down Expand Up @@ -108,7 +108,7 @@
Fetch the parsed state of a light token account, including hot and cold balances.

> [Guide](/light-token/payments/integration-guide) |
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments-and-wallets/get-balance.ts)
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments/verify/get-balance.ts)

<Columns cols={2}>
<LightGetBalanceTs />
Expand All @@ -123,10 +123,10 @@
</Accordion>

<Accordion title="Transaction history">
Fetch merged and deduplicated transaction history across on-chain and compressed transactions.

Check warning on line 126 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L126

Did you really mean 'deduplicated'?

> [Guide](/light-token/payments/integration-guide) |
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments-and-wallets/get-history.ts)
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments/verify/get-history.ts)

<Columns cols={2}>
<LightGetHistoryTs />
Expand Down Expand Up @@ -160,10 +160,10 @@
const { mint } = await createMintInterface(
rpc,
payer,
mintAuthority,

Check warning on line 163 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L163

Did you really mean 'mintAuthority'?
freezeAuthority,

Check warning on line 164 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L164

Did you really mean 'freezeAuthority'?
decimals,
mintKeypair

Check warning on line 166 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L166

Did you really mean 'mintKeypair'?
);
```

Expand All @@ -190,8 +190,8 @@
const mint = await createMint(
connection,
payer,
mintAuthority,

Check warning on line 193 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L193

Did you really mean 'mintAuthority'?
freezeAuthority,

Check warning on line 194 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L194

Did you really mean 'freezeAuthority'?
decimals
);
```
Expand Down Expand Up @@ -221,7 +221,7 @@
mint_seed.pubkey(),
payer.pubkey(),
address_tree.tree,
output_queue,

Check warning on line 224 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L224

Did you really mean 'output_queue'?
)
.instruction()?;
```
Expand All @@ -231,7 +231,7 @@

let (sig, mint) = CreateMint {
decimals: 9,
freeze_authority: Some(payer.pubkey()),

Check warning on line 234 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L234

Did you really mean 'freeze_authority'?
token_metadata: None,
seed: None,
}
Expand Down Expand Up @@ -303,7 +303,7 @@
```typescript SPL Action
import { getOrCreateAssociatedTokenAccount } from "@solana/spl-token";

const ata = await getOrCreateAssociatedTokenAccount(

Check warning on line 306 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L306

Did you really mean 'ata'?
connection,
payer,
mint,
Expand Down Expand Up @@ -418,12 +418,12 @@
```typescript SPL Action
import { mintTo } from "@solana/spl-token";

const tx = await mintTo(

Check warning on line 421 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L421

Did you really mean 'tx'?
connection,
payer,
mint,
destination,
mintAuthority,

Check warning on line 426 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L426

Did you really mean 'mintAuthority'?
amount
);
```
Expand Down Expand Up @@ -569,11 +569,11 @@
```typescript SPL Action
import { transfer } from "@solana/spl-token";

const tx = await transfer(

Check warning on line 572 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L572

Did you really mean 'tx'?
connection,
payer,
sourceAta,

Check warning on line 575 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L575

Did you really mean 'sourceAta'?
destinationAta,

Check warning on line 576 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L576

Did you really mean 'destinationAta'?
owner,
amount
);
Expand Down Expand Up @@ -650,8 +650,8 @@
transferring in one call:

> [Guide](/light-token/payments/integration-guide) |
> [Example (instruction)](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments-and-wallets/send-instruction.ts) |
> [Example (action)](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments-and-wallets/send-action.ts)
> [Example (instruction)](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments/send/send-instruction.ts) |
> [Example (action)](https://github.com/Lightprotocol/examples-light-token/blob/main/toolkits/payments/send/send-action.ts)

```typescript
import { Transaction } from "@solana/web3.js";
Expand Down Expand Up @@ -686,7 +686,7 @@
// One approval for all
const signed = await wallet.signAllTransactions(transactions);

for (const tx of signed) {

Check warning on line 689 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L689

Did you really mean 'tx'?
// send...
await sendAndConfirmTransaction(rpc, tx);
}
Expand Down Expand Up @@ -773,14 +773,14 @@
getAssociatedTokenAddressInterface,
} from "@lightprotocol/compressed-token/unified";

const splAta = getAssociatedTokenAddressSync(mint, owner.publicKey);

Check warning on line 776 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L776

Did you really mean 'splAta'?
const tokenAta = getAssociatedTokenAddressInterface(mint, owner.publicKey);

Check warning on line 777 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L777

Did you really mean 'tokenAta'?

// Wrap: SPL → Light
await wrap(rpc, payer, splAta, tokenAta, owner, mint, amount);

Check warning on line 780 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L780

Did you really mean 'splAta'?

Check warning on line 780 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L780

Did you really mean 'tokenAta'?

// Unwrap: Light → SPL
await unwrap(rpc, payer, splAta, owner, mint, amount);

Check warning on line 783 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L783

Did you really mean 'splAta'?
```

```typescript Instruction
Expand Down Expand Up @@ -895,6 +895,46 @@
</Tabs>
</Accordion>

### Delegated transfer

Transfer tokens as an approved delegate. The delegate is the transaction authority; the owner's signature is not required.

> [Guide](/light-token/payments/spend-permissions)

<Tabs>
<Tab title="TypeScript">
<Columns cols={2}>
```typescript title="Light"
import { transferDelegatedInterface } from "@lightprotocol/compressed-token/unified";

const tx = await transferDelegatedInterface(
rpc,
payer,
sourceAta,
mint,
recipient,
delegate,
owner.publicKey,
amount
);
```
```typescript title="SPL"
import { transfer } from "@solana/spl-token";

// delegate signs instead of owner
const tx = await transfer(
connection,
payer,
sourceAta,
destinationAta,
delegate,
amount
);
```
</Columns>
</Tab>
</Tabs>

### Revoke delegate

Remove all delegate permissions.
Expand Down Expand Up @@ -1123,7 +1163,7 @@
Create a rent-free associated token account via CPI.

> [Guide](/light-token/cookbook/create-ata) |
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/create-ata/src/lib.rs) |
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/create-associated-token-account/src/lib.rs) |
> [Source](https://docs.rs/light-token)

<Columns cols={2}>
Expand Down Expand Up @@ -1366,7 +1406,7 @@

### CloseAccountCpi

Close a token account and reclaim lamports via CPI.

Check warning on line 1409 in api-reference/solana-to-light-comparison.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

api-reference/solana-to-light-comparison.mdx#L1409

Did you really mean 'lamports'?

> [Guide](/light-token/cookbook/close-token-account) |
> [Example](https://github.com/Lightprotocol/examples-light-token/blob/main/programs/anchor/basic-instructions/close/src/lib.rs) |
Expand Down Expand Up @@ -1455,7 +1495,7 @@
### Create associated token account

> [Guide](/light-token/cookbook/create-ata) |
> [Example](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/basic-macros/create-ata) |
> [Example](https://github.com/Lightprotocol/examples-light-token/tree/main/programs/anchor/basic-macros/create-associated-token-account) |
> [Source](https://docs.rs/light-token)

<Columns cols={2}>
Expand Down
6 changes: 5 additions & 1 deletion cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,11 @@
"clippy",
"Raydium",
"raydium",
"USDG"
"USDG",
"Gamal",
"blockhashes",
"supermajority",
"sqds"
],
"ignorePaths": [
"node_modules",
Expand Down
90 changes: 81 additions & 9 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,31 +33,83 @@
]
},
{
"group": "Light Token Program",
"group": "Light Token APIs",
"pages": [
"light-token/welcome",
{
"group": "Cookbook",
"pages": [
"light-token/cookbook/create-mint",
{
"group": "Mint Accounts",
"pages": [
"light-token/cookbook/create-mint",
"light-token/cookbook/add-interface-pda"
]
},
"light-token/cookbook/create-ata",
"light-token/cookbook/create-token-account",
"light-token/cookbook/mint-to",
"light-token/cookbook/transfer-interface",
"light-token/cookbook/transfer-checked",
"light-token/cookbook/approve-revoke",
{
"group": "Delegates",
"pages": [
"light-token/cookbook/approve-revoke",
"light-token/cookbook/transfer-delegated"
]
},
"light-token/cookbook/freeze-thaw",
"light-token/cookbook/wrap-unwrap",
"light-token/cookbook/load-ata",
"light-token/cookbook/close-token-account",
"light-token/cookbook/burn"
]
},
{
"group": "Extensions",
"pages": [
"light-token/extensions/overview",
"light-token/extensions/metadata-and-metadata-pointer",
"light-token/extensions/transfer-fees",
"light-token/extensions/transfer-hook",
"light-token/extensions/interest-bearing-tokens",
"light-token/extensions/default-account-state",
"light-token/extensions/permanent-delegate",
"light-token/extensions/close-mint",
"light-token/extensions/token-groups-and-members",
"light-token/extensions/pausable-mint",
"light-token/extensions/confidential-transfer"
]
},
{
"group": "For Stablecoin Payments",
"pages": [
"light-token/payments/overview",
"light-token/payments/integration-guide"
{
"group": "Send Payments",
"pages": [
"light-token/payments/basic-payment",
"light-token/payments/batch-payments",
"light-token/payments/payment-with-memo"
]
},
"light-token/payments/receive-payments",
{
"group": "Verify Payments",
"pages": [
"light-token/payments/verify-payments",
"light-token/payments/verify-recipient-address"
]
},
"light-token/payments/wrap-unwrap",
{
"group": "Advanced",
"pages": [
"light-token/payments/spend-permissions",
"pda/compressed-pdas/nullifier-pda"
]
},
"light-token/payments/production-readiness"
]
},
{
Expand All @@ -66,7 +118,8 @@
"light-token/wallets/overview",
"light-token/wallets/privy",
"light-token/wallets/wallet-adapter",
"light-token/wallets/sponsor-top-ups"
"light-token/wallets/gasless-transactions",
"light-token/wallets/smart-wallets"
]
},
{
Expand Down Expand Up @@ -103,7 +156,6 @@
"pages": [
"pda/compressed-pdas/overview",
"pda/compressed-pdas/guides/client-guide",
"pda/compressed-pdas/how-to-create-nullifier-pdas",
{
"group": "Program Guides",
"expanded": true,
Expand Down Expand Up @@ -317,6 +369,18 @@
}
},
"redirects": [
{
"source": "/pda/compressed-pdas/nullifier-pda",
"destination": "https://zkcompression.com/pda/compressed-pdas/nullifier-pda"
},
Comment on lines +372 to +375

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Self-referential redirect creates infinite loop for nullifier-pda page

The PR adds a redirect from /pda/compressed-pdas/nullifier-pda to https://zkcompression.com/pda/compressed-pdas/nullifier-pda at docs.json:372-375. Since the site is hosted at zkcompression.com, this redirects the page to itself. The page pda/compressed-pdas/nullifier-pda.mdx exists as an actual file and is listed in the navigation at docs.json:109, so this redirect is both unnecessary and potentially creates an infinite redirect loop depending on how Mintlify prioritizes redirects vs. navigation pages.

Suggested change
{
"source": "/pda/compressed-pdas/nullifier-pda",
"destination": "https://zkcompression.com/pda/compressed-pdas/nullifier-pda"
},
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

{
"source": "/light-token/payments/nullifier-pda",
"destination": "https://zkcompression.com/pda/compressed-pdas/nullifier-pda"
},
{
"source": "/light-token/nullifier-pda",
"destination": "https://zkcompression.com/pda/compressed-pdas/nullifier-pda"
},
{
"source": "/airdrop",
"destination": "https://zkcompression.com/token-distribution"
Expand Down Expand Up @@ -419,7 +483,7 @@
},
{
"source": "/compressed-pdas/guides/how-to-create-nullifier-pdas",
"destination": "https://zkcompression.com/pda/compressed-pdas/how-to-create-nullifier-pdas"
"destination": "https://zkcompression.com/pda/compressed-pdas/nullifier-pda"
},
{
"source": "/compressed-pdas/guides/how-to-reinitialize-compressed-accounts",
Expand Down Expand Up @@ -935,7 +999,15 @@
},
{
"source": "/light-token/toolkits/sponsor-top-ups",
"destination": "https://zkcompression.com/light-token/wallets/sponsor-top-ups"
"destination": "https://zkcompression.com/light-token/wallets/gasless-transactions"
},
{
"source": "/light-token/wallets/sponsor-top-ups",
"destination": "https://zkcompression.com/light-token/wallets/gasless-transactions"
},
{
"source": "/light-token/payments/fee-abstraction",
"destination": "https://zkcompression.com/light-token/wallets/gasless-transactions"
},
{
"source": "/light-token/toolkits/for-streaming-mints",
Expand All @@ -951,7 +1023,7 @@
},
{
"source": "/pda/compressed-pdas/guides/how-to-create-nullifier-pdas",
"destination": "https://zkcompression.com/pda/compressed-pdas/how-to-create-nullifier-pdas"
"destination": "https://zkcompression.com/pda/compressed-pdas/nullifier-pda"
}
]
}
37 changes: 11 additions & 26 deletions faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@

<Accordion title="How does rent-exemption sponsorship work ?">

Rent sponsorship is a built-in feature of the Light SDK’s that sponsors rent-exemption for all account types to reduce creation cost: mints, token accounts, and PDAs.

Check warning on line 20 in faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

faq.mdx#L20

Did you really mean 'PDAs'?
This is dealt with under the hood in a way that doesn’t disrupt the UX of what your users are used to with SPL-token.

| Account Creation Cost | Light | Standard Solana |

Check warning on line 23 in faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

faq.mdx#L23

Did you really mean 'Solana'?
| :----------------------- | :------------------- | :---------------------- |
| **Mint account** | **~0.00001 SOL** | ~0.0015 SOL |
| **Associated token account** | **~0.00001 SOL** | ~0.0029 SOL |
Expand All @@ -30,23 +30,23 @@

</Accordion>

<Accordion title="How can I sponsor rent top-ups for my users?">
<Accordion title="How can I make transactions gasless for my users?">

Set the `payer` parameter to the sponsor's public key on any Light Token instruction. The sponsor pays SOL for rent top-ups while the user only signs to authorize the transfer.
Set the `payer` parameter to the sponsor's public key on any Light Token instruction. The sponsor pays SOL for rent top-ups and transaction fees while the user only signs to authorize the transfer.

```typescript
const ix = createLightTokenTransferInstruction(
senderAta,
recipientAta,
sender.publicKey,
amount,
sponsor.publicKey, // sponsor pays rent top-ups
sponsor.publicKey, // sponsor pays rent top-ups and transaction fees
);

await sendAndConfirmTransaction(rpc, tx, [sponsor, sender]);
```

<Card title="Sponsor rent top-ups guide" icon="chevron-right" color="#0066ff" href="/light-token/wallets/sponsor-top-ups" horizontal />
<Card title="Gasless transactions guide" icon="chevron-right" color="#0066ff" href="/light-token/wallets/gasless-transactions" horizontal />

</Accordion>

Expand Down Expand Up @@ -75,15 +75,15 @@

<Accordion title="Can I start using the Light Token Standard?">

Yes! Light Token is deployed on devnet. You can start integrating today with our [Quickstart](/light-token/quickstart) and [Toolkits](/light-token/welcome).
Yes! Light Token is live on Solana mainnet. Start integrating with the [Quickstart](/light-token/quickstart) and [Toolkits](/light-token/welcome).

Check warning on line 78 in faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

faq.mdx#L78

Did you really mean 'Solana'?

Check warning on line 78 in faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

faq.mdx#L78

Did you really mean 'mainnet'?

For production on mainnet, use [Compressed Tokens V1](/resources/legacy-compressed-tokens), which are live and supported by leading wallets such as Phantom and Backpack.
For token distribution use cases (airdrops, claims), see [Compressed Tokens](/resources/legacy-compressed-tokens), supported by leading wallets such as Phantom and Backpack.

</Accordion>

<Accordion title="Do I need to change my client code significantly?">

No. The `light-token-sdk` methods are a superset of the SPL-token API.

Check warning on line 86 in faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

faq.mdx#L86

Did you really mean 'superset'?
Find examples below.

<CodeCompare
Expand Down Expand Up @@ -159,26 +159,11 @@

<Accordion title="Does light-token support extensions?">

Extensions are under development. Additional extensions can be requested.

Coming soon:

- MetadataPointer
- TokenMetadata
- InterestBearingConfig
- GroupPointer
- GroupMemberPointer
- TokenGroup
- TokenGroupMember
- MintCloseAuthority
- TransferFeeConfig
- DefaultAccountState
- PermanentDelegate
- TransferHook
- Pausable
- ConfidentialTransferMint
- ConfidentialTransferFeeConfig
- ConfidentialMintBurn
Light Token supports 16 Token-2022 extensions, including MetadataPointer, TokenMetadata, TransferFeeConfig, PermanentDelegate, TransferHook, and more. Some extensions have restrictions (e.g., transfer fees must be zero).

<Card title="View supported extensions" icon="chevron-right" color="#0066ff" href="/light-token/extensions/overview" horizontal />

Additional extensions can be requested.

</Accordion>

Expand Down Expand Up @@ -258,7 +243,7 @@

<Accordion title="What happens if my Light-PDA runs out of rent?">

The account data is cryptographically preserved in compressed state. The client prepends a load instruction when someone interacts with it again — your program code doesn't change. Reads, updates, and closes work the same way regardless of whether the account is hot or cold.

Check warning on line 246 in faq.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

faq.mdx#L246

Did you really mean 'prepends'?

</Accordion>

Expand Down
4 changes: 2 additions & 2 deletions learn/light-token-standard.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Core concepts of the Light Token program (Beta)
title: Core concepts of the Light Token program
sidebarTitle: Core Concepts (Light Token Program)
description: The Light Token Program is a high performance token program that reduces the cost of account creations by 200x, while being more CU efficient than SPL on hot paths.
keywords: ["light token standard on solana", "token 2022 on solana", "token extensions on solana", "spl token on solana", "rent free tokens on solana"]
Expand All @@ -21,7 +21,7 @@
<tbody>
<tr>
<td style={{ textAlign: "left" }}>**[Mint Accounts](#light-mint-accounts)**</td>
<td style={{ textAlign: "left" }}>Solana Account</td>

Check warning on line 24 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L24

Did you really mean 'Solana'?
<td style={{ textAlign: "left" }}>
<ul>
<li>Represents a unique mint and optionally can store token-metadata.</li>
Expand All @@ -32,7 +32,7 @@
</tr>
<tr>
<td style={{ textAlign: "left" }}>**[Token Accounts](#light-token-account)**</td>
<td style={{ textAlign: "left" }}>Solana account</td>

Check warning on line 35 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L35

Did you really mean 'Solana'?
<td style={{ textAlign: "left" }}>
<ul>
<li>Stores token balances of mints (SPL, Token-2022, or Light)</li>
Expand All @@ -56,7 +56,7 @@
program, instead of the user.
</Note>

Light-mints **uniquely represent a token on Solana and store its global metadata**, similar to SPL mint accounts with few core differences:

Check warning on line 59 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L59

Did you really mean 'Solana'?

1. Tokens created from light-mints are light-tokens.
2. Token metadata (name, symbol, URI) is stored as an extension in the struct.
Expand All @@ -79,7 +79,7 @@
pub struct CompressedMint {
pub base: BaseMint,
pub metadata: CompressedMintMetadata,
/// Reserved bytes for T22 layout compatibility (padding to reach byte 165)
/// Reserved bytes for Token 2022 layout compatibility (padding to reach byte 165)
pub reserved: [u8; 49],
/// Account type discriminator at byte 165 (1 = Mint, 2 = Account)
pub account_type: u8,
Expand All @@ -98,7 +98,7 @@

The `metadata` field is used by the Light Token Program to store the internal state of a light-mint.

The `BaseMint` field replicates the field layout and serialization format of [SPL Mint accounts](https://solana.com/docs/tokens#mint-account). The struct is serialized with Borsh to match the on-chain format of SPL tokens and mints.

Check warning on line 101 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L101

Did you really mean 'Borsh'?

Here is how light-mints and SPL mints compare:

Expand All @@ -114,7 +114,7 @@
</thead>
<tbody>
<tr>
<td>mint_authority</td>

Check warning on line 117 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L117

Did you really mean 'mint_authority'?
<td style={{textAlign: 'center'}}>✓</td>
<td style={{textAlign: 'center'}}>✓</td>
</tr>
Expand All @@ -129,12 +129,12 @@
<td style={{textAlign: 'center'}}>✓</td>
</tr>
<tr>
<td>is_initialized</td>

Check warning on line 132 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L132

Did you really mean 'is_initialized'?
<td style={{textAlign: 'center'}}>✓</td>
<td style={{textAlign: 'center'}}>✓</td>
</tr>
<tr>
<td>freeze_authority</td>

Check warning on line 137 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L137

Did you really mean 'freeze_authority'?
<td style={{textAlign: 'center'}}>✓</td>
<td style={{textAlign: 'center'}}>✓</td>
</tr>
Expand Down Expand Up @@ -202,7 +202,7 @@
<Frame>
<img
src="/images/token-account-layout.png"
alt="Diagram showing light-token Solana account structure with three components: Address (identifier for light-token account in purple box), Account (struct containing Data bytes, Executable flag, Lamports balance, and Owner set to Light Token Program), and AccountData (containing Mint, Owner, Amount, and Extensions fields)"

Check warning on line 205 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L205

Did you really mean 'Solana'?

Check warning on line 205 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L205

Did you really mean 'Lamports'?
/>
</Frame>
</Tab>
Expand All @@ -215,9 +215,9 @@
pub amount: u64,
pub delegate: Option<Pubkey>, // instruction not implemented yet
pub state: u8,
pub is_native: Option<u64>,

Check warning on line 218 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L218

Did you really mean 'is_native'?
pub delegated_amount: u64, // instruction not implemented yet

Check warning on line 219 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L219

Did you really mean 'delegated_amount'?
pub close_authority: Option<Pubkey>,

Check warning on line 220 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L220

Did you really mean 'close_authority'?
pub extensions: Option<Vec<ExtensionStruct>>, // Optional extensions e.g. compressible
}
```
Expand All @@ -229,7 +229,7 @@
here](https://github.com/Lightprotocol/light-protocol/blob/bda52c305fad28b1b72093911f878d37fb190656/program-libs/token-interface/src/state/token/token_struct.rs#L34).
</Info>

Light token accounts replicate the field layout and serialization format of [SPL Token accounts](https://solana.com/docs/tokens#token-account). The struct is serialized with Borsh to match the on-chain format of SPL tokens.

Check warning on line 232 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L232

Did you really mean 'Borsh'?

Here is how light-tokens and SPL tokens compare:

Expand Down Expand Up @@ -326,7 +326,7 @@
<Frame>
<img
src="/images/compressed-token-explainer.png"
alt="Diagram showing compressed token account structure with three components: Hash (identifier for compressed token account in purple box), Account (struct containing Data bytes, Executable flag, Lamports balance, and Address set to None), and AccountData (containing Mint, Owner, Amount, and Extensions fields marked as unimplemented)"

Check warning on line 329 in learn/light-token-standard.mdx

View check run for this annotation

Mintlify / Mintlify Validation (luminouslabs-cc5545c6) - vale-spellcheck

learn/light-token-standard.mdx#L329

Did you really mean 'Lamports'?
/>
</Frame>
</Tab>
Expand Down
Loading
Loading