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

SPL Token & Token Ext - Part 2: 體驗用SPL鑄幣

上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。

Token 2022在兼顧安全性的同時新增了非常多實用且方便的功能如支援鏈上metadata,transfer hook,transfer fees等等。

這些差異的比較與實作將在接下來幾篇中提到。為了更深刻理解演化的過程並感受差異,本篇將先帶領讀者用舊版的 token program 搭配 solana cli & spl-token cli 在Solana devnet上鑄造一個新的代幣。

下載工具

終端機執行:

sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

視輸出提示決定是否需要更新 PATH 環境變數。(官方doc)

// 進入專案資料夾​
mkdir ~/new-token
cd ~/new-token

準備帳戶

建議讀者先對Solana Account Model有初步了解在進行後續步驟 - SPL Token & Token Extension - Part 1: 簡介Account Model

1個Mint Account, 2個 User Account(one for showcasing transfer token)

建立User Account

solana-keygen new -o user1.json	// this user will be granted mint authority
solana-keygen new -o user2.json

Solana CLI 設定

我們要將user1設定為接下來用於簽章的帳戶,同時先空投SOL用於後續的交易手續費。

// 設定預設使用的帳戶
solana config set --keypair user1.json
// 空投 5 SOL
solana airdrop 5 user1.json

建立Mint Account

為了方便表示,我將用 $XD_TOKEN 代表 new token address。

spl-token create-token --mint-authority user1.json

// output
Creating account $XD_TOKEN

這樣新的token就建立成功了,

這是在solana explore上面我的Token目前的資訊:

也可以使用指令查看帳戶資訊:

solana account $XD_TOKEN

// output
Public Key: ...
Balance: ...
Owner: ...
Executable: false
Rent Epoch: ...
Length: ... ..

Mint Some Tokens

大家是否還記得每一個token類別都需要一個專門的帳戶來儲存他,我們需要在User1帳戶底下建立一個Asociated Token Account (ATA),我會用$ATA_ACC1來代表。

spl-token create-account $XD_TOKEN --owner $USER1
// output
Creating account $ATA_ACC1
$ spl-token mint $XD_TOKEN 10 $ATA_ACC1 --mint-authority user1.json

User1帳戶:

Token Mint Account:

以上均可看到supply變成1000了。

交易Token

spl-token transfer $XD_TOKEN 100 user2.json --owner user1.json

如果直接跑這一行會發現跳出錯誤,這是因為我們也需要為user2建立一個ATA。除了這個方法以外我們也可以在指令末端加入 --fund-recipient,這將由sender出手續費幫接收者建立一個ATA。


到這邊應該都很簡單,但是各位是否有發現我的Token名稱還是Unkown Token,也沒有好看的圖片,其他metadata也全無。這是因為在token-2022前要先在外部儲存空間中將metadata上傳,並利用如 metaplex 等第三方工具讓Token指向這些資料連結。

開發者需要額外去熟悉metaplex js庫的語法,搞定外部儲存空間等等麻煩的操作。token-2022讓metadata上鍊不僅將流程簡化,也避免過度依賴第三方系統造成速度、安全、穩定性等影響。


p.s. 網路上有一些廣告主打用他們的no-code工具來mint token,一個收你0.1~0.5 SOL :)根本搶錢

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