关于 light-token-client
面向使用 TypeScript 或 Rust 开发 Light Token 客户端的开发者,提供客户端操作手册。内容涵盖代币生命周期操作与 Token 2022 扩展,并包含 localnet 和 devnet 示例。
主要功能
- 01TypeScript 与 Rust 客户端示例
- 02铸币与代币账户操作
- 03转账、授权与撤销
- 04封装、解封、销毁与加载
- 05冻结、解冻与关闭操作
- 06Token 2022 扩展参考
适用场景
- 01创建 Light 铸币和代币账户
- 02转账或管理委托权限
- 03将 SPL 代币封装为 Light 并解封
- 04使用 Token 2022 扩展
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lightprotocol/ skills --skill light-token-client安装后在 Claude Code 中输入/light-token-client确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/approve.mdburn-checked.mdburn.mdclose-token-account.mdcreate-associated-token-account.mdcreate-interface-pda.mdcreate-mint.mdcreate-token-account.mddelegate-transfer.mdfreeze.mdload-associated-token-account.mdmint-to.mdrevoke.mdspl-mint-wrap-transfer.mdspl-to-light.mdthaw.mdtransfer-checked.mdtransfer-interface.mdunwrap.mdreferences/extensions/close-mint.mdconfidential-transfer.mddefault-account-state.mdinterest-bearing-tokens.mdmetadata-and-metadata-pointer.mdoverview.mdpausable-mint.mdpermanent-delegate.mdtoken-groups-and-members.mdtransfer-fees.mdtransfer-hook.md详细介绍
Light Token 客户端 SDK
@lightprotocol/compressed-token(TypeScript)和 light_token_client(Rust)的客户端实用指南。涵盖所有代币操作:创建铸币账户、关联代币账户、转账、授权、撤销授权、销毁、包装、解包、冻结、解冻、关闭和加载。
| 创建成本 | SPL | Light Token |
|---|---|---|
| 代币账户 | ~2,000,000 lamports | ~11,000 lamports |
前提条件
示例展示了 localnet 和 devnet 配置。对于 devnet,请设置:
API_KEY环境变量 — Helius 或 Triton RPC API 密钥。在生产环境中,请从密钥管理器加载。~/.config/solana/id.json— 本地 Solana 密钥对(solana-keygen new)。在生产环境中,请从密钥管理器加载。
工作流
- 明确意图
- 如果尚未启用,建议使用计划模式
- 使用
AskUserQuestion消除认知盲区 - 执行前必须解决所有问题
- 确定参考资料和技能
- 将任务与下方的领域参考资料匹配
- 查找相关文档和示例
- 编写计划文件(YAML 任务格式)
- 对任何不明确之处使用
AskUserQuestion— 切勿猜测或假设 - 确定阻碍因素:权限、依赖项、未知事项
- 执行开始前必须完成计划
- 对任何不明确之处使用
- 执行
- 使用
Task工具和子 Agent 并行研究 - 子 Agent 通过
Skill工具加载技能 - 使用
TodoWrite跟踪进度
- 使用
- 遇到阻碍时:请求启动只读子 Agent,使用
Read、Glob、Grep和 DeepWiki MCP 访问权限,并加载skills/ask-mcp。将读取范围限定在技能参考资料、示例仓库和文档。
领域参考
| 任务 | 参考 |
|---|---|
| 创建 mint | create-mint.md |
| 创建 SPL 接口 PDA | create-interface-pda.md |
| 创建关联代币账户 | create-associated-token-account.md |
| 创建代币账户 | create-token-account.md |
| 铸造代币 | mint-to.md |
| 转移代币 | transfer-interface.md |
| 检查后转移 | transfer-checked.md |
| 授权委托人 | approve.md |
| 撤销委托 | revoke.md |
| 委托转移 | delegate-transfer.md |
| 将 SPL 包装为 Light | wrap.md |
| 将 Light 解包为 SPL | unwrap.md |
| 加载关联代币账户 | load-associated-token-account.md |
| 销毁代币 | burn.md |
| 检查后销毁 | burn-checked.md |
| 冻结代币账户 | freeze.md |
| 解冻代币账户 | thaw.md |
| 关闭代币账户 | close-token-account.md |
| 铸造 SPL、包装并转移 | spl-mint-wrap-transfer.md |
| SPL 与 Light 对比 | spl-to-light.md |
| Token 2022 扩展概览 | extensions/overview.md |
| 元数据 + MetadataPointer | extensions/metadata-and-metadata-pointer.md |
| 转移费用 | extensions/transfer-fees.md |
| 转移钩子 | extensions/transfer-hook.md |
| 计息代币 | extensions/interest-bearing-tokens.md |
| 默认账户状态 | extensions/default-account-state.md |
| 永久委托人 | extensions/permanent-delegate.md |
| Mint 关闭权限 | extensions/close-mint.md |
| 代币组和成员 | extensions/token-groups-and-members.md |
| 可暂停 mint | extensions/pausable-mint.md |
| 机密转移 | extensions/confidential-transfer.md |
操作概览
| 操作 | TypeScript | Rust | 文档 |
|---|---|---|---|
| 创建 Light mint | createMintInterface | CreateMint | create-mint |
| 创建带有 interface PDA 的 SPL mint | createMintInterface + TOKEN_PROGRAM_ID | — | create-mint |
| 创建带有 interface PDA 的 T22 mint | createMintInterface + TOKEN_2022_PROGRAM_ID | — | create-mint |
| 为现有 mint 添加 interface PDA | createSplInterface | — | create-mint |
| 创建关联代币账户 | createAtaInterface | CreateAta | create-ata |
| 创建代币账户 | — | CreateTokenAccount | create-token-account |
| 铸造到 | mintToInterface | MintTo | mint-to |
| 转账 | transferInterface | TransferInterface | transfer-interface |
| 校验后转账 | — | TransferChecked | transfer-checked |
| 授权 | approveInterface | Approve | approve-revoke |
| 撤销 | revokeInterface | Revoke | approve-revoke |
| 委托转账 | transferInterface + { owner } | — | approve-revoke |
| 销毁 | — | Burn | burn |
| 校验后销毁 | — | BurnChecked | burn |
| 将 SPL 包装为 Light | wrap | Wrap | wrap-unwrap |
| 将 Light 解包为 SPL | unwrap | Unwrap | wrap-unwrap |
| 加载关联代币账户(从冷账户到热账户) | loadAta | — | load-ata |
| 冻结 | — | Freeze | freeze-thaw |
| 解冻 | — | Thaw | freeze-thaw |
| 关闭 | — | Close | close-token-account |
外部参考
| 资源 | 链接 |
|---|---|
| 文档操作指南 | zkcompression.com/light-token/cookbook |
| TypeScript 示例 | examples-light-token/typescript-client |
| Rust 示例 | examples-light-token/rust-client |
@lightprotocol/stateless.js | API 文档 |
@lightprotocol/compressed-token | API 文档 |
light-client | docs.rs |
light-token-client | docs.rs |
light-token | docs.rs |
安全
此技能不会拉取、存储或传输外部机密。它仅提供代码模式、文档参考和开发指导。
- 声明的依赖项。 Devnet 和 mainnet 示例需要
API_KEY(Helius 或 Triton RPC 密钥),并会读取~/.config/solana/id.json中的付款方密钥对。localnet 上两者均不需要。在生产环境中,请从机密管理器加载这两项。 - 用户提供的配置。 RPC 端点、钱包密钥对和身份验证令牌都在用户的应用程序代码中配置。此技能演示相关模式,不会存储或传输机密。
- 安装来源。
npx skills add Lightprotocol/skills会从公开的 GitHub 仓库(Lightprotocol/skills)安装。运行前请验证来源。 - 子 Agent 的范围。 遇到问题时,此技能会请求生成一个只读子 Agent,并将其权限限制为
Read、Glob和Grep,且仅限于技能参考资料、示例仓库和文档。 - 经过审计的协议。 Light Protocol 智能合约已由独立机构审计。审计报告发布在 github.com/Lightprotocol/light-protocol/tree/main/audits。
评论
支持 Markdown