作为一名Web开发者,我习惯了在数据库里处理一切——用户余额、积分、虚拟货币,统统是后端表里的几行记录。这周我第一次在Solana上创建了真正的链上代币,说实话,这彻底改变了我对"数字资产"的理解。
没有数据库表,没有后端API。铸币、转账、元数据、验证——全部由区块链自己处理。这篇文章记录我用Token-2022在Solana devnet上创建首枚代币的全过程:添加元数据、铸造供应量、钱包间转账。
准备工作清单
动手之前需要备齐四样东西:
1. Solana CLI 已安装
2. SPL Token CLI 已安装
3. 一个有devnet资金的测试钱包
4. Solana 配置指向devnet
配置devnet环境:
solana config set --url devnet
领取免费测试币:
solana airdrop 2
创建代币铸币账户
我没有用老旧的SPL Token Program,而是选择了Token-2022 Program。新版本支持一系列扩展功能:链上元数据、转账手续费、生息代币、不可转让(灵魂绑定)代币。
铸币命令:
spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--enable-metadata \
--decimals 6
运行后Solana生成了一个代币铸币地址。此时代币技术上已存在于链上,但还没有任何身份标识——本质上只是一串随机字符。
给代币注入身份
这是整个过程中最让我惊喜的环节。Token-2022允许元数据直接存储在链上,不再完全依赖外部程序。
初始化元数据:
spl-token initialize-metadata \
\
"" \
"" \
""
占位符对应:铸币地址、代币名称(如MyCoin)、代币符号(如MYC)、公开JSON元数据链接。
完成后,我的代币终于有了名字、符号和附属元数据。它开始像一个真正的数字资产,而非原始区块链数据。
代币账户:Solana的特殊设计
有个概念最初让我困惑:代币账户(token accounts)。我误以为钱包可以直接持有代币,事实并非如此。
Solana的架构分两层:铸币(mint)定义代币本身,代币账户持有该代币的具体余额。因此接收代币前,必须先创建代币账户:
spl-token create-account
这会生成一个与我的钱包和代币铸币绑定的关联代币账户。
铸造首批供应量
最激动人心的时刻。向我的代币账户铸造1000枚代币:
spl-token mint 1000
检查余额:
spl-token balance
终端显示"1000"的那一刻,说实话,有种奇怪的成就感。
创建第二个钱包测试转账
为了完整测试转账流程,我生成了第二个钱包:
solana-keygen new \
--outfile ~/second-wallet.json
同样为其创建代币账户、执行转账、验证余额变化。整个流程跑通后,我对Solana账户模型的理解彻底刷新了。
这次体验的核心收获:Web2的"余额"是数据库里的一个数字,Web3的"余额"是链上多方验证的密码学事实。前者依赖服务器信任,后者依赖数学信任。作为习惯了CRUD操作的开发者,这种范式转换比任何教程都来得直接。
热门跟贴