本篇文章更新時間:2022/03/26
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


區塊鏈最為人知道的就是其附加產物:加密貨幣。而參與這個所謂「世界帳本」的技術(區塊鏈)難度已經不是很高了!這也是區塊鏈上的開發人員一直努力在推行的事:把難的事情簡單化

這篇筆記算是呼應前幾天朋友問了一個問題「你有發過幣嗎?」,於是就挑了一個我欣賞的公鏈 Solana 來發行。

發幣的方式很多,從打造自己的區塊鏈生態開始,到透過智能合約來鑄造都可以!前者難度最高,後者會相依在「公鏈」上,簡單許多。不過一開始發幣要思考的問題不只是單純「發」,而是「想要打造怎樣的一個生態」,免的只是發出來後,沒有其他的運用計畫,無法放大這個幣的價值,俗稱「空氣幣」。

進入正題~

技能需求

  1. 會使用指令工具(基本是 Git)
  2. 了解開發環境的建立(本篇我使用 macOS 作業系統)
  3. 對區塊鏈有一定程度的理解(知道公鏈、知道錢包、知道燃料、知道官方文件..)

設定 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 上知名的錢包工具有 PhantomSolfare 與 偏開發狀態的 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」,不是啥 BTCETH ...等簡單明瞭的符號?

這個操作目前在 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 中產生一個「交易對」,這件事可以透過 BonfidaRaydium 的 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 查詢!

延伸參考

  1. 以太坊錢包的設計

Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

參與討論

  1. toaokc
  2. Chun

3 則留言

  1. Hi 一介資男 Chun,

    我是在研究如何在Solana上發幣時連結到您的網頁,謝謝您詳細的解說和教學。
    文末提到可留下錢包地址收您空投的$ATGY 資男幣。
    我的Solana錢包地址是:toaokc.sol

    謝謝您。
    希望我們都能繼續自在的做自己

    1. Hi

      傳送過去囉! 地址: BLXfcTekMqBA9e3Nswd661phMTCE2yCCU9b9VWA2mf8i

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon