更新於 2024/08/10閱讀時間約 3 分鐘

SPL Token & Token Ext - Part 4: 實際使用代幣擴充標準

前言

本篇要用 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

// 新增一個帳戶當作mint account
solana-keygen new -o mint.json

用Token-2022建立一個新的Mint Account,Extension的部分我開啟了

  • metadata 與 metadata pointer
  • transfer fee
  • close authority
spl-token create-token \
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb \
--enable-metadata \
--enable-close \
--transfer-fee 200 5000000000 \
mint.json

使用方法讀者可以去參考官方extension的文檔

建立 User 帳戶的 ATA

spl-token create-account mint.json --owner user.json

Mint Tokens

spl-token mint mint.json 10000

讀者可以點進去觀察 spl token 跟 token-2022 metadata 豐富度有很明顯的差別,在Solana Explorere上也可以看到標示出兩者是使用不同 Program 建立的。

Transfer結果

下圖是一個transfer fee 2%,上限5 token轉移 10000 個代幣的交易紀錄,中間被扣除的 5 個 token 就是因為有設定 transfer fee extension 被扣掉的

添加Metadata

下面的 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。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.