Skip to content
Merged
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
4 changes: 4 additions & 0 deletions light-token/cookbook/add-interface-pda.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ description: Create an interface PDA for an existing SPL or Token 2022 mint for

import TokenPoolActionCode from "/snippets/code-snippets/light-token/create-token-pool/action.mdx";
import TokenPoolInstructionCode from "/snippets/code-snippets/light-token/create-token-pool/instruction.mdx";
import TokenPoolTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/create-token-pool/token-interface-instruction.mdx";
import SupportFooter from "/snippets/support-footer.mdx";
import TokenClientPrerequisites from "/snippets/light-token-guides/light-token-client-prerequisites.mdx";
import AgentSkillGeneric from "/snippets/setup/agent-skill-generic.mdx";
Expand All @@ -32,6 +33,9 @@ import AddInterfacePdaAiPrompt from "/snippets/ai-prompts/ts-cookbook/add-interf
<Tab title="Instruction">
<TokenPoolInstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TokenPoolTokenInterfaceInstructionCode />
</Tab>
</Tabs>
</Step>
</Steps>
Expand Down
8 changes: 8 additions & 0 deletions light-token/cookbook/approve-revoke.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
} from "/snippets/code-samples/code-compare-snippets.jsx";
import TsApproveActionCode from "/snippets/code-snippets/light-token/approve-revoke/approve-action.mdx";
import TsRevokeActionCode from "/snippets/code-snippets/light-token/approve-revoke/revoke-action.mdx";
import TsApproveTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/approve-revoke/token-interface-approve-instruction.mdx";
import TsRevokeTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/approve-revoke/token-interface-revoke-instruction.mdx";
import ApproveActionCode from "/snippets/code-snippets/light-token/approve-revoke/rust-client/approve-action.mdx";
import ApproveInstructionCode from "/snippets/code-snippets/light-token/approve-revoke/rust-client/approve-instruction.mdx";
import RevokeActionCode from "/snippets/code-snippets/light-token/approve-revoke/rust-client/revoke-action.mdx";
Expand Down Expand Up @@ -103,13 +105,19 @@
<Tab title="Action">
<TsApproveActionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TsApproveTokenInterfaceInstructionCode />
</Tab>
</Tabs>
</Tab>
<Tab title="Revoke">
<Tabs>
<Tab title="Action">
<TsRevokeActionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TsRevokeTokenInterfaceInstructionCode />
</Tab>
</Tabs>
</Tab>
</Tabs>
Expand Down Expand Up @@ -262,7 +270,7 @@
<Steps>
<Step>

### Build Account Infos and CPI the Light Token Program

Check warning on line 273 in light-token/cookbook/approve-revoke.mdx

View check run for this annotation

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

light-token/cookbook/approve-revoke.mdx#L273

Did you really mean 'Infos'?

Use `invoke` for external signers or `invoke_signed` when the authority is a PDA.

Expand Down
4 changes: 4 additions & 0 deletions light-token/cookbook/create-ata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
} from "/snippets/code-samples/code-compare-snippets.jsx";
import ActionCode from "/snippets/code-snippets/light-token/create-ata/action.mdx";
import InstructionCode from "/snippets/code-snippets/light-token/create-ata/instruction.mdx";
import TokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/create-ata/token-interface-instruction.mdx";
import RustActionCode from "/snippets/code-snippets/light-token/create-ata/rust-client/action.mdx";
import RustInstructionCode from "/snippets/code-snippets/light-token/create-ata/rust-client/instruction.mdx";
import AnchorProgramCode from "/snippets/code-snippets/light-token/create-ata/anchor-program/full-example.mdx";
Expand All @@ -35,7 +36,7 @@
import SupportFooter from "/snippets/support-footer.mdx";

1. Associated Light Token accounts can hold token balances of light, SPL, or Token 2022 mints.
2. Light-ATAs are on-chain accounts like SPL ATA's, but the light token program sponsors the rent-exemption cost for you.

Check warning on line 39 in light-token/cookbook/create-ata.mdx

View check run for this annotation

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

light-token/cookbook/create-ata.mdx#L39

Did you really mean 'ATA's'?

<Accordion title="Light Rent Config Explained">
<CompressibleRentExplained />
Expand Down Expand Up @@ -79,6 +80,9 @@
<Tab title="Instruction">
<InstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand Down
12 changes: 12 additions & 0 deletions light-token/cookbook/create-mint.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@
} from "/snippets/code-samples/code-compare-snippets.jsx";
import ActionCode from "/snippets/code-snippets/light-token/create-mint/action.mdx";
import InstructionCode from "/snippets/code-snippets/light-token/create-mint/instruction.mdx";
import TokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/create-mint/token-interface-instruction.mdx";
import SplActionCode from "/snippets/code-snippets/light-token/create-spl-mint/action.mdx";
import SplInstructionCode from "/snippets/code-snippets/light-token/create-spl-mint/instruction.mdx";
import SplTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/create-spl-mint/token-interface-instruction.mdx";
import T22ActionCode from "/snippets/code-snippets/light-token/create-t22-mint/action.mdx";
import T22InstructionCode from "/snippets/code-snippets/light-token/create-t22-mint/instruction.mdx";
import T22TokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/create-t22-mint/token-interface-instruction.mdx";

import RustActionCode from "/snippets/code-snippets/light-token/create-mint/rust-client/action.mdx";
import RustInstructionCode from "/snippets/code-snippets/light-token/create-mint/rust-client/instruction.mdx";
Expand All @@ -46,7 +49,7 @@
import ProgramCreateMintMacrosAiPrompt from "/snippets/ai-prompts/program-cookbook/create-mint-macros.mdx";
import SupportFooter from "/snippets/support-footer.mdx";

1. Mint accounts uniquely represent a token on Solana and store its global metadata.

Check warning on line 52 in light-token/cookbook/create-mint.mdx

View check run for this annotation

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

light-token/cookbook/create-mint.mdx#L52

Did you really mean 'Solana'?
2. Light mints are on-chain accounts like SPL mints, but the light token program sponsors the rent-exemption cost for you.
3. [Add an interface PDA](/light-token/cookbook/add-interface-pda) to existing SPL or Token 2022 mints for interoperability with Light Token. The interface PDA holds SPL or Token 2022 tokens when wrapped to Light Token.

Expand All @@ -61,7 +64,7 @@

<Tab title="TypeScript Client">

`createMintInterface` is a unified interface that dispatches to different mint creation paths based on programId:

Check warning on line 67 in light-token/cookbook/create-mint.mdx

View check run for this annotation

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

light-token/cookbook/create-mint.mdx#L67

Did you really mean 'programId'?

- `TOKEN_PROGRAM_ID` or `TOKEN_2022_PROGRAM_ID` → delegates to SPL or Token 2022 `createMint`
- Otherwise it defaults to `LIGHT_TOKEN_PROGRAM_ID` → creates a Light Token mint
Expand Down Expand Up @@ -103,6 +106,9 @@
<Tab title="Instruction">
<InstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand All @@ -124,6 +130,9 @@
<Tab title="Instruction">
<SplInstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<SplTokenInterfaceInstructionCode />
</Tab>
</Tabs>

