Solana Token Extensions 解析

Web2 需要中间件来收取转账费用。Solana 则使用一个简单的标志(flag)。

我在六天内构建了四个代币。我学习了 Solana 如何处理身份、费用和限制。以下是我的发现。

基础铸造 (The Basic Mint) 一个基础代币仅仅是一个地址。它没有名称或符号。 你无法直接将代币接收到钱包中。每种不同的代币类型都需要一个特定的代币账户 (token account)。 把 mint 想象成工厂,而代币账户就是你的桶。

通过元数据实现身份识别 (Identity with Metadata) 没有元数据的代币只是一串随机文本。 原有的 Token Program 需要单独的账户来存储元数据。 Token Extensions Program (Token-2022) 改变了这一点。它直接将名称、符号和 URI 存储在 mint 上。 一个 mint 即可处理所有事务,无需额外的账户。

转账费用 (Transfer Fees) 在 Web2 中收取费用很难。你必须构建逻辑来防止人们绕过它。 在 Solana 上,你使用 transfer-fee-basis-points 标志。 我在一个代币上设置了 2% 的费用。当我发送 100 个代币时,接收者只收到了 98 个。 协议自动扣留了那 2 个代币。 费用逻辑存在于 mint 中。每一次转账都会遵循该规则,无需额外的代码。

Soulbound Tokens 有些代币不应该被转移。可以将它们用于证书或身份徽章。 Token-2022 程序具有不可转让 (non-transferable) 扩展功能。 我尝试将一个不可转让的代币发送到另一个钱包,区块链立即拒绝了该操作。 协议强制执行了该规则。任何中间件或管理员覆盖都无法改变它。 持有者可以销毁 (burn) 代币,但不能将其发送给他人。

我的心得 (My Takeaway) 协议在无需了解你意图的情况下强制执行规则。它不在乎你为什么要发送交易,它只检查交易是否符合 mint 规则。

我接下来的目标是从构建代币转向构建程序 (programs)。

来源: https://dev.to/mubaraqabba/transfer-fees-metadata-and-soulbound-tokens-a-tour-of-solana-token-extensions-29b6

可选学习社区: https://t.me/GyaanSetuAi