Solana Token-2022 扩展:转账费、Hook 与账户状态
Token-2022 的 mint 和代币账户扩展如何改变手续费、额外账户、冻结、memo 及钱包兼容性。
本指南内容Token-2022 为 mint 和账户添加状态
简短摘要
Token-2022 使用 mint 和代币账户,但可选扩展可能改变转账结果。发送前请核对 mint 地址、所属程序、已启用扩展、权限以及接收账户状态;ticker 本身不能说明这些规则。
Token-2022 为 mint 和账户添加状态
Token Extensions Program(通常称 Token-2022)通过扩展数据和指令增加可选行为。有些扩展保存在 mint 上,影响该代币的转账;有些则属于单个代币账户。不同 Token-2022 代币的行为并不相同:某些扩展不能同时使用,而且大多数不能在账户初始化后再添加。请查看链上的实际扩展列表。Solana
mint 地址识别资产,ticker 只是标签
转账费会减少接收方可用余额
mint 上的 TransferFeeConfig 扩展设置费率和最高费用。假设转出总额为 10.00、费率为 1.5%、上限为 0.20,费用是 0.15:接收方可用余额增加 9.85,另有 0.15 暂存在目标代币账户。计算时要使用总额、小数位和当前生效配置。Solana
Transfer Hook 会增加程序逻辑和额外账户
新账户可能以冻结状态创建
Memo 要求配置在接收账户上
MemoTransfer 配置在接收代币账户上,而不是 mint 上。启用后,同一交易中的 memo 指令必须紧挨在入账转账指令之前。该账户向外转账不会仅因这一扩展而要求 memo。缺少 memo 或顺序错误,程序都会拒绝转账。请按照接收方说明操作并核对地址。Solana
钱包兼容性取决于具体扩展
签名前检查完整转账
先核对完整 mint 地址和所属程序。读取 mint 扩展及权限,再检查实际接收账户状态。有手续费就计算净额;有 hook 就加入所需账户,有 memo 要求就按顺序附上,并模拟完整交易。找到地址并不保证转账成功。这说明的是交易机制,不是投资结果。
[Solana PDA 与代币账户](/zh-CN/learn/solana-program-derived-addresses-seeds-bump-off-curve-explained) · [Solana 交易手续费](/zh-CN/learn/solana-transaction-fees-base-priority-compute-units-explained)
常见问题
Q1所有 Token-2022 代币都会收转账费吗?
不会。转账费是可选的 mint 扩展,请查看该 mint 的实际配置。
Q2钱包能接收带 hook 的代币但不能发送吗?
可以。接收不会运行 hook;发送需要解析 hook 所需账户。
Q3ticker 相同就代表同一种代币吗?
不代表。请核对完整 mint 地址和所属程序;名称和符号并非唯一。
资料来源与延伸阅读
报告问题
我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈
快速检查
读完指南后,用 3 道题检查一下
问题 01
Token-2022 扣留的转账费记录在哪里?
选择答案即可查看解释