本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。
如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。
Token-2022 Program ID 地址: TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
接下來的指令需要附上一個 --program-id
flag,後面加入 token-2022 program Id的地址,我就不再一一附上。
這邊預設各位讀者已閱讀前幾篇,並在 devnet 上已有 user account。
// 新增一個帳戶當作mint account
solana-keygen new -o mint.json
用Token-2022建立一個新的Mint Account,Extension的部分我開啟了
spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--enable-metadata \
--enable-close \
--transfer-fee 200 5000000000 \
mint.json
使用方法讀者可以去參考官方extension的文檔
spl-token create-account mint.json --owner user.json
spl-token mint mint.json 10000
讀者可以點進去觀察 spl token 跟 token-2022 metadata 豐富度有很明顯的差別,在Solana Explorere上也可以看到標示出兩者是使用不同 Program 建立的。
下圖是一個transfer fee 2%,上限5 token轉移 10000 個代幣的交易紀錄,中間被扣除的 5 個 token 就是因為有設定 transfer fee extension 被扣掉的
下面的 json 檔案就是我要設定的metadata。要把這個檔案跟想用來當 token 標示的圖片檔放到一個可以公開儲存的空間,這邊我用的是 web3 storage,不需付費。需注意 json 檔與圖檔的連結需是一點開就可直接存取檔案的。
接下來用下面的指令初始化 metadata
spl-token initialize-metadata mint.json 'TYC' 'TYCC' \
https://bafybeihgavlj5qg2lf2glcaujz2435cmwnvhcwpdjuvin5vehzc3uy7o6i.ipfs.w3s.link/metadata.json
等個半分鐘應該就可以看到新增上去的資料: TYC TOKEN
需注意的是 Solscan & Solana Exporer 似乎並沒有很完美的與 Token-2022 兼容,圖檔跟一些詳細的資訊會看不到,這邊可以用 Solana FM 查看。
Solana FM上的 Extension 分頁可以看到我用到的 4 個新功能。
再次提醒以上的指令都須附上 --program-id
flag。