你钱包里并排的两个代币,可能属于不同的程序。一个使用原版 SPL Token 程序;另一个使用 Token-2022,我们今年关闭的空账户大多来自这个较新的程序。大多数时候你察觉不到区别。如果察觉到了,通常是因为某个扩展。
SPL Token 和 Token-2022 有什么区别?
两者都是 Solana 代币程序。SPL Token(TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA)是原版程序。Token-2022(TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb)也称为 Token Extensions,逐字节支持相同的指令,并增加可选扩展,例如转账费用、内置元数据和永久委托人。一个代币的铸币账户只属于两者之一。
两个程序都来自 Solana Program Library,因此两者上的代币常被称为 SPL 代币;本文中的 SPL Token 指原版程序。
某个代币所有持有人的代币账户,都与该代币的铸币账户属于同一个程序。Token-2022 是原版程序的严格超集,所以基本操作方式相同:在两者中你都可以持有、发送、销毁代币,也可以关闭账户。不同之处在于代币创建者可以开启哪些功能。
如何判断代币使用哪个程序?
把代币的铸币地址粘贴到 Solscan 等 Solana 区块浏览器中,查看其所有者程序。Token-2022 铸币账户会显示 Token-2022 程序,能解码扩展的浏览器还会列出它使用的扩展;原版代币则显示 Token Program。如果没有显示任何扩展,请先用支持 Token-2022 的解码器检查,再下结论认为没有扩展。你钱包中的代币账户与铸币账户属于同一个程序,因此在浏览器中查看你自己的账户,也能得到相同的答案。
扩展会为持有人带来哪些变化?
扩展是创建者在创建代币时选择的可选功能。有些只是添加信息,比如元数据;另一些则会改变你持有的代币可能遇到的情况:
| 扩展 | 对持有人意味着什么 |
|---|---|
| Transfer fees | 每次转账都会收取一笔费用,并预扣在收款人的账户中 |
| Permanent delegate | 某一个地址可以从任何持有人那里转移或销毁任意数量的该代币,且持有人无法撤销 |
| Default account state | 新代币账户可能一开始就处于冻结状态,直到发行方解冻 |
| Non-transferable | 代币不能发送给其他人,但你仍可以销毁代币并关闭账户 |
| Pausable | 发行方可以暂停所有转账、铸造和销毁 |
| Transfer hook | 创建者选定的程序会在每次转账时运行,并可阻止不符合其规则的转账 |
| Metadata | 代币的名称、符号和图片链接可以直接存储在铸币账户中 |
由于这些设置由发行方控制,请在购买 Token-2022 代币之前(而不是之后)检查它的扩展。我们的永久委托人指南介绍了如何识别其中权限最大的一种。
Token-2022 账户持有的租金更多吗?
多一点。关联代币账户程序总会为 Token-2022 账户添加 Immutable Owner 扩展,使标准账户为 170 字节,而不是 165 字节。按 2026年10月7日核查的租金费率,这相当于 0.00151384 SOL,而不是 0.00148844 SOL。在 Solana 原有租金设置下开设的账户,分别持有 0.00207408 SOL 和 0.00203928 SOL。存储更多数据的扩展会让押金更高;我们的 Token-2022 扩展指南说明了如何读出实际金额。
Token-2022 现在有多普遍?
非常普遍。在我们自己的196 百万个已关闭代币账户数据中,2025年10月及之前的每个月,Token-2022 最多只占我们所关闭账户的 3.3%,通常低于 2%。自 2025年12月起,它每个月都占多数,并在 2026年7月达到 80.3% 的峰值;在 2026年截至10月6日关闭的全部账户中,它占 71.9%。如果你今年在 Solana 上交易过,你的空账户大多可能都是 Token-2022 账户。
一次清理两种账户
Sol Incinerator 会在同一次清理中关闭两个程序的空账户,所以你不需要知道某个代币用的是哪个程序。Fun Mode 还会从你保留的受支持账户中提取多余押金,撤销授权工具则会清除你在任一程序上授予的授权。仍持有预扣转账费用的空 Token-2022 账户,必须先清除这些费用才能关闭;任何人都可以用 Token-2022 无需许可的归集指令把这些费用转移到铸币账户,之后该账户即可关闭。其他情况下,预览会在你批准前显示扣除费用后能拿回多少。