## Create Token 2022 mint with interface PDA
Expand All @@ -137,6 +146,9 @@
<Tab title="Instruction">
<T22InstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<T22TokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Tab>
Expand Down Expand Up @@ -279,7 +291,7 @@
```

<Info>
The address of the mint account is stored in an address Merkle tree

Check warning on line 294 in light-token/cookbook/create-mint.mdx

View check run for this annotation

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

light-token/cookbook/create-mint.mdx#L294

Did you really mean 'Merkle'?
, which is maintained by the protocol.
The client passes a validity proof that proves the mint address does not
exist yet.
Expand Down Expand Up @@ -313,12 +325,12 @@
</Step>

<Step>
### Build Account Infos and CPI the Light Token Program

Check warning on line 328 in light-token/cookbook/create-mint.mdx

View check run for this annotation

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

light-token/cookbook/create-mint.mdx#L328

Did you really mean 'Infos'?

Use `invoke` or `invoke_signed`:
- When `mint_seed` is an external keypair, use `invoke`.

Check warning on line 331 in light-token/cookbook/create-mint.mdx

View check run for this annotation

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

light-token/cookbook/create-mint.mdx#L331

Did you really mean 'keypair'?
- When `mint_seed` is a PDA, use `invoke_signed` with its seeds.
- When both `mint_seed` and `authority` are PDAs, use `invoke_signed` with both seeds.

Check warning on line 333 in light-token/cookbook/create-mint.mdx

View check run for this annotation

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

light-token/cookbook/create-mint.mdx#L333

Did you really mean 'PDAs'?

<Tabs>
<Tab title="invoke (External signer)">
Expand Down
4 changes: 4 additions & 0 deletions light-token/cookbook/load-ata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ keywords: ["load ata on solana", "get token balance for wallets"]
import FullSetup from "/snippets/setup/full-setup.mdx";
import ActionCode from "/snippets/code-snippets/light-token/load-ata/action.mdx";
import InstructionCode from "/snippets/code-snippets/light-token/load-ata/instruction.mdx";
import TokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/load-ata/token-interface-instruction.mdx";
import AgentSkillGeneric from "/snippets/setup/agent-skill-generic.mdx";
import SupportFooter from "/snippets/support-footer.mdx";

Expand Down Expand Up @@ -39,6 +40,9 @@ Find the source code [here](https://github.com/Lightprotocol/light-protocol/blob
<Tab title="Instruction">
<InstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand Down
4 changes: 4 additions & 0 deletions light-token/cookbook/mint-to.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import {
} from "/snippets/code-samples/code-compare-snippets.jsx";
import ActionCode from "/snippets/code-snippets/light-token/mint-to/action.mdx";
import InstructionCode from "/snippets/code-snippets/light-token/mint-to/instruction.mdx";
import TokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/mint-to/token-interface-instruction.mdx";
import RustActionCode from "/snippets/code-snippets/light-token/mint-to/rust-client/action.mdx";
import RustInstructionCode from "/snippets/code-snippets/light-token/mint-to/rust-client/instruction.mdx";
import AnchorProgramCode from "/snippets/code-snippets/light-token/mint-to/anchor-program/full-example.mdx";
Expand Down Expand Up @@ -73,6 +74,9 @@ Compare to SPL:
<Tab title="Instruction">
<InstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand Down
4 changes: 4 additions & 0 deletions light-token/cookbook/transfer-delegated.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import FullSetup from "/snippets/setup/full-setup.mdx";
import AgentSkillGeneric from "/snippets/setup/agent-skill-generic.mdx";
import DelegateTransferAction from "/snippets/code-snippets/payments/spend-permissions/delegate-transfer.mdx";
import DelegateTransferInstruction from "/snippets/code-snippets/payments/spend-permissions/delegate-transfer-instruction.mdx";
import DelegateTransferTokenInterfaceInstruction from "/snippets/code-snippets/payments/spend-permissions/delegate-transfer-token-interface-instruction.mdx";
import SupportFooter from "/snippets/support-footer.mdx";

`transferInterface` with `{ owner }` transfers tokens from an associated token account as an approved delegate. The delegate is the transaction authority. Only the delegate and fee payer sign; the owner's signature is not required.
Expand All @@ -35,6 +36,9 @@ import SupportFooter from "/snippets/support-footer.mdx";
<Tab title="Instruction">
<DelegateTransferInstruction />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<DelegateTransferTokenInterfaceInstruction />
</Tab>
</Tabs>

</Step>
Expand Down
41 changes: 41 additions & 0 deletions light-token/cookbook/transfer-interface.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
} from "/snippets/code-samples/code-compare-snippets.jsx";
import ActionCode from "/snippets/code-snippets/light-token/transfer-interface/action.mdx";
import InstructionCode from "/snippets/code-snippets/light-token/transfer-interface/instruction.mdx";
import TokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/transfer-interface/token-interface-instruction.mdx";
import RustActionCode from "/snippets/code-snippets/light-token/transfer-interface/rust-client/action.mdx";
import RustInstructionCode from "/snippets/code-snippets/light-token/transfer-interface/rust-client/instruction.mdx";
import AnchorProgramCode from "/snippets/code-snippets/light-token/transfer-interface/anchor-program/full-example.mdx";
Expand Down Expand Up @@ -99,6 +100,9 @@ Compare to SPL:
<Tab title="Instruction">
<InstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<TokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand Down Expand Up @@ -160,6 +164,43 @@ const batches = await createTransferToAccountInterfaceInstructions(
const { rest: loads, last: transfer } = sliceLast(batches);
```

</Tab>
<Tab title="SDK 2.0 (token-interface)">

