【问题标题】:Please tell me about the transfer of tokens created in Solana请告诉我有关在 Solana 中创建的代币的转移
【发布时间】:2022-10-13 20:50:00
【问题描述】:
有两个用户。
用户 A 和用户 B
在 Solana 上创建的代币称为“TokenX”。
UserA 有一些 SOL。
UserS通过空投获得100 TokenS。
UserB 没有 SOL。
UserB 没有 TokenX。
UserA 和 UserB 拥有 [Solana SPL 代币钱包]。
用户试图给用户 50 TokeneX。
但是,用户 B 是非关联并且无法接收 TokenX。
当然,UserB 不能将 TokenX 添加到钱包中。
UserA 和 UserB 很困惑,因为他们不知道为什么。
这是不可避免的吗?
有解决办法吗?
使用以太坊代币,即使在上述情况下,我也可以毫无问题地进行转账。
如果我的理解有任何错误,请指出。
【问题讨论】:
标签:
token
blockchain
solana
【解决方案1】:
在 Solana 中,每个钱包可以在一个代币中拥有多个账户,但在以太坊中是不可能的,Solana 中的一个账户就像一个文件,一个代币就像一个文件夹,如果任何钱包想要有任何空间来存储它的数据,它应该租用令牌文件夹中的文件,该文件是属于该钱包的关联帐户
【解决方案2】:
我认为non-associated 的意思是 UserB 没有 TokenX 令牌帐户。即,UserB 没有 Solana 所说的用于 tokenX 的 associated token account(也称为 ATA)。
在您的场景中,UserX 尝试向 UserB 发送一些 TokenX,UserB 没有 TokenX ATA,您收到错误消息说 UserB 没有 TokenX ATA。
如果我的理解有任何错误,请指出。
当然——每个用户通常只有一个钱包。代币账户(称为“代币账户”而不是“代币钱包”)是在用户钱包内创建的。
UserA 绝对可以发送 UserB 令牌 X,UserA 将支付少量 Sol 在 UserB 的钱包中创建一个 TokenX 代币账户。如果您是程序员,请参阅 web3.js 中的 getOrCreateAssociatedTokenAccount()。
UserB 拥有 TokenS 的代币账户后,用户 A 可以向他们发送一些 TokeneX 代币。