BTC NFT 鑄造指南

在這篇文章中,我會以.stats 域名的鑄造為例,帶你走一遍完整的BTC NFT 鑄造流程。在延展閱讀處,會稍微解釋下閃電網絡、Taproot 地址和 Ordinals 協議。

需要哪些前期準備

  1. 下載 Xverse 錢包,我們後面會用它來存儲NFT,因為它能夠正確識別Ordinals 協議的資產。

    下載 Alby 瀏覽器插件錢包,用來處理閃電網絡交易,這款錢包的體驗相當不錯。

  2. 準備好自己的 OKX 賬號,我們要用它提取閃電網絡的BTC 到自己的錢包。

接收BTC NFT 的重要前提是你的錢包支持Taproot 地址格式,它們通常以 bc1p 開頭,這是重要的識別方式。這是目前我自己用的最順手的組合,如果你習慣使用其他錢包,如 Bluewallet、Muun 等,同樣可行。

截止目前,OneKey 錢包還沒有支持Taproot 地址和閃電網絡,但我看到官方已經提過,估計很快會上。

我需要跑Bitcoin 全節點嗎

  1. 不需要,現在已有很多免節點的替代鑄造工具。

  2. 但是,如果你想更深入參與BTC Ordinals NFT 市場,並且將手續費降到最低,建議你去 Bitcoin Core 下載最新的錢包。

  3. 下載好後按下圖修改設置,不要修剪節點,不然你會白同步,Ordinal 是要追溯到整個BTC 區塊的第一筆交易的。

  4. 同時,最好將BTC 的區塊數據放到至少1TB容量的外置硬盤,不然會很佔你的電腦空間,目前整個BTC 網絡的數據大約500GB。

  5. 如果你對自己搭節點不感興趣,只想快點Mint,那這裡跳過就好,也不用下Bitcoin Core 錢包了。

Sparrow 錢包是必需的嗎?

  1. 不是,那是一個月前的做法。

  2. Sparrow 是個很棒的錢包,但它無法顯示NFT,並且操作門檻高,不建議入門用戶使用,高階用戶隨意。

給錢包氪金

  1. 把你的Alby 錢包準備好,怎麼使用這裡不贅述。

  2. 從你的OKX 提一些BTC 到Alby,不要提多,最多幾百美金等額的BTC 足矣,網絡選擇:BTC-閃電網絡。

  3. 再從你的OKX 提一些BTC 到Xverse,Xverse 不支持閃電網絡,普通提現就可以。

  4. 現在你的兩個錢包都有BTC 了,它們大概長這樣:

選擇鑄造工具:

  1. https://ordinalsbot.com/

  2. https://gamma.io/

  3. https://unisat.io/inscribe

其實,在BTC 鏈上鑄造NFT 不叫Mint,叫Inscribe,銘刻的意思。不過在ETH 市場大家已經很熟悉Mint 了,所以下面我還是會用Mint 來指代鑄造這個過程。

目前最好用的Mint 工具目前就是上面3個,下面我來以Gamma 為例,帶大家鑄造一個.sats 域名。

.sats 是BTC 網絡上類似ENS 的項目,沒有自己的代幣,沒有預挖,鑄造是免費的。我沒有囤積.stats 域名,只鑄造了極少量(不足20個)參與。

根據其文檔,鑄造是要把下圖這個文本刻到BTC 主網上。

那我要怎麼操作才能把它們鑄造上去呢,顯然不可能通過BTC 轉賬留言,對吧?

這時候我們可以選擇上面提到的鑄造工具,它們其實沒有什麼特別,只是將BTC 網絡的鑄造過程可視化,讓用戶更容易上手。

訪問 https://gamma.io/ordinals

選擇Text 文本

把.stats 文檔裡寫的文本貼過來,name 字段換成你要的域名,如:abc.stats

輕觸繼續,選擇費率,一般我們選Higher fee 以保證鑄造盡快成功。

