样: 选择铸造工具: https://ordinalsbot.com/ https://gamma.io/ 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 < count) { 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 < numbers.length - 1) { 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 < concurrency; i++) { const url = urls[index]; fetchUrl(url); index++; if (index >= urls.length) { clearInterval(interval); break; } } }, 1000); 运行这些 JS 脚本很容易,你只要在自己的浏览器任意位置点击 Inspect(检查),并在 Console(控制台)复制/粘贴代码就可以。符合条件的域名会自动提示你。 我们先前下载的 Alby 有什么用 Alby 是闪电网络钱包,只支持闪电网络转账。 上面提到了ordinalsbot 这个工具,它支持使用闪电网络付款,还支持批量铸造。 这样你就不用等待网络长达20-30分钟的确认,更快抢到你想要的 NFT。 在你学会如何使用 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 提工的域名查询脚本,十分好用。 祝各位铸造愉快。 来源:金色财经lg...