本篇文章更新時間:2022/03/26
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
區塊鏈最為人知道的就是其附加產物:加密貨幣。而參與這個所謂「世界帳本」的技術(區塊鏈)難度已經不是很高了!這也是區塊鏈上的開發人員一直努力在推行的事:把難的事情簡單化
這篇筆記算是呼應前幾天朋友問了一個問題「你有發過幣嗎?」,於是就挑了一個我欣賞的公鏈 Solana 來發行。
發幣的方式很多,從打造自己的區塊鏈生態開始,到透過智能合約來鑄造都可以!前者難度最高,後者會相依在「公鏈」上,簡單許多。不過一開始發幣要思考的問題不只是單純「發」,而是「想要打造怎樣的一個生態」,免的只是發出來後,沒有其他的運用計畫,無法放大這個幣的價值,俗稱「空氣幣」。
進入正題~
內容目錄
技能需求
- 會使用指令工具(基本是 Git)
- 了解開發環境的建立(本篇我使用 macOS 作業系統)
- 對區塊鏈有一定程度的理解(知道公鏈、知道錢包、知道燃料、知道官方文件..)
設定 Solana 本機 Client
本篇是架構在 Solana 公鏈(區塊鏈)上進行發幣的範例,這邊要先說明,不是在自己電腦裡創造區塊鏈,而是去使用眾人合力建置出來的那個版本,也就是「公鏈」。它是唯一的存在,不需要自己也複製一份,而是去「參與」他!
所以可以把 Solana 公鏈想像成一個 Server,那本機要跟這個 Server 溝通,就是需要安裝 Solana 指令工具 。
基本上就一行指令(當前版本 v1.9.13
)
sh -c "$(curl -sSfL https://release.solana.com/v1.9.13/install)"
照他提示把指令工具路徑配置上系統,安裝好後就要來開始配置這個 Client 的環境。
首先要建立錢包
錢包是一個「帳號」的概念,用來與區塊鏈帳本與帳號間產生互動,指令工具建立的錢包可以選擇「指令錢包」、「紙上錢包」或是導入「硬體錢包」,本篇因為是使用指令來互動,所以建立的就是指令錢包。
solana-keygen new --outfile ./mxp-cli-wallet.json
指令執行完產生的 mxp-cli-wallet.json
檔案裡包含錢包的私鑰,這檔案不可丟失!
Generating a new keypair
For added security, enter a BIP39 passphrase
NOTE! This passphrase improves security of the recovery seed phrase NOT the
keypair file itself, which is stored as insecure plain text
BIP39 Passphrase (empty for none):
Enter same passphrase again:
Wrote new keypair to ./mxp-cli-wallet.json
===========================================================================
pubkey: 2TSWP4dKBTqpDVmjh2WD8DYN1oPe6G6ZGqBnVxTntR61
===========================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
**** **** **** **** **** **** **** **** **** **** **** **** (這邊也是要記錄下來不要丟了的註記詞)
===========================================================================
由於預設的錢包位置路徑是在 ~/.config/solana/id.json
,所以為了方便後面指令不需要自己每次參數自帶路徑,可以使用下列指令把當前產生出來的私鑰設定為預設。
cat mxp-cli-wallet.json > ~/.config/solana/id.json
關於錢包的補充,錢包是在區塊鏈上的一個地址,這地址只要區塊鏈不消失,沒有忘記私鑰與註記詞,這錢包就不會遺失。市面上看到的錢包工具,只是圖形化了錢包的操作,實際上並不會因為刪了「錢包工具」就等於刪了「錢包」! Solana 上知名的錢包工具有 Phantom 、Solfare 與 偏開發狀態的 Sollet ,依照順序推薦使用。
切開發網路
由於切到主網路就是正式環境(預設),每一個操作都是要花真金白銀的燃料費才能使用,建議不熟悉的狀況下都是先切換到「開發網路」下進行。
solana config set --url https://api.devnet.solana.com
主網路 https://api.mainnet-beta.solana.com | 如果熟悉操作與確定要執行的目的後,就可以把網路切換成主網路然後照做一次就可以了~
給錢包添點燃料
開發網路下要先給這個錢包請求 $SOL 空投,當作接下來鏈上操作的燃料
燃料的意思其實就是手續費。區塊鏈中每一個交易操作都會有某個角色來替妳服務,而服務是有代價的,所以要準備好這個燃料用作往後發生交易時能給出的手續費。 Solana 上的燃料就是 $SOL 幣,沒有誇張的大量交易,大概一顆可以用超級久,手續費都很便宜~
solana airdrop 1
如果是主網路的話就是想辦法去買到然後轉入這錢包了,主網路沒有這麼棒的空投功能XD
上述指令的意思就是「空投 1 顆 $SOL 到錢包裡」。
準備發幣
有燃料後就可以建立一個 SPL Token ,指令如下
spl-token create-token
Creating token v4NHnDNKZFGuYHsxQ51iPdKMWw43NmXnFbgDTS8sebm (開發網路) / FV66ygXAXXs556MQrofx89y2WUGt4G1NWBXL9BZGi7kF (我在主網上發幣的地址)
查詢該地址中的 Token 供應量
spl-token supply v4NHnDNKZFGuYHsxQ51iPdKMWw43NmXnFbgDTS8sebm
用這個地址建立一個帳號
spl-token create-account v4NHnDNKZFGuYHsxQ51iPdKMWw43NmXnFbgDTS8sebm
Creating account 9VWgw5ZD5GNhaNCwwThgV81QwqPuP6Qfx7GjfKnoRkFR
針對這帳號的操作交易紀錄: 2CeMeUkFKdbAC6dXLj53mLRxtWLreiQHZJZ7rERN9GTh1Aknv4MBNEHq5MFRSZBBYwuSMXDUyyw1WuRWxNs3yw7m
鑄造 Mint 100 個 Token 到這個帳號
spl-token mint v4NHnDNKZFGuYHsxQ51iPdKMWw43NmXnFbgDTS8sebm 100
Minting 100 tokens
Token: v4NHnDNKZFGuYHsxQ51iPdKMWw43NmXnFbgDTS8sebm
Recipient: 9VWgw5ZD5GNhaNCwwThgV81QwqPuP6Qfx7GjfKnoRkFR
到這邊就完成了! 「什麼?這麼簡單嗎?」「對,沒錯XD」
給 Token 一個「幣名」(Symbol)吧
上述步驟操作完後是發了一些 Token(幣) 出來沒錯,但會讓人覺得怪怪的地方就是怎麼我的幣名叫做「v4NHnDNKZFGuYHsxQ51iPdKMWw43NmXnFbgDTS8sebm
」,不是啥 BTC
、ETH
...等簡單明瞭的符號?
這個操作目前在 Solana 上要透過一個 token-list 專案來做對應(去中心化版本的官方文件寫正在努力中)。如果發的幣要上架到開發網路 chainId
要寫 103 ,主網路的話是 101,參考資料 is there a way to add token info to the solana devnet like on the mainnet?]
要會的技能就是 Git 的操作。
先 fork 專案,然後改動 src/tokens/solana.tokenlist.json
檔案,添加一筆你發幣要上架的資訊。
隨後就是發一個 Pull Request 回去原專案,每小時會有自動部署的程序來判斷是否整併,整併上去後接下來就可以在 Solscan 上看到變化啦~
我在主網上發佈的「資男幣」 $ATGY
錢包工具上也會可以看到我發的 $ATGY 從原本 Token 編號變成指定的圖像與幣名。
上架去中心化交易所
常聽到的交易所大多都是「中心化交易所」(Centralisation Exchange, CEX),上架加密貨幣這件事通常要求都不簡單。不過如果是「去中心化交易所」(Decentralized Exchange, DEX)在 Solana 上就容易許多~
交易的前提是要先在 Serum DEX 中產生一個「交易對」,這件事可以透過 Bonfida 或 Raydium 的 List New Market 功能達成。
需要準備的是: 錢包裡要夠多 $SOL 燃料,當前鑄造(mint) ATGY/USDC
這個交易對花了我約 4 $SOL (換算美元約 360 USD)
鑄造完成會得到一個地址: 2TGTuf3v88SZxQPb8VDNQvwzRBo1qXZZZjk3CGCDWPwj
接著記好這個地址,到 Solana 上第一個去中心化交易所 Raydium 左上方有個 「+」點下去寫著「Add custom market」,Market ID 填寫這個地址,其他就如當初填寫鑄造的資訊 Base Token 就是你的幣,Quote Token 就是用什麼報價的幣。
說是「上架」,也只能說是可以開始交易了。實際上要真的讓 DEX 支援你的幣也還是有一個篩選流程就不在多述,畢竟發幣實在是太容易,觀察 token-list 專案就會知道,幾乎每小時都有新的幣被鑄造出來準備給他一個命名想嘗試曝光,如果 DEX 要把這些都列出來,那肯定不是一件明智的事。
加入好的交易對就會出現在 Raydium 上可以發起掛單交易,等待撮合完成交易~
Raydium 本身有 AMM 自動造市的設計,所以還可以用交易對的地址拿去建立一個資金池(Pool),再來加入一定數量要發行的幣($ATGY
)與對應報價的幣($USDC
)提供流動性。
這樣就也可以使用 Raydium 的 Swap 功能來快速換匯,持有 USDC 的人可以換成 ATGY 來支持我(資男幣價會上升),如果最近缺錢就可以用 ATGY 換成 USDC(資男幣價會下跌)。
由於我發幣的時候有在 LINE 社群裡空投,且大家也願意幫忙造市,目前資男幣已經不是空氣幣囉XD
後記
發幣的本質,還是要探討其可以發揮的地方與特色。目前說實在還沒有任何打算,純粹就是想透過這樣一個過程來學習與應證!參與一個有活動的市場是很有趣的~
如果你也覺得 $ATGY
資男幣有趣,歡迎留下你的 Solana 錢包地址,我來發給你一些玩玩~ (如果有意願幫我造市更是歡迎,哈哈)
記得錢包裡需要有一些 $SOL,不用多,然後在錢包裡開啟 $ATGY 的 Token 才能接收我的幣~
想知道資男幣 $ATGY
目前市場上的交易情況,可以從 Solscan 查詢!
Hi 一介資男 Chun,
我是在研究如何在Solana上發幣時連結到您的網頁,謝謝您詳細的解說和教學。
文末提到可留下錢包地址收您空投的$ATGY 資男幣。
我的Solana錢包地址是:toaokc.sol
謝謝您。
希望我們都能繼續自在的做自己
Hi
傳送過去囉! 地址: BLXfcTekMqBA9e3Nswd661phMTCE2yCCU9b9VWA2mf8i
收到了,謝謝您。
好人一生平安