注意,每次鑄造NFT,Gamma 都要收你5.7刀左右的服務費,還是比較貴的。 unisat 會便宜一些,操作上有細微區別。總之,我們先學會用Gamma 鑄造,然後自己再去嘗試其他工具。

下面這個步驟最為關鍵:接收地址必須填Taproot 格式的(以bc1p 開頭),否則你的NFT 可能會丟失。此外,郵件最好填一下,Gamma 會將訂單信息推給你。

那麼, Taproot 地址上哪裡找呢?

還記得我們在文章開頭下載的Xverse 錢包嗎。按照下圖,輕觸按鈕1訪問NFT 面板,接著,輕觸按鈕2 接收,選擇Taproot 地址(bc1p開頭),把這個地址複製到上面的Gamma 地址欄

按提示繼續,你需要勾選下方的使用協議。

緊接著,Gamma 會生成訂單。在這個訂單頁面,你可以看到有兩個要素:

  • BTC 金額

  • 收幣地址

按照頁面指示,將正確的金額轉到對應的地址,確保無誤,然後等待Gamma 鑄造完成。

稍等片刻,通常10-30分鐘後(BTC 網絡需要出塊確認),你就可以在自己的Xverse 錢包看到BTC NFT 了。

至此,你已經完成了BTC 網絡上.sats 域名NFT 的鑄造,比預想中的簡單對嗎?我們繼續。

如何確定域名有沒有被註冊

你可以使用這個非正式的API 接口查詢,https://api.sats.id/names/abc.sats

將鏈接末尾的abc.sats 換成你想要註冊的域名,如:123.stats

那麼你就能得到如下鏈接:

https://api.sats.id/names/123.sats

如果返回信息的信息像這樣,那就說明這個域名尚未被註冊:

否則,就是已經被註冊了。

自動查詢.stats 域名

手動查詢仍然比較繁瑣,你可以通過腳本程序查找可註冊的域名,這樣效率會更高(比如你想要註冊全部可用的10K 數字域名),以下是代碼示意,你可以在自己的電腦上運行:

// 定義接口地址
const apiUrl = “https://api.sats.id/names/”;

// 定義循環延遲時間(單位:毫秒)
const delay = 1000;

// 生成隨機不重複數字的函數
function getRandomNumbers(count, min, max) {
if (count > max – min + 1) {
throw new Error(“不能生成足夠的不重複數字”);
}

const numbers = new Set();
while (numbers.size numbers.add(Math.floor(Math.random() * (max – min + 1)) + min);
}

return […numbers];
}

// 定義循環函數
function loop(numbers, index) {
const number = numbers[index];

// 構造接口地址
const url = apiUrl + number + “.sats”;

// 調用接口
fetch(url)
.then(response => response.text())
.then(data => {
// 判斷返回內容是否包含指定字符串
if (data.includes(“.sats not found”)) {
console.log(“找到了:” + url);
}
})
.catch(error => {
console.log(“請求出錯:” + url);
})
.finally(() => {
// 延遲1秒後執行下一次循環
if (index setTimeout(() => loop(numbers, index + 1), delay);
}
});
}

// 生成隨機不重複數字
const numbers = getRandomNumbers(9999, 1, 9999);

// 啟動循環
loop(numbers, 0);

除了數字域名,你也可以窮舉所有可註冊的字母域名,代碼示意如下:

const letters = [
 “n”,
 “a”,
 “s”,
 “d”,
 “t”,
 “i”,
 “c”,
 “o”,
 “e”,
 “m”,
 “p”,
 “b”,
 “x”,
 “q”,
 “z”,
 “f”,
 “g”,
 “h”,
 “j”,
 “k”,
 “l”,
 “r”,
 “u”,
 “v”,
 “w”,
 “y”,
];

const urls = [];

// 生成所有可能的URL
letters.forEach((l1) => {
letters.forEach((l2) => {
letters.forEach((l3) => {
const url = `https://api.sats.id/names/${l1}${l2}${l3}.sats`;
urls.push(url);
});
});
});

// 隨機排序URL 數組
urls.sort(() => Math.random() – 0.5);