```typescript
import { Transaction, sendAndConfirmTransaction } from "@solana/web3.js";
import {
createTransferCheckedInstruction,
createLoadInstructions,
} from "@lightprotocol/token-interface";

// The destination must be an existing token account.
const destinationTokenAccount = /* existing ATA or program-owned token account */;
const sourceAta = /* owner's Light ATA */;
const decimals = 9;

const loadIxs = await createLoadInstructions({
rpc,
payer: payer.publicKey,
owner: owner.publicKey,
mint,
authority: owner.publicKey,
});

const transferIx = createTransferCheckedInstruction({
source: sourceAta,
destination: destinationTokenAccount,
mint,
authority: owner.publicKey,
payer: payer.publicKey,
amount: 500_000_000n,
decimals,
});

const tx = new Transaction().add(...loadIxs, transferIx);
await sendAndConfirmTransaction(rpc, tx, [payer, owner]);
```

</Tab>
</Tabs>

Expand Down
8 changes: 8 additions & 0 deletions light-token/cookbook/wrap-unwrap.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ keywords: ["wrap tokens on solana", "unwrap tokens for developers", "spl to ligh
import FullSetup from "/snippets/setup/full-setup.mdx";
import WrapActionCode from "/snippets/code-snippets/light-token/wrap/action.mdx";
import WrapInstructionCode from "/snippets/code-snippets/light-token/wrap/instruction.mdx";
import WrapTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/wrap/token-interface-instruction.mdx";
import UnwrapActionCode from "/snippets/code-snippets/light-token/unwrap/action.mdx";
import UnwrapInstructionCode from "/snippets/code-snippets/light-token/unwrap/instruction.mdx";
import UnwrapTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/unwrap/token-interface-instruction.mdx";
import WrapRustActionCode from "/snippets/code-snippets/light-token/wrap/rust-client/action.mdx";
import UnwrapRustActionCode from "/snippets/code-snippets/light-token/unwrap/rust-client/action.mdx";
import TokenClientPrerequisites from "/snippets/light-token-guides/light-token-client-prerequisites.mdx";
Expand Down Expand Up @@ -53,6 +55,9 @@ import SupportFooter from "/snippets/support-footer.mdx";
<Tab title="Instruction">
<WrapInstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<WrapTokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand All @@ -73,6 +78,9 @@ import SupportFooter from "/snippets/support-footer.mdx";
<Tab title="Instruction">
<UnwrapInstructionCode />
</Tab>
<Tab title="SDK 2.0 (token-interface)">
<UnwrapTokenInterfaceInstructionCode />
</Tab>
</Tabs>

</Step>
Expand Down
8 changes: 8 additions & 0 deletions light-token/payments/basic-payment.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@
import AgentSkillPayments from "/snippets/setup/agent-skill-payments.mdx";
import PaymentsAiPrompt from "/snippets/ai-prompts/toolkits/payments.mdx";
import PaymentsSetupHelper from "/snippets/setup/payments-setup-helper.mdx";
import TokenInterfaceSdk2Callout from "/snippets/light-token-guides/token-interface-sdk2-callout.mdx";
import SendInstructionCode from "/snippets/code-snippets/payments/send/basic-send-instruction.mdx";
import SendActionCode from "/snippets/code-snippets/payments/send/basic-send-action.mdx";
import SendTokenInterfaceInstructionCode from "/snippets/code-snippets/payments/send/basic-send-token-interface-instruction.mdx";

1. The light-token API matches the SPL-token API almost entirely, and extends their functionality to include the light token program in addition to the SPL-token and Token-2022 programs.
2. Your users use the same stablecoins, just stored more efficiently.

Check warning on line 19 in light-token/payments/basic-payment.mdx

View check run for this annotation

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

light-token/payments/basic-payment.mdx#L19

Did you really mean 'stablecoins'?

<table>
<thead>
Expand Down Expand Up @@ -81,6 +83,7 @@
atomic transaction with your regular transfer. APIs return `TransactionInstruction[][]` so the same
loop handles the rare multi-transaction case automatically.
</Info>
<TokenInterfaceSdk2Callout />

<Tabs>
<Tab title="Instruction">
Expand Down Expand Up @@ -165,6 +168,11 @@

</Accordion>

</Tab>
<Tab title="SDK 2.0 (token-interface)">

<SendTokenInterfaceInstructionCode />

</Tab>
<Tab title="Action">

Expand Down
2 changes: 2 additions & 0 deletions light-token/payments/batch-payments.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
import AgentSkillPayments from "/snippets/setup/agent-skill-payments.mdx";
import PaymentsAiPrompt from "/snippets/ai-prompts/toolkits/payments.mdx";
import PaymentsSetupHelper from "/snippets/setup/payments-setup-helper.mdx";
import TokenInterfaceSdk2Callout from "/snippets/light-token-guides/token-interface-sdk2-callout.mdx";
import BatchSendCode from "/snippets/code-snippets/payments/send/batch-send.mdx";
import SplBatchSend from "/snippets/code-snippets/payments/spl/batch-send.mdx";

---

A Solana transaction can contain one or more instructions that are executed sequentially and atomically by the network.

Check warning on line 19 in light-token/payments/batch-payments.mdx

View check run for this annotation

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

light-token/payments/batch-payments.mdx#L19

Did you really mean 'Solana'?
This way, you can pack multiple transfers into a single transaction instead of sending e.g. three separate transactions.
You send one transaction with three transfer instructions. Use just like with SPL token:

Expand Down Expand Up @@ -76,6 +77,7 @@
so the same
loop handles the rare multi-transaction case automatically.
</Info>
<TokenInterfaceSdk2Callout />

<BatchSendCode />

Expand Down
2 changes: 2 additions & 0 deletions light-token/payments/payment-with-memo.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Payment with Memo"
sidebarTitle: "Payment with Memo"
description: "Attach invoice IDs, payment references, or notes to Light Token transfers using Solana's memo program."

Check warning on line 4 in light-token/payments/payment-with-memo.mdx

View check run for this annotation

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

light-token/payments/payment-with-memo.mdx#L4

Did you really mean 'Solana's'?
keywords: ["memo payment solana", "invoice reconciliation solana", "payment reference light token", "memo instruction"]
---

Expand All @@ -10,12 +10,13 @@
import AgentSkillPayments from "/snippets/setup/agent-skill-payments.mdx";
import PaymentsAiPrompt from "/snippets/ai-prompts/toolkits/payments.mdx";
import PaymentsSetupHelper from "/snippets/setup/payments-setup-helper.mdx";
import TokenInterfaceSdk2Callout from "/snippets/light-token-guides/token-interface-sdk2-callout.mdx";
import MemoCode from "/snippets/code-snippets/payments/send/payment-with-memo.mdx";
import SplMemo from "/snippets/code-snippets/payments/spl/payment-with-memo.mdx";

---

Solana's memo program lets you attach invoice numbers, order IDs, or custom references

Check warning on line 19 in light-token/payments/payment-with-memo.mdx

View check run for this annotation

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

light-token/payments/payment-with-memo.mdx#L19

Did you really mean 'Solana's'?
to any payment. These memos are permanently recorded on-chain and visible in transaction
logs, making it easy to match payments to your internal systems.
Use just like with SPL token:
Expand Down Expand Up @@ -80,6 +81,7 @@
so the same
loop handles the rare multi-transaction case automatically.
</Info>
<TokenInterfaceSdk2Callout />

<MemoCode />

Expand Down
12 changes: 12 additions & 0 deletions light-token/payments/wrap-unwrap.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
---
title: "Wrap and Unwrap"
sidebarTitle: "Wrap and Unwrap"
description: "Move tokens between SPL / Token 2022 and Light Token accounts. Use wrap/unwrap to interoperate with applications that only support SPL or Token 2022."

Check warning on line 4 in light-token/payments/wrap-unwrap.mdx

View check run for this annotation

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

light-token/payments/wrap-unwrap.mdx#L4

Did you really mean 'interoperate'?
keywords: ["wrap tokens solana", "unwrap tokens solana", "spl to light token", "cex onramp solana", "token interoperability"]
---

import RegisterSplMint from "/snippets/setup/register-spl-mint.mdx";
import FullSetup from "/snippets/setup/full-setup.mdx";
import WrapTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/wrap/token-interface-instruction.mdx";
import UnwrapTokenInterfaceInstructionCode from "/snippets/code-snippets/light-token/unwrap/token-interface-instruction.mdx";
import SupportFooter from "/snippets/support-footer.mdx";
import AgentSkillPayments from "/snippets/setup/agent-skill-payments.mdx";
import PaymentsAiPrompt from "/snippets/ai-prompts/toolkits/payments.mdx";
Expand Down Expand Up @@ -64,6 +66,11 @@
);
```

</Tab>
<Tab title="SDK 2.0 (token-interface)">

<WrapTokenInterfaceInstructionCode />

</Tab>
<Tab title="Action">

Expand Down Expand Up @@ -118,6 +125,11 @@
}
```

</Tab>
<Tab title="SDK 2.0 (token-interface)">

<UnwrapTokenInterfaceInstructionCode />

</Tab>
<Tab title="Action">

Expand Down
Loading
Loading