Install
openclaw skills install solana-payments-wallet-devFor stablecoin payment flows and wallet integrations on Solana 200x cheaper token accounts. Receive, send, balance, history, and client-side signing with Pri...
openclaw skills install solana-payments-wallet-devBuild payment flows and wallet integrations using light-token on Solana. The light-token API matches SPL-token and extends it to include the light token program.
| Creation cost | SPL | light-token |
|---|---|---|
| Token Account | ~2,000,000 lamports | ~11,000 lamports |
AskUserQuestion to resolve blind spotsAskUserQuestion for anything unclear — never guess or assumeTask tool with subagents for parallel researchSkill toolTodoWriteRead, Glob, Grep, and DeepWiki MCP access, loading skills/ask-mcp. Scope reads to skill references, example repos, and docs.| Operation | SPL | light-token (action / instruction) |
|---|---|---|
| Receive | getOrCreateAssociatedTokenAccount() | loadAta() / createLoadAtaInstructions() |
| Transfer | createTransferInstruction() | transferInterface() / createTransferInterfaceInstructions() |
| Get balance | getAccount() | getAtaInterface() |
| Tx history | getSignaturesForAddress() | rpc.getSignaturesForOwnerInterface() |
| Wrap from SPL | N/A | wrap() / createWrapInstruction() |
| Unwrap to SPL | N/A | unwrap() / createUnwrapInstructions() |
| Register SPL mint | N/A | createSplInterface() / LightTokenProgram.createSplInterface() |
| Create mint | createMint() | createMintInterface() |
Plural functions (createTransferInterfaceInstructions, createUnwrapInstructions) return TransactionInstruction[][] — each inner array is one transaction. They handle loading cold accounts automatically.
| Task | Reference |
|---|---|
| Build payment flows (receive, send, balance, history, wrap/unwrap) | payments.md |
| Build wallet UI (display tokens, transfer, wrap/unwrap) | wallets.md |
| Sign with Wallet Adapter or Mobile Wallet Adapter | sign-with-adapter.md |
| Sign with Privy (embedded wallet provider) | sign-with-privy.md |
| Prevent duplicate actions (double-spend prevention) | nullifiers.md |
npm install @lightprotocol/compressed-token@beta @lightprotocol/stateless.js@beta @solana/web3.js @solana/spl-token
import { createRpc } from "@lightprotocol/stateless.js";
import {
createLoadAtaInstructions,
loadAta,
createTransferInterfaceInstructions,
transferInterface,
createUnwrapInstructions,
unwrap,
getAssociatedTokenAddressInterface,
getAtaInterface,
wrap,
} from "@lightprotocol/compressed-token/unified";
const rpc = createRpc(RPC_ENDPOINT);
| Package | Link |
|---|---|
@lightprotocol/stateless.js | API docs |
@lightprotocol/compressed-token | API docs |
@lightprotocol/nullifier-program | npm |
The Privy signing examples transmit secrets to an external API — review sign-with-privy.md before running.
HELIUS_RPC_URL is required for all examples. The Privy signing flow additionally requires PRIVY_APP_ID, PRIVY_APP_SECRET, TREASURY_WALLET_ID, and TREASURY_AUTHORIZATION_KEY — get these at privy.io. Load secrets from a secrets manager, not agent-global environment.PRIVY_APP_SECRET and TREASURY_AUTHORIZATION_KEY are sent to Privy's signing API. Verify these only reach Privy's official endpoints. See sign-with-privy.md.Read, Glob, Grep scoped to skill references, example repos, and docs.npx skills add Lightprotocol/skills from Lightprotocol/skills.