// 發送請求的函數
const fetchUrl = async (url) => {
try {
const response = await fetch(url);
const text = await response.text();
if (text.includes(“.sats not found”)) {
console.log(`找到了:${url}`);
}
} catch (error) {
// 忽略錯誤
}
};

// 並發發起請求
const concurrency = 20;
let index = 0;

const interval = setInterval(() => {
for (let i = 0; i const url = urls[index];
fetchUrl(url);
index++;
if (index >= urls.length) {
clearInterval(interval);
break;
}
}
}, 1000);

運行這些JS 腳本很容易,你只要在自己的瀏覽器任意位置點擊Inspect(檢查),並在Console(控制台)複製/粘貼代碼就可以。符合條件的域名會自動提示你。

我們先前下載的Alby 有什麼用

  1. Alby 是閃電網絡錢包,只支持閃電網絡轉賬。

  2. 上面提到了ordinalsbot 這個工具,它支持使用閃電網絡付款,還支持批量鑄造。

  3. 這樣你就不用等待網絡長達20-30分鐘的確認,更快搶到你想要的NFT。

  4. 在你學會如何使用Gamma 後,就可以嘗試這些更複雜一些的工具來探索BTC NFT。

關於閃電網絡、Taproot 和Ordinals 協議

⚡️ 閃電網絡(Lightning Network)

閃電網絡是一種基於比特幣技術的二層協議,可以加快交易速度和擴展性。它通過創建多個支付通道,使用戶能夠實時、高效、低成本地進行點對點交易,從而避免了需要等待礦工驗證和打包的過程。這種網絡類似於數字錢包,用戶可以在其中創建支付通道並存入比特幣,在通道內與其他用戶進行交易,這些交易不需要寫入區塊鏈。當用戶關閉支付通道並提取比特幣時,最終餘額將被寫入區塊鏈。

Taproot 地址

Taproot 是比特幣網絡的一種新型地址格式,是最新的升級方案之一。它採用了一種新的地址編碼方式,可以提供更好的隱私、安全和可擴展性。 Taproot 地址可以隱藏多個公鑰或腳本,使得交易只展示最終使用的公鑰或腳本,保護了用戶隱私;它還可以被用於多種不同的交易類型,並且使用Taproot 地址的交易規模通常比傳統的交易規模要小,從而降低了交易費用。另外,Taproot 地址還可以減少腳本的使用,降低區塊鏈大小和交易的複雜性,提高比特幣網絡的可擴展性。

Ordinals 協議

這其實是 Casey Rodarmor 創辦的,使用序數理論來標記和跟踪“註冊”,即嵌入在區塊鏈中的數據/內容:

序數是定義系列中位置的任何數字(例如,第一,第二,第三)。在比特幣的情況下,Ordinal 是一個特定Satoshi 的未使用交易輸出(UTXO),其中包含一個包含內容(例如文本、圖像或MP3)的“註冊”。已註冊的Satoshi 被設置為特殊交易,以便用戶可以識別和跟踪它們。

事實上,這個解決方案早在2012年就在比特幣論壇上提出了。 Ordinals NFT 有一個有趣的點,它們不使用比特幣的OP_RETURN 字段。這個命令允許用戶在鏈上提交任意數據。

Taproot 也很關鍵,它放寬了這些要求,完全取消了數據限制,因此理論上你可以鑄造一個佔據整個區塊數據空間的4MB 大小的NFT。

我常用的BTC NFT 工具

  • https://ordinalsbot.com/

  • https://gamma.io/

  • https://dune.com/dataalways/ordinals

  • https://ordinals.com/

  • https://unisat.io/inscribe

  • https://ordinals.market/

  • https://ordlists.com/numbers

  • https://ordinalswallet.com/

特別感謝

我在了解BTC Ordinals 協議的過程中,從 @李歡 和 @xiyu 身上學到很多。你可以關注他們的推特,他們經常分享BTC 的知識和見解。同時,非常感謝@zuozhuo 提工的域名查詢腳本,十分好用。

祝各位鑄造愉快。

Total
0
Shares
Related Posts